学完Unittest后,就不太喜欢Pytest的,直到这样被它彻底。。。。

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

安装Pytest

pip install -U pytest

Pytest用例设计原则

测试类以Test开头,并且不能带有init方法
以test_开头的函数
以Test开头的类
所有的包pakege必须要有__init__.py文件
断言使用assert

运行Pytest的两种方式

运行脚本时可以设置相应的参数,详情请查看参数说明
Pycharm里代码运行

@pytest.mark.xfail()

命令行运行方式

pytest test.py
# 运行指定类下的指定方法
pytest 文件名::类名::方法名

Pytest参数说明
-v 说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等
-s 说明:输入我们用例中的调式信息,比如print的打印信息等
-x:遇到错误的用例,立即退出执行,并输出结果
-collect-only:表示把待执行的用例全部展示出来
-vv :显示详细的测试结果
-tb=no:不展示用例失败的错误详情
-maxfail=num 当用例错误达到指定数量时,停止测试

ini配置文件

多个参数中间为空格
创建pytest.ini文件(文件名固定写法)

# [pyteset]
[pytest]
addopts=-vv -s 
testpaths=../HC/huace 
python_files=test*.py 
python_classes=huace
python_functions=test* 

命令行直接运行代码:pytest
会自动搜到这个pytest.ini配置文件进行运行

在这里推荐一个软件测试交流群,QQ:642830685,群中会不定期的分享软件测试资源,测试面试题以及行业资讯。大家可以在群中积极交流技术,还有大佬为你解答问题。

猜你喜欢

转载自blog.csdn.net/weixin_53519100/article/details/112972031
今日推荐