pytest基础知识----配置

1、自动化主流框架介绍

当前业界基于python语言的自动化框架主要包括:Unittest,Pytest这2种,其中:Unittest是Python标

准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框

架一样,Unittest则是Python语言的标准单元测试框架;Pytest是Python的另一个第三方单元测试库。

它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。

2.PytestUnittest的区别对比

3.Pytest下测试用例规则

尽管pytest下关于测试用例的方法、类、文件可以进行搜集规则的配置,但是默认的写法是:

1.pytest将在当前目录及其子目录中运行所有格式为test.py或者test.py文件 2.测试方法/测试函数 默认必须是test开头

3.测试类必须是Test开头

4. 测试类不能有构造方法 init

希望大家可以默认使用上面的规则,与pytest默认的规则一致,以免产生其他问题

4.pytest的安装

pytest安装使用pip安装即可

#安装pytest
pip install pytest
#验证安装是否成功
pytest --version

 Pycharm运行模式设置

5.pytest中的断言

pytest中的断言使用assert结合python中的运算符进行断言,常见的断言有:

assert xx :判断 xx 为真 is Ture
• assert not xx :判断 xx 不为真 is not True / is False
• assert a in b :判断 b 包含 a
• assert a not in b :判断 b不包含 a
• assert a == b :判断 a 等于 b
• assert a != b :判断 a 不等于 b
• assert a >= b :判断 a 大于等于 b
• assert a <= b :判断 a 小于等于 b
• assert a > b :判断 a 大于 b
• assert a < b :判断 a 小于 b
其中 还可以在条件中加上 or (或者)、and( 和)的条件 。

 

6.pytest常用运行参数

pytest执行命令如下:

创建test_demo2.py文件,内容下

import pytest
def test_001():
print('aaaaaaaaaaaa')
pass
class Test_001:
def test_a_001(self):
pass
if __name__ == '__main__':
pytest.main()

不加任何参数,执行的命令:pytest.main(),显示最简单的运行结果

 -v:用于显示用例执行的具体执行信息

-s:用于显示用例中print()打印信息到控制台

 

-k=字符串:用于显示包含指定字符串的用例

 

-q:简化输出信息 

-x:如果出现一条测试用例失败,则退出测试

 

目录路径/文件名::类名::方法':名指定目录以及特定类或方法执行

 

--maxfail=num:设置测试用例失败的阀值,失败的用例数超过阀值,测试执行结束

 

 

-m=标记:执行标记的用例

-n=数字/auto:多线程运行用例,指定使用几个进程跑,如果未auto会自动匹配机器的CPU逻辑核数

 

--reruns=失败重跑次数,--reruns-delay=间隔秒数:失败重跑设置 

--html=指定路径/报告名称.html:生成pytest-html报告

 

7.pytest.ini配置文件的使用

平时在执行的使用临时添加这些常用运行产生可能会记不住,不便于使用;通常可以将这些常用参数写

入pytest.ini(文件名称及类型不能变更)配置文件中,让pytest框架自动失败里面的执行配置,方便使 用的使用,想要控制用例的执行,只需要修改参数即可,一般建议在项目目录的根目录下创建pytest.ini 文件

a.如果需要在pytest.ini文件中写中文的注释,有可能会乱码,解决方案如下:

新建pytest.ini文件后,选择文件,让后点击Pycharm上的file,找到File Properties,选择下面的File

Encoding,在文件编码语言中选择GBK,点击convert即可

b.pytestl.ini文件具体内容如下:

[pytest]

;-s:用于显示用例中print()打印信息到控制台

;-v:用于显示用例执行的具体执行信息

;-k=字符串:用于显示包含指定字符串的用例

;-q:简化输出信息

;-x:如果出现一条测试用例失败,则退出测试

;-l:测试用例失败时追踪堆栈信息,所有局部变量及其值都会显示出来

;-m=标记:执行标记的用例,一般不建议直接在addopts键下中跑,可以单独使用markers键下配置

;-n=数字/auto:多线程运行用例,指定使用几个进程跑,如果未auto会自动匹配机器的CPU逻辑核数跑,需

要先安装pytest-xdist;pip install pytest-xdist

;--maxfail=num:设置测试用例失败的阀值,失败的用例数超过阀值,测试执行结束

;--reruns=失败重跑次数,--reruns-delay=间隔秒数:失败重跑设置

;--tb=style,style的值可以为no,line,short,no:不打印失败信息,line:一行显示错误信息,

short:简短显示错误信息

;--html=指定路径/报告名称.html:生成pytest-html报告

;----self-contained-html:建议添加,否则pytest测试报告的css文件是独立的

;要注释常用操作行为,可以在操作选项前面加上; 如下面的;-n=auto

;addopts:配置命令行选项

addopts = -s

                 -v

                 -l

                 ; -m=smoke

                 ; -n=auto

               --tb=short

               --reruns=3

               --reruns-delay=2

              --html=./report/html_report.html

              --self-contained-html

;testpaths:读取测试用例的起始文件夹,多个路径用空格分隔。注意:这些目录下不能出现相同文件名,否

则会报错

testpaths = ./testcases

;norecursedirs = .* venv test_001 *.egg dist build:指定不运行对应目录下的测试用例,当与

testpaths目录一致时,以testpaths目录为主

norecursedirs = .* venv demo *.egg dist build

;--------------下面一般不建议写入配置文件,因为测试用例一般是批量执行的-------------------

;python_files:设置读取测试用例文件名的规则,运行指定文件名下的用例,可以改变文件名称,如:

aaa.py

;python_files = test_*.py

;python_files:设置读取测试用例类的规则,运行指定类名下的用例,可以改变文件名称,如:Beeee*

;python_Class = Test*

;python_functions:设置读取测试用例方法的规则,运行指定测试用例名,可以改变文件名称,如:

abcd*

;python_functions = test

;-------------------------------------------------------------------------------

;markers:注册指定的标记,用于测试用例中去使用,如果测试用例使用未注册的标记,会给出警告

markers =

smoke : 冒烟测试用例

aaaa : 新增其他

ssss : XXXXXXXXXX

 配置好后,后续使用pytest执行测试用例,只需要执行:pytest.main()即可

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现简易博客系统

下面我将介绍如何使用Python实现一个简易的博客系统,包含前后端完整功能。这个系统将使用Flask作为Web框架,SQLite作为数据库,并包含用户认证、文章发布、评论等基本功能。 1. 系统架构设计 技术栈选择 ​​后端​​:Flask (Python Web框架)​​数据库​​:SQLite (轻量…

蓝桥杯比赛

蓝桥杯全国软件和信息技术专业人才大赛是由工业和信息化部人才交流中心主办&#xff0c;国信蓝桥教育科技&#xff08;北京&#xff09;股份有限公司承办的计算机类学科竞赛。以下是其相关信息&#xff1a; 参赛对象 具有正式全日制学籍且符合相关科目报名要求的研究生、本科生…

高性能、云原生的对象存储服务MinIO 详细介绍与案例应用

什么是MinIO&#xff1f; MinIO是一个高性能、云原生的对象存储服务&#xff0c;采用Apache License v2.0开源协议发布。它与Amazon S3云存储服务API兼容&#xff0c;适合构建高性能、可扩展的存储基础设施。支持大规模非结构化数据的存储&#xff0c;适合图片、视频、日志、备…

Transformer架构的解耦重组现象

技术演进图谱与技术成熟度曲线 &#xff08;一&#xff09;架构创新范式迭代 1.1 Transformer架构的解耦重组现象 以2025年Opt模型为例&#xff0c;其通过引入强化学习微调模块实现了传统单层堆叠架构向"感知-推理分离"模式的转型。实验数据显示&#xff0c;该架构…

Linux——线程(3)线程同步

一、线程同步的引入 通过上面的抢票系统我们发现&#xff0c;有的线程&#xff0c;进行工作&#xff08;挂锁&#xff09;&#xff0c;当其马上结束工作&#xff08;解锁&#xff09;&#xff0c;发现外面有很多线程在排队等着加锁执行任务&#xff0c;这个线程解锁后就立马给…

基于go的简单管理系统(增删改查)

package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )var db *sql.DBtype user struct {id intname stringage int }// 建立连接 func initDB() (err error) {dsn : "root:123456tcp(127.0.0.1:3306)/mysqltes…

HTN77A0原理图提供聚能芯半导体禾润一级代理技术支持免费送样

在电源管理需求日益严苛的当下&#xff0c;禾润 HTN77A0 以卓越性能脱颖而出。它不仅适配多种应用场景&#xff0c;还兼具高效节能与稳定输出&#xff0c;为设备供能带来革新体验。 禾润 HTN77A0 同步降压变换器&#xff0c;凭借5V~130V 超宽输入电压范围&#xff0c;打破传统供…

小程序中的页面跳转

小程序中的页面跳转 在之前网页的学习中&#xff0c;我们往往采用超链接&#xff0c;或者定义方法、函数等方式来实现页面的跳转&#xff0c;但是微信小程序中没有超链接&#xff0c;那我们该如何实现呢&#xff1f;微信小程序的页面跳转包括两个&#xff0c;一个是tabBar页面…

在K8S迁移节点kubelet数据存储目录

默认k8s节点kubelet数据目录在 /var/lib/kubelet&#xff0c;如果在部署前没有做好规划&#xff0c;其实默认就存储在系统盘/分区下了&#xff0c;这样会导致一个问题&#xff0c;如果数据量过大会导致kubelet服务异常&#xff0c;其次&#xff0c;系统盘下有一些系统服务引用&…

MySQL基础关键_002_DQL(一)

目 录 一、初始化 二、简单查询 1.部分语法规则 2.查询一个字段 &#xff08;1&#xff09;查询员工编号 &#xff08;2&#xff09;查询员工姓名 3.查询多个字段 &#xff08;1&#xff09;查询员工编号、姓名 &#xff08;2&#xff09;查询部门编号、名称、位置 …

阿里云服务迁移实战: 04-IP 迁移

普通过户 如资料过户按量付费EIP所述&#xff0c;如果原账号是个人账号&#xff0c;则目标账号无限制&#xff0c;如果原账号是企业账号&#xff0c;则目标账号必须为相同认证主体的企业账号。 其主要操作就是&#xff0c;在原账号发起过户&#xff0c;在新账号接收过户。具体…

安恒安全培训实习生,CTF方向面试题!

目均模拟真实CTF赛题&#xff0c;需结合动态调试与工具链&#xff08;pwntools/ROPgadget/one_gadget&#xff09;完成利用。 覆盖栈、堆、格式化字符串、高级堆利用、沙箱逃逸五大方向&#xff0c;从基础ROP到House of Apple&#xff0c;逐步提升对抗防护的能力。 题目1&…

【C++QT】Combo Box 组合框控件详解

文章目录 一、QComboBox&#xff08;Combo Box&#xff09;1. 基本用法2. 特性3. 信号与槽函数 二、QFontComboBox&#xff08;Font Combo Box&#xff09;1. 基本用法2. 特性3. 信号与槽函数 三、总结如果这篇文章对你有所帮助&#xff0c;渴望获得你的一个点赞&#xff01; 在…

Best Video下载器——全能高清无水印视频下载工具

在当今短视频和流媒体盛行的时代&#xff0c;用户经常遇到想要下载视频却受限于平台限制的情况。无论是收藏喜欢的影视片段、保存有价值的教程&#xff0c;还是进行二次创作&#xff0c;一款高效、免费且支持多平台的视频下载工具显得尤为重要。Best Video下载器正是为此而生&a…

AI音频核爆!Kimi开源“六边形战士”Kimi-Audio,ChatGPT语音版?

音频处理领域的天花板被撕开了。 刚刚&#xff0c;kimi 发布全新通用音频基础模型 Kimi-Audio&#xff0c;这款由月之暗面&#xff08;Moonshot AI&#xff09;推出的开源模型&#xff0c;在 24 小时内收获 3.2 万星标&#xff0c;不仅以 1.28% 词错率刷新语音识别纪录&#xf…

安装VMware虚拟机时出现报错:

如果已在 BIOS/固件设置中禁用 Intel VT-x&#xff0c;或主机自更改此设置后从未重新启动&#xff0c;则 Intel VT-x 可能被禁用。 1.解决的方法&#xff1a; BIOS 设置要求 为了使 VMware Workstation 支持用户级别的监控并允许模块 MonitorMode 成功启动&#xff0c;需确保…

基于ESP32 S3 + PVDF采集呼吸心率

压电薄膜可以采集到微动特征&#xff0c;压阻传感器可以采集到是否有大重量压力&#xff0c;利用这个特性实现类似于床带采集呼吸心率&#xff0c;实现生命体征检测功能 ESP32 S3 PVDF实现生命体征检测带 硬件&#xff1a; ESP32 S3PVDF压敏压阻涂鸦传感器&#xff08;可选支…

多模态大语言模型arxiv论文略读(五十)

Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ➡️ 论文标题&#xff1a;Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ➡️ 论文作者&#xff1a;Dingchen Yang, Bowen Cao, Guang Chen, Changjun Jiang ➡️ 研究机构: 同济大学…

智能驾驶新时代:NVIDIA高级辅助驾驶引领未来出行安全

智能驾驶新时代&#xff1a;NVIDIA高级辅助驾驶引领未来出行安全 在全球汽车产业数字化转型的时代潮流中&#xff0c;高级辅助驾驶技术已逐渐成为推动产业革新的核心动力。作为这一领域的领导者之一&#xff0c;NVIDIA通过其先进的技术解决方案&#xff0c;正在积极塑造未来的…

总结小程序的坑

小程序中的wxss中 background不能使用本地图片 解决方法&#xff1a; 使用 Base64 编码&#xff08;适合小图片&#xff09;使用网络图片&#xff0c; 网络图片需要用https用 image 标签替代 分包的图片主包不能使用&#xff0c;这是分包中的图片资源默认不能被主包或其他分包直…