IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python PyTest 回忆录(一) -> 正文阅读

[开发测试]Python PyTest 回忆录(一)

  1. pytest安装
    1. pip install pytst
  2. 测试用例的识别与运行
    1. 测试文件名规范
      1. test_*.py
      2. *_test.py
    2. 测试用例识别
      1. Test*开头的类所包含的所有test_*的方法(测试类不可以包含__init__方法)
      2. 不在类中的所有test_*方法
    3. pytest也可以执行unittest框架写的用例和方法
  3. pytest-rerunfailures-- 执行失败重新运行
    1. pytest-rerunfailures安装-- pip install pytest-rerunfailures
    2. 执行
      1. pytest --reruns 3 -v -s test_class.py-- 执行失败重试三次
      2. pytest -v --reruns 5 --reruns-delay 1 test_class.py-- 每次失败后间隔1s再重新运行
  4. pytest-assume-- 一个方法中有多个断言,当断言失败后,仍要程序继续执行时使用
    1. pip install pytest-assume-- 安装
    2. 执行
      1. pytest.assume(1==4)
      2. pytest.assume(2==4)
  5. pytest.main()-- 运行当前py文件中所有用例
    1. pytest.main("-v -x 类名")
    2. pytest.main(['-v','-s','类名'])
  6. 生命周期
    1. 模块级(setup_module/teardown_modeule)优先级最高 一个py文件为一个module
    2. 函数级(setup_function/teardown_function)只对函数用例生效,class之外的为函数
    3. 类级(steup_class/teardown_class)只在类中生效,
    4. 方法级(setup_method/teardown_method)方法中生效,优先级高于setup/teardown
    5. 类里面额(setup/teardown)运行在调用方法的前后
  7. pytest-fixture-- 标记是否需要前置操作,如:有的用例需要登录后测试,有的不需要登录后时用到
    1. 用法-- 在方法前加 @pytest-fixture()
    2. @pytest-fixture()
    3. def login():
    4. print(‘调用登录')
    5. def test_case1(login):
    6. pass
    7. def test_case2():
    8. pass
    9. def test_case3(login):
    10. pass
    11. 上述代码,login被标记为是否被前置调用,case1与case3为需要前置操作再执行,case2为不需要前置操作即可执行
  8. conftest.py-- 进行数据共享,通用的可以放在这个文件中
    1. 前置@pytest-fixture() 可写在配置文件中,自动被调用
    2. 文件名不可更改,必须为conftest.py
    3. 不需要import,pytest用例会自行查找
    4. 全局配置与前置执行,都可以写在这个文件中
    5. conftest.py与运行的用例要在同一个package中,并且有__init__.py的文件
  9. yield关键字-- 执行收尾,需要返回值需要使用adddinalizer
    1. 用法--在方法前加 @pytest-fixture(scope=module)--scope(作用域)
  10. @pytest-fixture(autouse==True)
    1. 在所有用例中执行被标记的方法
  11. @pytest-fixture(params=[1,1,1,'aaa'])
    1. def test_demo(request)--通过request获取传递的参数:
    2. return request.param
    3. 多参数传值
    4. @pytest.mark.parametrize("test_input,excepted",[("3+5",8),("2+5",7),(7*5,30)])
    5. def test_eval(test_input, excepted):
    6. asscert ecal(test_input) == expected
    7. ****indirect=Ture-- 把传递的参数当函数执行,即参数名为函数名
    8. @pytest.mark.parametrize(参数名,参数内容,indirect=Ture)
  12. @pytest.mark.skpi("注释内容")-- 跳过此用例
  13. @pytest.mark.skpiif(条件,reson=="条件不符合,不执行"
  14. @pytest.mark.xfail-- 标记为可能会失败,xfail/xpass,配合nameerror判断是否是真的fail
  15. pytest -s test_mark.pu -m -- m指令标志用例分类,在用例前标记@pytest.mark.[标签名字],可以将用例分类,执行时按照用例分类批量执行
    1. pytest -s test_mark.py -m ios
    2. pytest -s test_mark-py -m android
  16. pytest-xdist-- 多线程并行与分布式执行
    1. pip install pytest-xdist
    2. pytest -n 3 -- -n 3 为多个CPU内核并行数量
    3. 在多个终端下一起执行
  17. pytest-html -- 测试报告生成
    1. pip install pytest-html
    2. pytest -v -s --html=report.html --self-contained-html --生成html报告

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:44:27  更:2021-08-11 12:45:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 8:23:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码