• python利用Excel读取和存储测试数据完成接口自动化


     http_request2.py用于发起http请求

    #读取多条测试用例
    #1、导入requests模块
    import  requests
    #从 class_12_19.do_excel1导入read_data函数
    from do_excel2 import read_data
    from do_excel2 import write_data
    from do_excel2 import count_case
    #定义http请求函数
    
    COOKIE=None
    
    def http_request2(method,url,data):
    
        if  method=='get':
            print('发起一个get请求')
            result=requests.get(url,data,cookies=COOKIE)
        else:
            print('发起一个post请求')
            result=requests.post(url,data,cookies=COOKIE)
        return result   #返回响应体
       # return result.json()  #返回响应结果:结果是字典类型:{'status': 1, 'code': '10001', 'data': None, 'msg': '登录成功'}
    
    
    #从Excel读取到多条测试数据
    sheets=['login','recharge','withdraw']
    for sheet1 in sheets:
        max_row=count_case(sheet1)
        print(max_row)
        for case_id in range(1,max_row):
            data=read_data(sheet1,case_id)
            print('读取到第{}条测试用例:'.format(data[0]))
            print('测试数据 ',data)
            #print(type(data[2]))
            #调用函数发起http请求
            result=http_request2(data[4],data[2],eval(data[3]))
            print('响应结果为 ',result.json())
            if result.cookies:
                    COOKIE=result.cookies
    
                #将测试实际结果写入excel
                #write_data(case_id+1,6,result['code'])
            write_data(sheet1,case_id+1,7,str(result.json()))
            #对比测试结果和期望结果
            if result.json()['code']==str(data[5]):
                print('测试通过')
                #将用例执行结果写入Excel
                write_data(sheet1,case_id+1,8,'Pass')
            else:
                write_data(sheet1,case_id+1,8,'Fail')
                print('测试失败')
    http_request2.py
    do_excel2.py完成对excel中用例的读、写、统计
    # 导入load_workbook
    from openpyxl import load_workbook
    
    #读取测试数据
    #将excel中每一条测试用例读取到一个列表中
    
    #读取一条测试用例——写到一个函数中
    def read_data(sheet_name,case_id):
        # 打开excel
        workbook1=load_workbook('test_case2.xlsx')
        # 定位表单(test_data)
        sheet1=workbook1[sheet_name]
        print(sheet1)
        test_case=[]  #用来存储每一行数据,也就是一条测试用例
        test_case.append(sheet1.cell(case_id+1,1).value)
        test_case.append(sheet1.cell(case_id+1,2).value)
        test_case.append(sheet1.cell(case_id+1,3).value)
        test_case.append(sheet1.cell(case_id+1,4).value)
        test_case.append(sheet1.cell(case_id+1,5).value)
        test_case.append(sheet1.cell(case_id+1,6).value)
        return test_case    #将读取到的用例返回
    
    #调用函数读取第1条测试用例,并将返回结果保存在data中
    # data=read_data(1)
    # print(data)
    
    #将测试结果写会excel
    def write_data(sheet_name,row,col,value):
        workbook1=load_workbook('test_case2.xlsx')
        sheet=workbook1[sheet_name]
        sheet.cell(row,col).value=value
        workbook1.save('test_case2.xlsx')
    
    
    #统计测试用例的行数
    def count_case(sheet_name):
         workbook1=load_workbook('test_case2.xlsx')
         sheet=workbook1[sheet_name]
         max_row=sheet.max_row  #统计测试用例的行数
         return max_row
    do_excel2.py
    test_case2.xlsx存储测试用例

  • 相关阅读:
    bootstap 折叠
    AtCoder AGC019E Shuffle and Swap (DP、FFT、多项式求逆、多项式快速幂)
    Codeforces Gym 101630J Journey from Petersburg to Moscow (最短路)
    BZOJ 4042 Luogu P4757 [CERC2014]Parades (树形DP、状压DP)
    BZOJ 2734 [HNOI2012]集合选数 (状压DP、时间复杂度分析)
    BZOJ 2759 一个动态树好题 (LCT)
    Codeforces 1205C Palindromic Paths (交互题、DP)
    getopt实现传参自动识别
    powershell笔记
    bat语法需要注意的地方
  • 原文地址:https://www.cnblogs.com/yhms/p/10138969.html
Copyright © 2020-2023  润新知