Excel文件的写入
https://openpyxl.readthedocs.io/en/stable/
安装openpyxl
使用 openpyxl 库可以进行excel文件的读写。
pip install openpyxl

写入文件
# 导入openpyxl模块from openpyxl import Workbook# 创建excel文件wb = Workbook()# 使用默认的worksheetws = wb.active# 添加数据到 Excel文件中ws.append(['用户名','密码',"状态码",'期望结果'])for i in range(10):ws.append([f'test{i}',"123456",'200','ok'])# 文件保存wb.save('data.xlsx')

# 导入openpyxl模块def write_data():from openpyxl import Workbook# 实例化 workbook# 创建excel文件wb = Workbook()# 使用默认的worksheetws = wb.active# 添加数据到 Excel文件中ws.append(['用户名','密码','期望状态码','期望的message'])ws.append(['','123456','510','登录名不能为空'])ws.append(['1321111','123456','500','请输入正确的手机号!'])ws.append(['13213331333','','510','密码不能为空'])ws.append(['','','510','密码不能为空'])ws.append(['13213331333','123456','500','登录失败!'])# 文件保存wb.save('data.xlsx')
读取文件内容
def read_data():# 导入读取excel文件方法from openpyxl import load_workbook# 读取文件wb = load_workbook('./data.xlsx')# 选择默认的 worksheetws = wb.active# 循环每一行的excel文件内容,从第2行开始读取文件内容for line in ws.iter_rows(min_row=2,max_row=ws.max_row,min_col=1,max_col=ws.max_column,values_only=True):print(line)read_data()
Excel文件数据驱动
将数据从 Excel 文件中读取出来,读取出来之后,还是使用 pytest parametrize 参数化功能进行数据驱动测试即可。
def read_data():# 导入读取excel文件方法from openpyxl import load_workbook# 读取文件wb = load_workbook('./data.xlsx')testdata = []# 选择默认的 worksheetws = wb.active# 循环每一行的excel文件内容for line in ws.iter_rows(min_row=2,max_row=ws.max_row,min_col=1,max_col=ws.max_column,values_only=True):# 每读取一行数据,将数据存放在list中testdata.append(line)return testdatatestdata=read_data()import pytestimport requests@pytest.mark.parametrize("username,passwd,excpet_code,excpet_msg",testdata)def test_login(username,passwd,excpet_code,excpet_msg):url = "http://49.233.108.117:28019/api/v1/user/login"body = {"loginName": username,"passwordMd5": passwd}# 发送请求r = requests.post(url,json=body)print(r.json())# 添加断言 因为从csv文件中读取出来的数字,会自动被转换为字符串assert r.json()["resultCode"] == int(excpet_code) # 将csv文件中的字符串转为数字assert r.json()["message"] == excpet_msg
