Excel文件的写入
https://openpyxl.readthedocs.io/en/stable/
安装openpyxl
使用 openpyxl 库可以进行excel文件的读写。
pip install openpyxl
写入文件
# 导入openpyxl模块
from openpyxl import Workbook
# 创建excel文件
wb = Workbook()
# 使用默认的worksheet
ws = 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()
# 使用默认的worksheet
ws = 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')
# 选择默认的 worksheet
ws = 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 = []
# 选择默认的 worksheet
ws = 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 testdata
testdata=read_data()
import pytest
import 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