自从学会了Python自动化Pytest框架,领导再也不敢在我背后指手划脚了
前言
大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点
pytest:
pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点:
1、简单灵活,非常方便的组织自动化测试用例;
2、支持参数化,可以细粒度地控制要测试的测试用例;
3、能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试、request接口自动化测试
4、pytest具有很多第三方插件,并且可以自定义扩展,比如测试报告生成,失败重运行机制
5、测试用例的skip和fail处理;
6、结合业界最美的测试报告allure+Jenkins,持续集成
selenium:
基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试。
Selenium,是目前的最火爆企业最主流的webUI自动化框架
环境搭建
pip install -U pytest
pytest-xdist #多线程
pip install -U pytest-rerunfailures #重试运行cases
pip install pytest-html #生成测试报告
pytest --version # 会展示当前已安装版本
编写规则
编写pytest测试样例非常简单,只需要按照下面的规则:
测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 init 方法
测试函数以test_开头
断言使用基本的assert即可
selenium+pytest案例实操
import pytest # 引入pytest包
def test_a(): # test开头的测试函数
print("------->test_a") assert 1 # 断言成功
def test_b():
print("------->test_b") assert 0 # 断言失败
if name == ‘main’:
pytest.main(['-s', 'class01.py'])
可以包含一个或多个Test开头的测试类,test_开头的函数
1.测试类主函数模式
pytest.main([’-s’, ‘test.py’])
2.命令行模式运行
pytest 文件路径/测试文件名
- 扩展插件
3.1. 测试报告: pytest-html
pytest.main([’-s’,‘test.py’,’–html=./report/result.html’])
表示当前路径下生成report文件夹,result.html文件
批量运行用例:pytest-xdist
pytest.main([’-s’,‘test.py’,’–html=./report/result.html’,’-n=2’])
-n=2 表示2个线程并发运行所有的测试用例
allure测试报告:allure-pytest
运行用例:pytest.main([’-s’, ‘-q’, ‘–alluredir’, ‘./report/xml’])
pytest 测试目标文件 --alluredir 数据目录 运行后的结果,是生成xml的数据集合
生成报告:allure generate --clean ./report/xml/ -o ./results/html/
第一个是数据集目录,第二个是生成报告目录 -o是指向目标生成测试报告的目录;
4.conftest配置
当自动化用例越来越庞大的时候,很多用例的数据可以共享,复用,让用例脚本可读性,维护性更高,比如登录等
conftest.py 配置里可以实现数据共享,比如py跨文件共享前置
conftest.py配置脚本名称是固定的,不能改名称
不需要import导入 conftest.py,pytest用例会自动查找
自从使用了pytest框架,爱了爱了,深深的感受到它的可扩展性和灵活性,老板再也不用担心我的自动化效率低
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
好好学习,天天向上! 学习不刻苦,不如卖红薯!
- 自动化框架之python+selenium+pytest
- python+appium+unittest+pytest 自动化测试框架
- python pytest测试框架介绍二
- python pytest框架的介绍与使用(持续更新中)
- Python单元测试框架之pytest -- fixtures
- 抛砖引玉——分布式数据驱动自动化测试框架结构Python+Selenium+Unittest+Ddt+HTMLReport
- python pytest测试框架介绍三
- Web全自动化测试Python + Pytest+Selenium+ Saucelabs
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- Python单元测试框架之pytest -- 断言
- python pytest测试框架介绍一
- python的pytest框架之命令行参数详解(上)
- Appium Python behave 自动化测试框架搭建(3) - Environment.py
- Python&Selenium&pytest借助allure生成自动化测试报告
- App自动化-python-Unittest框架
- Python&Selenium&pytest借助allure生成自动化测试报告
- python测试开发之pytest框架(1)
- Python 自动化测试实战 Zero to Hero 单元测试框架unittest的使用 (一)
- Python+selenium+unittest的GUI自动化框架实现
- Python Unittest 自动化单元测试框架Demo