• 转换文档的接口测试


    第一次写接口测试,还不是很熟练。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
    
  • 相关阅读:
    jdk环境变量配置
    智商太低,竟然算不出病狗神题了
    HDU 1284 钱币兑换问题 母函数、DP
    linux下实现监控进程网络带宽
    编程算法
    C語言 rand函数 进阶探讨与实现
    JDBCUtil
    iOS进阶路线以及进阶书籍
    Windows平台CUDA开发之前的准备工作
    数据库中substring的用法 CONVERT(varchar(12) , getdate(), 112 )
  • 原文地址:https://www.cnblogs.com/general-seven/p/5979800.html
Copyright © 2020-2023  润新知