如果你还想从头学起Pytest,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1690628.html
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ =
__Time__ = 2020/10/28 15:08
__Author__ = 小菠萝测试笔记
__Blog__ = https://www.cnblogs.com/poloyy/
"""
import allure
import pytest
@pytest.fixture()
def login(request):
"""登录"""
param = request.param
print(f"账号是:{param['username']},密码是:{param['pwd']}")
# 返回
return {"code": 0, "msg": "success!"}
datas = [
{"username": "name1", "pwd": "pwd1"},
{"username": "name2", "pwd": "pwd2"},
{"username": "name3", "pwd": "pwd3"}
]
@allure.story('登录功能')
@pytest.mark.parametrize('login', datas, indirect=True)
def test_login1(login):
"""
登录测试用例1
"""
assert login['code'] == 0
标题就是方法名+参数化的数据,看着可读性就不咋滴
将上面的测试代码添加一个 @allure.title 就可以了
@allure.story('登录功能')
@allure.title('登录测试用例2')
@pytest.mark.parametrize('login', datas, indirect=True)
def test_login2(login):
"""
登录测试用例2
"""
assert login['code'] == 0
因为参数化可以生成三条用例,所以三条用例都用了同一个 title,可读性也不咋滴
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ =
__Time__ = 2020/10/28 15:08
__Author__ = 小菠萝测试笔记
__Blog__ = https://www.cnblogs.com/poloyy/
"""
import allure
import pytest
@pytest.fixture()
def login(request):
"""登录"""
param = request.param
print(f"账号是:{param['username']},密码是:{param['pwd']}")
# 返回
return {"code": 0, "msg": "success!"}
datas = [
{"username": "name1", "pwd": "pwd1"},
{"username": "name2", "pwd": "pwd2"},
{"username": "name3", "pwd": "pwd3"}
]
ids = [
"username is name1,pwd is pwd1",
"username is name2,pwd is pwd2",
"username is name3,pwd is pwd3"
]
@allure.story('登录功能')
@pytest.mark.parametrize('login', datas, ids=ids, indirect=True)
def test_login1(login):
"""
登录测试用例1
"""
assert login['code'] == 0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ =
__Time__ = 2020/10/28 15:08
__Author__ = 小菠萝测试笔记
__Blog__ = https://www.cnblogs.com/poloyy/
"""
import allure
import pytest
@pytest.fixture()
def login(request):
"""登录"""
param = request.param
print(f"账号是:{param['username']},密码是:{param['pwd']}")
# 返回
return {"code": 0, "msg": "success!"}
datas = [
{"username": "name1", "pwd": "pwd1"},
{"username": "name2", "pwd": "pwd2"},
{"username": "name3", "pwd": "pwd3"}
]
data2 = [
("name1", "123456"),
("name2", "123456"),
("name3", "123456")
]
@allure.story('分别传值')
@allure.title('登录测试用例2-账号是:{username}-密码是:{pwd}')
@pytest.mark.parametrize('username,pwd', data2)
def test_login1(username, pwd):
"""
登录测试用例1
"""
print(username, pwd)
@allure.story('字典参数化')
@allure.title('登录测试用例2-{dict}')
@pytest.mark.parametrize('dict', datas)
def test_login2(dict):
"""
登录测试用例1
"""
print(dict['username'], dict['pwd'])
@allure.story('传值进fixture')
@allure.title('登录测试用例2{login}')
@pytest.mark.parametrize('login', datas, indirect=True)
def test_login3(login):
"""
登录测试用例2
"""
assert login['code'] == 0
传入的如果是一个字典则显示完整字典值
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__ =
__Time__ = 2020/10/28 15:08
__Author__ = 小菠萝测试笔记
__Blog__ = https://www.cnblogs.com/poloyy/
"""
import allure
import pytest
data = [
("name1", "123456", "name1 登录成功"),
("name2", "123456", "name2 登录失败"),
("name3", "123456", "name3 登录成功")
]
@allure.story('分别传值')
@allure.title('登录测试用例-{title}')
@pytest.mark.parametrize('username,pwd,title', data)
def test_login1(username, pwd, title):
"""
登录测试用例1
"""
print(username, pwd)