自动化测试框架Pytest(一)——入门
今天来学习一款Python的自动化框架——pytest
一、单元测试框架
java:junit和testing
python:unittest和pytest
单元测试框架主要做什么:
1、测试发现:从多个文件里找测试用例
2、测试执行:按照一定的顺序和规则去执行,并生成结果
3、测试判断:通过断言判断预期结果和实际结果的差异
4、测试报告:统计测试进度、耗时、通过率,生成测试报告
pytest简介:
1、pytest是一个非常成熟的Python单元框架,比unittest更灵活,容易上手
2、pytest可以和selenium、requests、appium实现web自动化、接口自动化、app自动化
3、pytest可以实现测试用例的跳过一级reruns失败用例重试
4、pytest可以和allure生成非常美观的测试报告
5、pytest可以和jenkins持续集成
6、pytest有很多强大的插件
二、使用pytest
1、模块名必以test_开头或_test结尾
2、测试类名必须以Test开头,并且不能有init方法
3、测试方法必须以test开头
三、pytest测试用例的运行方式
1、主函数模式
(1)运行所有:
pytest.main()
(2)运行模块:
pytest.main(['-vs','./testcase/test_01.py'])
(3)指定文件夹:
pytest.main(['-vs','./testcase'])
(4)nodeid方式启动:
pytest.main(['-vs','./testcase/test_01.py::TestLogin::test_01'])
2、命令行模式
(1)运行所有:
pytest
(2)运行模块:
pytest -vs ./testcase/test_01.py
(3)指定文件夹:
pytest -vs ./testcase
(4)nodeid方式启动:
pytest -vs ./testcase/test_01.py::TestLogin::test_01
参数:
-s:输出调试信息,包括print打印的信息
-v:显示详细信息
-k:根据测试用例的部分字符串指定测试用例
pytest -k "02"
-n:几个线程并行跑
pytest -vs -n 2
pytest.main(['-vs','-n=2'])
-x:只要有一个用例报错,那么测试就停止
3、通过读取pytest.ini配置文件运行
[pytest]
addopts = -vs
testpaths = ./testcase
python_files = test_02.py
python_classes = Test*
python_functions = test
1、位置一般放在项目的根目录。
2、编码必须是ANSI,可以使用notpad++修改编码格式。
3、作用是改变pytest默认的行为。
4、不管是主函数的模式运行还是命令行的模式运行
四、rerunfailures失败重试
1、pip升级
python -m pip install pip==20.2.4
2、安装 pytest-rerunfailures
python -m pip install pytest-rerunfailures
3、main函数添加参数 --rerun=重试次数
pytest.main(['-vs','--reruns=2'])
4、terminal执行指令:
pytest -vs ./testcase --reruns 2
可以看到执行失败的用例会重新执行2次
五、pytest的执行顺序
通过@pytest.mark.run(order=?)标记来指定顺序,数字越小的越先执行
class TestLogin:
@pytest.mark.run(order=1)
def test_01(self):
print('测试百里守约')
@pytest.mark.run(order=3)
def test_02(self):
print('测试娜可露露')
@pytest.mark.run(order=2)
def test_03(self):
print('测试蔡文姬')
六、分组执行
通过@pytest.mark.XXX来进行分组
@pytest.mark.smoke
def test_01(self):
print('测试蔡文姬')
@pytest.mark.usermanage
def test_02(self):
print('测试东皇')
pytest.ini
[pytest]
addopts = -vs -m "smoke or usermanage"
testpaths = ./testcase
python_files = test_02.py
python_classes = Test*
python_functions = test
markers =
smoke:冒烟用例
usermanage:用户管理模块
也可以terminal执行:
pytest -vs -m "smoke or usermanage"
七、pytest跳过测试用例
1、无条件跳过,可以后面不加reason
@pytest.mark.skip(reason="无敌")
def test_04(self):
print('测试东皇')
2、有条件跳过
age = 15
@pytest.mark.skipif(age<18,reason="未成年")
def test_05(self):
print('测试跳过')
3、terminal执行pytest
八、生成测试报告
addopts = -vs --html ./report/report.html
下一章介绍pytest的初始化和相关工具
学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入下方我的qq群大家一起讨论交流,里面也有各种软件测试资料和技术交流。
自动化测试框架Pytest(一)——入门相关推荐
- iOS自动化探索(四)自动化测试框架pytest - 安装和使用
自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: ht ...
- 小白学 Python 爬虫(28):自动化测试框架 Selenium 从入门到放弃(下)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 自动化测试框架-pytest框架入门篇
前段时间,九九姐更新了自动化测试中unittest框架,然后有很多小伙伴私聊九九姐,说想学习一下pytest框架的内容.既然大家已经说话了,九九姐怎么能不安排呢,所以今天就给大家说一说pytest框架 ...
- python自动化测试框架pytest.pdf_Python自动化测试框架
随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架.只需要进行一些适用性和效率参数的调整,这些自动化测试框架就能够开箱即用,大大节省了开发时间.而且由于这些框架被广泛使用,他们具有很好的 ...
- 自动化测试框架Pytest使用mark和参数化固定装置、测试函数
目录 一.常见的内置markers 二.查看所有markers 三.注册自定义marks 四.对未注册mark的限制 五. 参数化固定装置.测试函数 一.常见的内置markers usefixture ...
- pytest测试框架_带你深入理解自动化测试框架Pytest的配置文件!
都有哪些种类的配置文件 pytest.ini:pytest的主配置文件,可以改变pytest的默认行为 conftest.py:是本地插件库,其中的hook函数和fixture将作用于该文件所在的目录 ...
- 小白学 Python 爬虫(27):自动化测试框架 Selenium 从入门到放弃(上)
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...
- 一、Pytest自动化测试框架 — Pytest和unittest测试框架原理
目录 前言 ###文章内容有配套的学习视频和笔记都放在了文章末尾### 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5 ...
- 小白学 Python 爬虫:自动化测试框架 Selenium 从入门到实战
引言 前面连续几篇爬虫实战不知道各位同学玩的怎么样,小编是要继续更新了,本篇我们来介绍一个前面已将安装过的工具: Selenium ,如果说是叫爬虫工具其实并不合适,在业界很多时候是拿来做自动化测试的 ...
最新文章
- nginx+tomcat集群负载均衡中的多虚拟主机配置
- 使用HtmlUnit获取html页面
- boost::core::has_single_bit的测试
- SpringBoot2.1.5 (9)--- GET 请求
- Python菜鸟快乐游戏编程_pygame(4)
- SQL Server的代码生成器
- 第六周java实验报告四
- linux fsck命令,Linux中fsck命令起什么作用呢?
- c语言按位取反 补码,按位取反运算符,数值取反之后是反码,还是补码- -
- Shell 常用积累
- 怎么写linux的sh文件,linux – 什么是.sh文件?
- 3500常用汉字书法体检测数据集
- java中json转对象_Java开发中json使用,各对象与json相互转换
- 一生不要瞎忙,只要做对三件事
- 有哪些原版英文书籍值得推荐?
- 影子卫士中文注册版+系统保护的尚方宝剑、、
- 【BZOJ】【P3110】【ZJOI2013】【K大数查询】【题解】【树套树】
- java xlsm_在Java中使用POI框架读取xlsm文件时出错
- 【论文笔记】CIRNet:基于CycleGAN的无监督循环配准模型
- 黑马python培训_要一张纯黑的图片。纯黑的。