Python接口测试实战之搭建自动化测试框架_file=open("

更新: excel表格中,增加一个headers列,内容为json格式, 如下

图片

二.Excel读取方法

Python我们使用三方库xlrd来读取Excel,使用pip install xlrd安装xlrd。

import xlrd

wb = xlrd.open\_workbook("test\_user\_data.xlsx")  # 打开excel
sh = wb.sheet\_by\_name("TestUserLogin")  # 按工作簿名定位工作表
print(sh.nrows)  # 有效数据行数
print(sh.ncols)  # 有效数据列数
print(sh.cell(0, 0).value)  # 输出第一行第一列的值`case_name`
print(sh.row\_values(0))  # 输出第1行的所有值(列表格式)

# 将数据和标题组装成字典,使数据更清晰
print(dict(zip(sh.row\_values(0), sh.row\_values(1))))

# 遍历excel,打印所有的数据
for i in range(sh.nrows):
    print(sh.row\_values(i))

输出结果

3
5
case_name
['case\_name', 'url', 'method', 'data', 'expect\_res']
{'case\_name': 'test\_user\_login\_normal', 'url': 'http://115.28.108.130:5000/api/user/login/', 'method': 'POST', 'data': '{"name": "张三","password":"123456"}', 'expect\_res': '<h1>登录成功</h1>'}
['case\_name', 'url', 'method', 'data', 'expect\_res']
['test\_user\_login\_normal', 'http://115.28.108.130:5000/api/user/login/', 'POST', '{"name": "张三","password":"123456"}', '<h1>登录成功</h1>']
['test\_user\_login\_password\_wrong', 'http://115.28.108.130:5000/api/user/login/', 'POST', '{"name": "张三","password":"1234567"}', '<h1>失败,用户不存在</h1>']

三.封装读取excel操作

1.新建read_excel.py图片
我们的目的是获取某条用例的数据,需要3个参数,excel数据文件名data_file,工作簿名sheet,用例名case_name。如果我们只封装一个函数,每次调用(每条用例)都要打开一次excel并遍历一次,这样效率比较低,我们可以拆分成两个函数,一个函数excel_to_list(data_file, sheet),一次获取一个工作表的所有数据,另一个函数get_test_data(data_list, case_name)从所有数据中去查找到该条用例的数据。

import xlrd

def excel\_to\_list(data_file, sheet):
    data_list = []  # 新建个空列表,来乘装所有的数据
    wb = xlrd.open\_workbook(data_file)  # 打开excel
    sh = wb.sheet\_by\_name(sheet)  # 获取工作簿
    header = sh.row\_values(0)  # 获取标题行数据
    for i in range(1, sh.nrows):  # 跳过标题行,从第二行开始取数据
        d = dict(zip(header, sh.row\_values(i)))  # 将标题和每行数据组装成字典
        data_list.append(d)
    return data_list  # 列表嵌套字典格式,每个元素是一个字典

def get\_test\_data(data_list, case_name):
    for case_data in data_list:
        if case_name == case_data['case\_name']:  # 如果字典数据中case_name与参数一致
            return case_data
            # 如果查询不到会返回None

if __name__ == '\_\_main\_\_':   # 测试一下自己的代码
    data_list = excel\_to\_list("test\_user\_data.xlsx", "TestUserLogin")  # 读取excel,TestUserLogin工作簿的所有数据
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值