• python_pytest


    一。过滤用例

    1.定义

    pytest,是由第三方开发的一个python单元测试框架,与python自带的unittest有些类似(pytest不完全兼容unittest)。

    与unittest相比:

    优点:

    1)编写用例比较灵活,不需要unittest那样先继承,setUp,tearDown这样的写法,pytest中可以在函数或者类中使用

    2)pytest更加简洁灵活(筛选用例)

    3)不需要加载用例,自动发现用例

    4)pytest兼容unittest

    5)可以使用测试插件

    6)引用测试报告更加方便

    不足之处:

    1)unittest是python自带的标准库,不需要安装

    2)不需要考虑与python版本兼容的问题

    注意:

    2.pytest发现用例的规则

    1)模块名称以test_或者_test.py

    2)测试类中不能有__init__(self)

    3)方法名称必须以test_开头

    4)pytest测试用例可以脱离类的形式,可以直接使用函数的形式;类也可以不集成unittest.TestCase

    5)自动发现用例(以如上1)、2)、3)的规则),unittest需要加载用例,用例执行顺序是按照ASCII码的顺序执行,pytest是按照用例的先后顺序一条条执行。

    3.过滤用例

    1)先注册ini文件,添加标签名(pytest.ini)

     2)打标签:需要在测试用例函数上面加 @pytest.mark.标签名 (标签名:步骤1)注册的标签名)

    3)运行制定标签用例:

    1.控制台命令:python -m "标签名"

    2.python文件中执行:

    if __name__ == "__main__":

      #执行标签名为error_test的用例
      pytest.main("-m error_test")

    3.引用测试报告:

    if __name__ == "__main__":

      #新增一个时间戳

      ts = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")

      #引入html测试报告,使用测试报告时需要先下载测试报告(pip install pytest-html)
      pytest.main(["--html={}.html".format(ts), "-m error_test"])

       #运行多个标签

      pytest.main(["--html={}.html".format(ts),"-m error_test","-m suesses"])

    4.测试夹具

    1.测试夹具设置(需要写在固定py文件中 =‘conftest’,该文件一般与‘run.py’同级放置--也就是放在最外层)

    @pytest.fixture(scope="function")
    def driver():
    '''
      yield之前为前置条件
      yield之后的为后置条件
      yield 并排的driver是返回的参数,此处可以把driver返回
    管理浏览器
    function:每次执行都调用
    class:一个类只执行一次
    module:一个模块中只执行一次
    :return:
    '''
    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.implicitly_wait(WAIT_TIME)
    yield driver
    driver.quit()

     2.测试夹具的使用:

    pytest.main(["--html={}.html".format(ts),"-m error_test","-m suesses"])
  • 相关阅读:
    C++中所有的变量和函数都必须有类型
    C++中struct类型增强
    C++对C语言的变量检测增强
    C++对C语言register的增强
    C++对C的实用性增强
    namespace命名空间
    文件操作:fseek函数和ftell函数
    最大子序和
    雪花雪花雪花(Hash思想)
    暑假集训-8.01总结
  • 原文地址:https://www.cnblogs.com/newsss/p/13382911.html
Copyright © 2020-2023  润新知