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': '

登录成功

'} ['case\_name', 'url', 'method', 'data', 'expect\_res'] ['test\_user\_login\_normal', 'http://115.28.108.130:5000/api/user/login/', 'POST', '{"name": "张三","password":"123456"}', '

登录成功

'] ['test\_user\_login\_password\_wrong', 'http://115.28.108.130:5000/api/user/login/', 'POST', '{"name": "张三","password":"1234567"}', '

失败,用户不存在

']

三.封装读取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工作簿的所有数据
   

你可能感兴趣的:(python,linux,服务器)