pytest测试框架 -- 简介
一、pytest测试框架简介:
(1)pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。
(2)pytest框架可以兼容unittest用例
(3)支持参数化
测试用例的skip和xfail,自动失败重试等处理
(4)能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试、接口自动化测试(pytest+requests);
(5)pytest并且具有很多第三方插件,并且可以自定义扩展,比较好用的比如pytest-allure(完美 html测试报告生成),pytest-xdist(多cpu分发)等;
(6)可以很好的和jenkins集成
二、用例编写规则:
(1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)
(2)测试函数必须以“test_”开头。
(3)测试类命名以"Test"开头。
三、pytest安装与依赖
pip install -U pytest U表示升级
pip insetall pytest-sugar ( sugar可以对我们运行的过程界面进行美化)
pip install pytest-rerunfailures( rerunfailures可以重新运行执行出错的测试用例)
pip install pytest-xdist( xdist多任务并发的执行测试用例)
pip install pytest-assume( assume可以在测试用例里面添加断言,通常是断言出错了就不执行了,但是通过用这个包,就可以即使这个断言出错了,也可以继续执行下一个断言)
pip install pytest-html( html可以生成html结果报告)
pip list 查看已安装模块
pytest -h 查看帮助
四、命令行模式执行:
pytest/py.test 运行该目录下所有以test_开头的.py文件
pytest -v (最高级别信息--verbose)打印详细运行日志信息
pytest -v -s 文件名 (s是带控制台输出结果,也是输出详细运行日志)
pytest 文件名.py 执行单独一个pytest模块
pytest 文件名.py::类名 运行某个模块里面的某个类
pytest 文件名.py::类名::方法名 运行某个模块里面某个类里面的方法
pytest -v -k "类名and not方法名" 跳过运行某个测试用例
pytest --html=report.html 生成html测试报告
pytest -m[标记名] @pytest.mark.[标记名]将运行这个有标记的测试用例
pytest -x 文件名 一旦运行报错就停止运行
pytest --maxfail=[num] 当运行错误达到num的时候就停止运行(比如冒烟测试,执行多少个失败的用例就打回)
pytest 文件名 -s 显示print内容
# 执行该.py文件中所有以Test开头的类,以及test_开头的函数
# 仅执行TestApi类中的test_login函数
# 执行test_run.py中除了test_upload外的所有测试类和测试函数
# 测试文件运行错误达到2次后,便停止运行
#运行错误后,重复再运行2次,且每次延时2秒(前提:pip install pytest-rerunfailures)
# 在当前目录下生成report.html测试报告
五、pycharm中执行:
参考:https://www.cnblogs.com/zhaikunkun/p/12583742.html
最新文章
- Prometheus 系统监控方案 二 安装与配置
- Hibernate之全面认识
- Tableau10.0学习随记-度量的聚合设置(取消度量汇总-展示所有数据)
- 添加thrust的库后出错
- yield return的用法简介
- 无序数组的中位数(set+deque)hdu5249
- Inno Setup技巧[界面]自定义安装向导小图片宽度
- Winfrom 程序打包及安装
- vim - manual -个人笔记
- html-webpack-plugin 遇到 throw new Error('Cyclic dependency' + nodeRep)
- Faiss安装
- jQuery对标签select优化:实现模糊搜索查询功能
- Multi-attention Network for One Shot Learning
- 第二类Stirling数
- Problem D: 求(x-y+z)*2
- C# 自定义类型通过实现IFormattable接口,来输出指定的格式和语言文化的字符串(例:DateTime)
- cookie的详解
- Windows 7 完美安装 Visual C++ 6.0
- nodejs发送http请求
- MD5摘要算法实现
热门文章
- 小程序3:ATM小程序
- 记录使用Python登录浙江大学统一身份认证
- mysql-STRAIGHT_JOIN-优化
- .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统
- Java 8新特性(一):Lambda表达式
- Paillier同态加密实现
- Linux服务器上创建新用户
- Java多线程_ReentrantLock
- [Redhat虚拟机安装][VirtualBox][NET:Registered protocol family 2]
- Ajax、XMLHttpRequest、JSONP的区别