转换文档的接口测试

第一次写接口测试,还不是很熟练。list,dict,for遍历是python基础语法里最常用也是最基础的,还是需要多加练习。另外,文件的读写操作,字符串的使用以及api等都是需要不断巩固练习的。

(1)文件读写操作:
file_path = “D:\python_file\generalseven.txt”
with open(file_path,'r')as f:
      print(f.read())

read()函数,该函数会会一次性读取文件的全部内容,如果能确保文件的大小,自然可以。但若文件过大,内存就爆了.
所以,可以反复调用read(size)方法,每次最多读取size个字节的内容;也可调用 readline() 每次读取一行内容;
而调用readlines()可以一次读取所有内容并按行返回list。总之,根据需求来。
(2)创建新文件并写入:
file_path = “D:\python_file\generalseven.txt” 
with open(file_path,'w')as f:
      f.write("hello generalseven")

r : 以只读方式打开文件,文件的指针会放在文件的开头。这是默认模式。

w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a:打开一个文件用于追加。如果该文件已存在,文件指针会放在文件的结尾,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

需求:

①在给定的data.txt文档里筛选出“.ppt”、“.pptx”格式,需要判断是否是ppt/pptx文件,返回list类型;

②使用list里的数据,调用接口,成功调用返回状态为success,失败为fail,成功转换文档的文件地址列表,以及时间,返回字典类型;

③获取统计接口成功转换的总时间,平均时间,失败文档的列表存到list中,结束的时候存到文件中。

返回状态:

# 成功调用返回:{u'status': u'success', u'file': u'http://generalseven.com/d9ee37816cacc11c51.pdf', u'time': 3.9380002021686955}
# 失败调用返回:{u'status': u'fail', u'detail': u'download doc fail: d9e4920f2cacc11c513.ppt', u'time': 1.312333998302459717}

import request#导入需要的库

file_path = "C:\Users\Administrator\Desktop\data.txt"#定义文档的路径

def get_doc_from_file(file_path):#筛选所需格式文档的函数
    files = []#定义一个空文件
    with open(file_path,'r') as f:#打开文件
        lines = f.readlines()#读取文件的每一行
        for line in lines:
            line = line.strip()#去除空格
            x = line.split(".")[-1].rstrip()
            if x in ['ppt','pptx']:
                files.append(line)#往空文件里添加符合条件的行
    return files#返回文件,类型为list

def convert_test(file_name):#使用list,调用接口
    doc,page = (file_name,15)
    data = {'doc_id':doc,'page':1}
    result = requests.post("http://...........",data).json()
    if result['status'] == 'fail':
        return result
    else:
        return result


if __name__ == '__main__':
    files = get_doc_from_file(file_path)
    total_time = 0
    i = 0
    Lists = []
    for f in files[:2]:
        a = convert_test(f)#使用变量,为了调用函数里面的参数值
        if a['status'] == 'success':#判断状态成功的情况下,统计总时间和平均时间
            i += 1
            time = a['time']#因为a返回类型是字典,time就是每一条转换状态下所需要的时间
            total_time += time
        else:
            fail_file = a['detail']#转换失败文档的文件名
            Lists.append(fail_file)

    with open('C:\Users\Administrator\Desktop\newpath.txt','w') as new_file:
        for j in Lists:
            new_file.write(j)
            new_file.write('
')
    print total_time
    print total_time/i
原文地址:https://www.cnblogs.com/general-seven/p/5979800.html