zoukankan      html  css  js  c++  java
  • 1,pytes框架介绍及与unittest框架对比

    一,pytest与unittest对比

    1,编写测试用例

    1.1规则

    unittest:

    • 测试类必须继承unittest.TestCase
    • 测试函数必须以"test_"开头
    • 使用defaultTestLoader.descover()加载测试用例时,测试模块(py文件)名称要以test_开头

    pytest:

    • 测试模块文件的文件名必须是"test_.py"或者以"_test.py"
    • 测试类命名必须以"Test"开头
    • 测试函数名必须以"test_"开头
    • 测试类里面不能使用"init"方法

    1.2前置后置

    unittest:

    • setup/teardown:在每个用例执行前后执行.
    • setupclass/teardownclass:在类中用例执行前后执行.

    pytest:
    方案一:

    • setup/teardown:会话级别,类和类外用例都可以使用.
    • setup_calss/teardownclass:类级别,测试类执行前后执行.
    • setup_module/teardown_module:模块级别,整个模块之情前后执行
      pytest方案二:
      fixture,是pytest特色,用的比较多

    1.3断言

    unittest: self.assertXXX()

    1. assertEqual(a, b)  判断 a 和 b 是否相等
    2. assertNotEqual(a, b)  判断 a 不等于 b
    3. assertTrue(a)  判断 a 是否为 Ture
    4. assertFalse(a)  判断 a 是否为 False
    5. assertIn(a, b)  a 包含在 b 里面
    6. asserNotIn(a, b)  a 不包含在 b 里面

    pytest: assert 表达式,表达式为真判断通过,否者失败

    2,收集测试用例

    unittest:通过TestLoader.discover(目录)收集到套件中
    pytest:为自动收集
    收集方式:

    • 1,目录 --从那个目录下开始搜索用例,确定roodir:pytest命令在那个目录下运行,就以那个目录为roodir.
    • 2,文件名 --通过文件名过滤,查找符合条件(test_.py或者_test.py)的文件名
    • 3,函数名/类下的方法中进行查找,符合规定的用例
      --函数名以test_开头
      --以Test开头的类下的test_开头方法

    3,执行测试用例

    unittest:run方法

    pytest:为收集并执行的过程.

    • 方式一:命令行的方式,pytest -s -v 控制台显示详细的用例执行情况.
    • 方式二:main文件的方式,py文件main:pytest.main([命令行参数])

    pytst的执行顺序:

    • 1,通过文件名的ascii码的顺序执行,可通过改变文件名调整执行顺序.
    • 2,py文件内部根据代码的顺序执行.

    4,测试报告生成

    unittest:

    • 通过HTMLTestRunner生成
    • 通过BeautifulReport生成

    pytest:

    • html插件:
      --安装html插件:pip install pytest-html
      --在运行用例的时候,添加参数 --html=htlm的路径(相对于roodir的路径)
    • allure
      --安装allure命令行(手动安装适用于各种平台)
      --安装allure与pytest的集成:pip install allure-pytest

    二,pytest的特色

    • 1,自动收集测试用例
    • 2,断言使用 assert 表达式
    • 3,可以设置多种级别的fixture来共享前置后置,有自己独特的fixture方式
    • 4,有丰富的插件库,比如测试报告allure,官方文档:https://docs.pytest.org/en/stable/
    难者不会 会者不难 学是关键
  • 相关阅读:
    STM32位带操作
    url参数 加密
    object.key 对象的键排序 可能出现的问题
    在vue项目中 获取容器的高度
    navigator 判断移动端是Android还是iOS
    Nginx下载地址
    Sublime Text3快捷键大全
    鼠标拖着元素飞
    g6 cavans
    vue img标签图片加载时 闪烁
  • 原文地址:https://www.cnblogs.com/hsmwm/p/15671645.html
Copyright © 2011-2022 走看看