pytest参数化和执行
参数化有两种
1、使用pytest.fixture
1、使用pytest.fixture标记数据
#定义数据,数据必须是列表
undata = https://www.it610.com/article/[{"username":"xue111","password":'123456'},{"username":"xue222","password":'234567'},{"username":"xue333","password":'345678'},{"username":"xue444","password":'456789'}]def id(fixture_vaule):
t = fixture_vaule
return "username,password{0}".format(t)#fixture标记函数 undata 表示需要标记的数据列表
@pytest.fixture(params=undata,ids=id)
def username(request):
return request.param
2、根据标记方法名调用参数
#username,表示使用哪个fixture标记的函数
def test_sign_up(self,username):url = "http://192.168.3.7:8080/admin/register"
body = {
"email": "593971579@qq.com",
"icon": "",
"nickName": "",
"note": "",
"password": username["password"],
"username": username["username"]
}r = requests.post(url = url, json=body)
print(r.request.body)
assert True == r.text.__contains__("200")
3、执行并验证
文章图片
image.png 使用pytest.mark.parametrize
@pytest.mark.parametrize('username,password',[('admin','123456'),('wwwwww','123456'),('eeeeee','123456')])
def test_sign_up_2(self, username,password):
url = "http://192.168.3.7:8080/admin/register"
body = {
"email": "593971579@qq.com",
"icon": "",
"nickName": "",
"note": "",
"password": "123456",
"username": "xue000"
}
body["username"] = username
body["password"] = password
r = requests.post(url=url, json=body)
print(r.request.body)
print(r.text)
print(r.json()["data"])
assert r.json()["data"] == None
用例执行 pytest -v 执行整个项目中的测试用例,并显示详细信息
pytest -v 路径 【pytest参数化和执行】执行某个包下边的测试用例
pytest -v 文件路径 执行某个测试文件中的测试用例
pytest -v 文件路径::测试类 执行某个测试类中的测试用例
pytest -v 文件路径::测试类::测试方法 执行某个测试用例
使用pytest.mark标记测试用例并执行 1、使用pytest.mark打标记
文章图片
image.png 2、执行
文章图片
image.png 3、执行多个标记
文章图片
image.png
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 第326天
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 为什么孩子一定要学会可视化思维!
- 试论化院的学生自组织
- 【变化】我的青椒学习之旅
- 中国MES系统软件随工业化成长
- 私有化轻量级持续集成部署方案--03-部署web服务(下)