pytest框架-基础

本文介绍了pytest,一个强大的Python测试框架,其特点包括简单易用、参数化、兼容各种自动化工具和插件,以及如何进行环境安装、常用插件、命名规则和测试报告生成。还详细讲解了pytest.ini配置文件的作用。
摘要由CSDN通过智能技术生成

介绍

pytest是一个非常流行的功能比较全的测试框架,它具有很多优点,例如简单易用、功能强大、可扩展性好等。使用pytest可以让开发者更方便地进行自动化测试,提高代码的质量和可靠性,也可以说是unitest框架的升级版本。

特点

● 灵活简单、容易上手,文档丰富
● 支持参数化,可以控制要运行的测试用例
● 可以和request、selinium、appium结合做接口自动化和ui自动化
● 可以和第三方插件结合使用,比如测试报告,allure
● 可以和ci工具结合,比如jenkins

环境安装

  • 安装命令
pip install -U pytest

参数说明:
-U: 将指定的软件包升级至当前最新的可用版本
其他说明:
官网安装说明有加上-U参数,不加上-U参数亦可

  • 检查版本
pytest --version

pytest常用插件

pytest-xdist 测试用例分布执行,多CPU运行分支
pytest-ordering 改变用例的执行顺序
pytest-rerunfailures 用例失败后重跑
pytest-html
allure-pytest 用于生成美观的测试报告
pip install -r requirements.txt

用法/命名规则

● 文件以test开头
● 类以Test开头,并且不能包含__init__函数(包含的话pytest认为这个类不是测试的类,不能运行用例)
● 函数以test开头
● 断言使用assert即可

运行

● 可以运行单个文件,多个文件,整个目录
● 可以关注运行的输出内容,用的比较多的是-vs,输出的报告数据比较全
● pytest.main(),测试用例通过的情况下,print不会打印出来,加上参数-vs可以在控制台看到输出
● 使用pytest框架后,一个用例失败不会影响另外一个用例

def __name__ == "__main__"
pytest.main(['-vs', '--alluredir', '../report/reportallure', '../test_case/test_cookies.py'])

-s:表示输出调式信息,包括print打印的信息
-v:显示更详细的信息,包含类名等
-vs
-rerunsNUM:失败重跑2次
-n:支持多线程或分布式用例
比如:pytest -vs ./testcase/test_login.py -n 2
-x:只要一个用例报错,就停止
-maxfail=2:出现两个失败用例就停止
-k:测试用例部分字符串指定测试用例执行
前提:按照顺序执行,需要导入pytest-ordering,测试用例前增加装饰器@pytest.mark.run(order=1)
比如:pytest -vs ./testcase -k “ao”
–html ./report/report.html

测试报告

os.system('allure generate ../report/allure -o ../report/html --clean')

pytest的pytest.ini

● pytest.ini文件是pytest的主配置文件;可以改变pytest的运行方式;它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。
● pytest.ini文件的位置一般放在项目的根目录下。
● 查看pytest.ini文件的配置选项:cmd下执行 pytest -h 或者 pytest --help 可以查看配置选项

[pytest]
#命令行的参数,用空格分隔
addopts = -vs --reruns 2
; 测试用例的路径
testpaths = test_case
#模块名的规则
python_files = test_*.py
#类名的规则
python_classes = Test*
#方法名的规则
python_functions = test*
markers =
    smoke:冒烟用例

smoke:冒烟用例,分布在各个模块里面
用例前@pytest.mark.smoke
pytest -vs -m “smoke or other”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值