pytest常见用法
一、pytest
1.pytest --fixture #显示内置的函数
2.pytest -h #帮助信息
3.pytest tests/test_mode.py::TestClass::test_function #只执行某一个测试用例
4.@pytest.mark.basic #basic是标签名称,给测试用例打上标签
pytest -m basic #会执行指定标签名的测试用例
注意:需要在pytest.ini文件中注册标签名,否则执行时会存在warning
marks =
basic
advanced
hign
5.@pytest.mark.skip(reason = '不执行') #跳过测试类或者方法,括号中参数可写可不写,主要是方便记录跳过的原因
@pytest.mark.skipif(version == 2.0,reason= '不执行') #类似于skip,但是只有当前面的条件version==2成立时才会跳过,条件可自行选择
6.@pytest.mark.parametrize("account,password",[(18311111111,1234),(19911111111,4321),(18811111111,4657)]) #参数化测试用例,pytest参数名要和用例中的参数名相同
def test_login(self,account,password):
driver.input(account)
driver.input(password)
result = driver.click()
assert result == '登陆成功'
二.fixtures
1.@pytest.fixture() #可已经函数转化为fixture,然后可已经该fixture函数名作为参数传递给测试用例,先执行fixture函数
2.fixture适用范围:function 若scope = session,一般会将fixture函数写早conftest.py文件中,pytest会自动识别。conftest使用范围是该目录和其子目录 3.@pytest.mark.usefixtures('fixture函数名') #放在测试用例上面,表示执行运行某个fixture 4.叠加使用fixture:执行顺序 fixture2->fixture1->test用例 fixture1 fixture2 test用例 5.@pytest.fixture(autouse = True) #不需要在测试用例中调用fixture便可以每个测试用例前自动使用fixture 6.在python代码中执行测试用例: if __main__ == main(): pytest.main(['-s','-v','py文件名称']) 7.生成html测试报告 pytest -s -v test.py --html-report=./report/report.html 8.生成allure测试报告 pytest -s -v test.py --alluredir=D:\report\allure_report allure文件需要解析 allure serve D:\report\allure_report