转换文档的接口测试
第一次写接口测试,还不是很熟练。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('\n') print total_time print total_time/i