当函数的名字以 test_ 开始,在执行的时候会自动当作自动化测试用例来执行。
测试用例也可以封装在类中。
类中定义测试方法
测试类 类名命名规范 以 Test 开头。
testcases/test_users.py
class TestUsers:def test_register(self):assert Truedef test_login(self):assert Truedef test_search(self):assert True
使用pytest执行
pytest -s -v testcases/test_users.py

默认运行整个类中所有的测试用例。
单个调试
默认运行整个py文件,会自动将改文件中的所有的测试用例都来执行。假设我只想运行 TestUsers 类中的第一个测试方法 test_register.
pytest -s -v testcases/test_users.py::TestUsers::test_register

指定运行
也可以指定运行多个用例
pytest -s -v testcases/test_users.py::TestUsers::test_register testcases/test_users.py::TestUsers::test_search

-m 标记运行
在测试用例可以为不同的用例添加不同的标记。
testcases/test_users.py
import pytestclass TestUsers:@pytest.mark.smokedef test_register(self):assert True@pytest.mark.smokedef test_login(self):assert Truedef test_search(self):assert True@pytest.mark.smokedef test_add_cart(self):assert Truedef test_add_adrres(self):assert Truedef test_add_order(self):assert True
运行的时候,可以指定标签运行。
pytest -s -v -m "smoke"

这种方式运行会有一些 警告信息。
(大家可以在课下 根据警告中的提示信息,看自己能不能解决这些警告。)
-k 指定方法名
指定方法名或者指定类名的方式来进行运行。
pytest -s -v -k "test_add"

会自动运行 方法名中 包含 test_add 开头的测试方法。
pytest-order 指定运行顺序
默认运行测试用例的顺序是 从上往下执行。根据编写测试用例的顺序执行的。
安装
pip install pytest-order
使用
testcases/test_users.py
import pytestclass TestUsers:def test_register(self):assert Truedef test_login(self):assert True@pytest.mark.order(2)def test_search(self):assert True@pytest.mark.order(1)def test_add_cart(self):assert Truedef test_add_adrres(self):assert Truedef test_add_order(self):assert True
执行
pytest -s -v testcases\test_users.py

