第十期_集成测试框架 Pytest_20190718

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

数据驱动

装饰器


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的源代码
  • 为之编写测试用例
  • 测试用例的版本管理