前言
pytest的参数化(parametrize)可以实现只需要维护测试数据,就能生成不同的测试用例目的。可以在参数化的时候加ids参数对每个用例说明使用场景。
最终我们希望在allure报告上能详细的展示出每个用例的标题描述,这样才能更直观的知道每个用例是干什么的。
参数化parametrize
先看一个简单的pytest参数化案例演示test_a.py
#test_a.py
import allure
import pytest
def login(uname,pwd):
print("账号:{}".format(uname))
print("密码:{}".format(pwd))
return {"code":0,"msg":"success!"}
#测试数据
test_datas=[({"name":"admin1","password":"123456"},"success!"),
({"name":"admin2","password":"123456"},"failed!"),
({"name":"admin3","password":"123456"},"success!"),]
@allure.story("登录用例")
@pytest.mark.parametrize("users,expect",test_datas)
def test_login(users,expect):
rs=login(users["name"],users["password"])
assert rs["msg"]==expect
cmd 到脚本目录下,执行<