pytest 是一个非常成熟的全功能的 python 测试框架,主要有以下几个特点:
简单灵活,容易上手
支持参数化
能够支持简单的单元测试和复杂的功能测试,还可以用来做 selenium/appnium 等自动化测试、接口自动化测试(pytest+requests)
pytest 具有很多第三方插件,并且可以自定义扩展,比较好用的如 pytest-selenium(集成 selenium)、pytest-html(完美 html 测试报告生成)、pytest-rerunfailures(失败 case 重复执行)、pytest-xdist(多 cpu 分发)等
测试用例的 skip 和 xfail 处理
可以很好的和 jenkins 集成
report 框架----allure 也支持了 pytest
pip install -u pytest
测试类以 test 开头,并且不能带有 init 方法
以 test_开头的函数
以 test 开头的类
所有的包 pakege 必须要有__init__.py 文件
断言使用 assert
pycharm 里代码运行
命令行运行方式
-v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等
-s 说明:输入我们用例中的调式信息,比如 print 的打印信息等
-x:遇到错误的用例,立即退出执行,并输出结果
-v:表示查看详细的报告内容
-collect-only:表示把待执行的用例全部展示出来
-lf:只执行上次失败的用例
-vv :显示详细的测试结果
-tb=no:不展示用例失败的错误详情
-tb=line:展示用例失败的代码具体行数
-tb=short:展示更加详细的错误信息
-k "关键字" 说明:执行用例包含 “关键字” 的用例
-q 说明:简化控制台的输出,可以看出输出信息和上面的结果都不一样, 下图中有两个..点代替了 pass 结果
-maxfail=num 当用例错误达到指定数量时,停止测试
m 说明:执行特定的测试用例。我们再次修改一下我们的用例,并添加一个新的用例
注意:-m 后面不能带''号(单引号),只能带 “”(双引号),不然识别不到
创建 pytest.ini 文件 (固定写法)
跳过测试函数: 根据特定的条件,不执行标识的测试函数
未来的你肯定会感谢现在拼命的自己!