当函数的名字以 test_ 开始,在执行的时候会自动当作自动化测试用例来执行。
测试用例也可以封装在类中。

类中定义测试方法

测试类 类名命名规范 以 Test 开头。
testcases/test_users.py

  1. class TestUsers:
  2. def test_register(self):
  3. assert True
  4. def test_login(self):
  5. assert True
  6. def test_search(self):
  7. assert True

使用pytest执行

  1. pytest -s -v testcases/test_users.py

image.png
默认运行整个类中所有的测试用例。

单个调试

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

  1. pytest -s -v testcases/test_users.py::TestUsers::test_register

image.png

指定运行

也可以指定运行多个用例

  1. pytest -s -v testcases/test_users.py::TestUsers::test_register testcases/test_users.py::TestUsers::test_search

image.png

-m 标记运行

在测试用例可以为不同的用例添加不同的标记。
testcases/test_users.py

  1. import pytest
  2. class TestUsers:
  3. @pytest.mark.smoke
  4. def test_register(self):
  5. assert True
  6. @pytest.mark.smoke
  7. def test_login(self):
  8. assert True
  9. def test_search(self):
  10. assert True
  11. @pytest.mark.smoke
  12. def test_add_cart(self):
  13. assert True
  14. def test_add_adrres(self):
  15. assert True
  16. def test_add_order(self):
  17. assert True

运行的时候,可以指定标签运行。

  1. pytest -s -v -m "smoke"

image.png
这种方式运行会有一些 警告信息
image.png
(大家可以在课下 根据警告中的提示信息,看自己能不能解决这些警告。)

-k 指定方法名

指定方法名或者指定类名的方式来进行运行。

  1. pytest -s -v -k "test_add"

image.png

会自动运行 方法名中 包含 test_add 开头的测试方法。

pytest-order 指定运行顺序

默认运行测试用例的顺序是 从上往下执行。根据编写测试用例的顺序执行的。

安装

  1. pip install pytest-order

使用

testcases/test_users.py

  1. import pytest
  2. class TestUsers:
  3. def test_register(self):
  4. assert True
  5. def test_login(self):
  6. assert True
  7. @pytest.mark.order(2)
  8. def test_search(self):
  9. assert True
  10. @pytest.mark.order(1)
  11. def test_add_cart(self):
  12. assert True
  13. def test_add_adrres(self):
  14. assert True
  15. def test_add_order(self):
  16. assert True

执行

  1. pytest -s -v testcases\test_users.py

image.png