Pytest
pytest --collect-only
用例顺序
用例顺序
- setup_module
- setup_class
- setup_method
- teardown_method
- teardown_class
- teardown_module
使用pytest-order控制用例之间的顺序控制
参数化
class TestCalc:
def setup(self) -> None:
self.calc=Calc()
@pytest.mark.parametrize("a, b, c", [
(1, 1, 2),
(1, 0, 1),
(1, -1, 0),
(1, 1000000, 1000001)
])
def test_add(self, a, b , c):
print(a,b,c)
assert self.calc.add(a, b)==c
数据驱动
- json
- yaml YAML 语言教程 - 阮一峰的网络日志
装饰器
def before(func):
def new_now():
print("setup")
func()
return new_now
@before
def now():
print("2019")
def test_demo():
now()
Allure2
作业解答
课后作业
- 实现一个测试用例集合,包含3个类TestA TestB TestC,每个类包含三个方法,总共9个方法 test_1 到test_9。执行顺序的时候,希望完成如下的顺序
顺序控制
- logging.info(“login”)
- TestA
- TestA teardown完成环境清理
- TestB每个方法都要有初始化,但是没有teardown
- TestB的test6包含3个参数化用例
- TestC的执行顺序是test8 test9 test7
- 整个module完成执行数据清理
完成特定动作只需要用loggin打log表示即可,最后贴出如下内容
- 整个module的源代码
- allure执行的报告截图
下节课预告
- 阅读request的源代码
- 为之编写测试用例
- 测试用例的版本管理