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存储测试用例

 

转载于:https://www.cnblogs.com/yhms/p/10138969.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值