python自动化笔记:pytest框架

目录

  • 一、pytest介绍
  • 二、测试用例命名规则
    • 2.1、pytest命名规则
    • 2.2、python命名规范
  • 三、pytest运行方式
    • 3.1、主函数方式
    • 3.2、命令行方式
    • 3.3、通过pytest.ini的配置文件运行(常用)
  • 四、跳过测试用例
    • 4.1 无条件跳过
    • 4.2 有条件跳过
  • 五、用例的前后置,固件,夹具,钩子函数

一、pytest介绍

二、测试用例命名规则

2.1、pytest命名规则

1、模块名必须以test_开头或者_test结尾。
2、测试类必须以Test开头,并且不能带有init方法。
3、测试用例必须以test_开头。

2.2、python命名规范

1、模块名:一般全小写:多个英文之间用_隔开。
2、类名:类名一般是首字母大写
3、方法名:一般全小写:多个英文之间用_隔开。

三、pytest运行方式

3.1、主函数方式

import pytestclass TestApi:def test_sheshou():print("鲁班")def test_fashi():print("安琪拉")if _name_ == '_main_':pytest.main()

常见参数

参数描述案例
-v输出更加详细的信息,比如文件和用例名称等pytest.main([‘-v’])
-s输出调试信息。打印信息等pytest.main([‘-s’])
–reruns N失败重跑N次(N是数字)
–x只要有一个用例执行失败,就停止执行测试
–maxfail=N出现N个失败就终止测试(N是数字)
–html=report.html生成html的测试报告
-n多线程
-k运行测试用例名称中包含指定字符串的用例 ,可以使用and或orpytest.main([‘-vs’,‘-k’,'one or two’])

指定模块运行

if _name_ == '_main_':pytest.main(['-vs','testcases/test_api2.py'])

指定整个文件夹运行

if _name_ == '_main_':pytest.main(['-vs','testcases/'])

通过node id的方式运行测试用例。

if _name_ == '_main_':pytest.main(['-vs','testcases/test_api.py::TestApi::test_sheshou'])

3.2、命令行方式

3.3、通过pytest.ini的配置文件运行(常用)

注:不管是命令行还是主函数都会读取这个配置文件

pytest.ini:全局配置文件,通常放在项目的根目录下,用于改变pytest的运行方式和设置配置信息

[pytest]
addopts = -vs -n 2 
testpaths =./test_case 
python_files = test_*.py  
python_classes = Test* 
python_functions = test  
markers =              smoke:冒烟用例     # 中文可有可无,标记字段说明    usermanage:用户管理模块     productmanage:商品管理模块
参数描述
addopts命令行参数,多个参数之间用空格分隔
testpaths配置搜索测试用例的范围
python_files改变默认的文件搜索规则
python_classes改变默认的类搜索规则
python_function改变默认的测试用例的搜索规则
markers标记,用于指定用例执行,与装饰器@pytest.mark.标记名 配合使用,需要在addopts中使用【-m smoke】才能生效,其中smoke是标记名,可以替换

特别提示:此文件中最好不要出现中文, 如果有中文的情况下,可使用notpad++改成GBK的编码。

用例里面加标记

class TestApi:@pytest.mark.smokedef test_sheshou():print("鲁班")@pytest.mark.productmanagedef test_fashi():print("安琪拉")

执行的时候通过-m参数指定标记

addopts = ‐vs ‐m smoke

四、跳过测试用例

4.1 无条件跳过

class TestApi:@pytest.mark.skip(reason="粒度不需要")@pytest.mark.smokedef test_sheshou():print("鲁班")

4.2 有条件跳过

class TestApi:@pytest.mark.skipif(age>2,reason="以后版本都不执行")@pytest.mark.productmanagedef test_fashi():print("安琪拉")

五、用例的前后置,固件,夹具,钩子函数

未完待续

在这里插入图片描述

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

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

相关文章

GD - GD-Link-V2接口引脚线序

文章目录 GD - GD-Link-V2接口引脚线序概述笔记接口线序连接方式 END GD - GD-Link-V2接口引脚线序 概述 弄了一个GD-Link-V2, 看了说明书,记录一下线序。 笔记 接口线序 出厂的GD-LINK-V2默认是向外供电为3.3V。 输出插座为2x5P - 2.54mm. 从GD-LINK-V2的(TOP…

数据结构——单向链表

目录 前言 一、单向链表 二、单向链表基本操作 1、链表单创建 2.节点插入 (1)尾部插入 (2)任意位置插入 3、单向链表节点删除 4、链表打印 5、释放链表 6、链表逆序 ...... 三、链表测试 总结 前言 链表(Linked List&a…

万字长文讲透数字化转型

温馨提醒:1.6w字详细拆解,内容篇幅较长,建议先收藏~ 数字化浪潮正在席卷全球,践行数字化转型和提升企业的运营水平与竞争力,已经成为各国企业角力全球市场的重要议题。为此,很多国家政府都推出了鼓励和推动…

(el-Time-Picker)操作(不使用 ts):Element-plus 中 TimePicker 组件的使用及输出想要时间格式需求的解决过程

Ⅰ、Element-plus 提供的 TimePicker 时间选择器组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 TimePicker 组件情况&#xff1a; 其一、Element-ui 自提供的 TimePicker 代码情况为(示例的代码)&#xff1a; // Element-plus 提供的组件代码: <template>…

Go - 10. * 值类型和指针类型的差异

目录 一.引言 二.接收者类型 三.代码示例 1.指针接收者 2.值接收者 3.运行结果对比 4.代码修改 5.刨根问底 四.总结 一.引言 go 语言中 func (c *Title) 和 func (c Title) 两个方法的传参差一个 * 号&#xff0c;二者的区别是一个是指针类型&#xff0c;一个是值类型…

MATLAB中的imshow函数的使用方法及实例应用

一、imshow函数 imshow是MATLAB工具软件中用于显示图像的函数&#xff0c;它支持多种图像类型&#xff0c;包括灰度图像、真彩色图像、索引图像等。以下是对imshow常用用法: imshow(I) 在图窗中显示灰度图像 I。imshow 使用图像数据类型的默认显示范围&#xff0c;并优化图窗、…

React(三):PDF文件在线预览(简易版)

效果 依赖下载 https://mozilla.github.io/pdf.js/getting_started/ 引入依赖 源码 注意&#xff1a;pdf文件的预览地址需要配置代理后才能显示出来 import ./index.scss;function PreviewPDF() {const PDF_VIEWER_URL new URL(./libs/pdfjs-4.5.136-dist/web/viewer.html, im…

软硬链接和动静态库

为什么一定要提供路径呢&#xff1f; 因为要根据路径找到文件 一切与路径相关的问题都是方便用户去访问文件 软硬链接 给我康康 软链接是这样的&#xff1a; ln -s file_target1.txt file_soft.link 软链接有独特的innode 这是硬链接&#xff1a; ln file_target2.txt …

【Redis】缓存三大问题与缓存一致性问题

缓存三大问题 缓存穿透 缓存穿透是指用户查询的数据在缓存和数据库中都不存在&#xff0c;导致每次请求都会直接落到数据库上&#xff0c;增加数据库负载。 解决方案 1&#xff09;参数校验 一些不合法的参数请求直接抛出异常信息返回给客户端。比如查询的数据库 id 不能小于…

python3.10安装geopandans实战笔记

1.geopandans安装所需软件库版本 python3.10 GDAL-3.4.3-cp310-cp310-win_amd64.whl【手动下载】 Fiona-1.8.21-cp310-cp310-win_amd64.whl【手动下载】 shapely-2.0.2-cp310-cp310-win_amd64.whl【手动下载】 pyproj 手动下载地址&#xff1a;https://download.csdn.net/down…

Unity入门5——材质

创建材质 点击Assets → Create → Material&#xff0c;得到一个默认材质球的副本。 使用材质 直接把材质球拖拽到物体上&#xff0c;或设置mesh renderer组件下的Materials 数组中第一个元素

html+css网页设计公司网站模版3个页面 无js 静态页面

htmlcss网页设计公司网站模版3个页面 无js 静态页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源…

iOS弱引用

背景&#xff1a;在面试过程中被问到如果两个对象已经发生循环引用了&#xff0c;该如何将他们剪断&#xff0c;在运行态的时候。 由于这个场景比较抽象&#xff0c;我理解面试官是希望我通过运行时的方法和方式来解决循环引用。 解决方案一: 重写setter用关联对象来实现wea…

数据库规范化设计 5大基本原则

规范化设计原则是数据库设计的基本原则&#xff0c;有助于减少数据冗余&#xff0c;提高数据一致性和完整性&#xff0c;简化数据管理&#xff0c;增强数据安全性&#xff0c;对整个开发项目至关重要。而缺乏规范化设计会导致数据冗余&#xff0c;增加存储成本&#xff0c;引发…

java 如何查看jar版本冲突,如何查看哪个模块依赖冲突,idea查看jar包冲突

1. idea 下载插件&#xff1a; 2. 如上图所示&#xff0c;下载Maven Helper, 注意是maven helper 不是别的 3.重启idea 4.点击pom文件&#xff0c;然后点击如图所示&#xff1a; 5. 如此即可查到&#xff0c;某个jar包 都有哪个模块依赖&#xff0c;使用的什么版本&#xff0…

【JavaEE】定时器

目录 前言 什么是定时器 如何使用java中的定时器 实现计时器 实现MyTimeTask类 Time类中存储任务的数据结构 实现Timer中的schedule方法 实现MyTimer中的构造方法 处理构造方法中出现的线程安全问题 完整代码 考虑在限时等待wait中能否用sleep替换 能否用PriorityBlo…

RISC-V竞赛|第二届 RISC-V 软件移植及优化锦标赛报名正式开始!

目录 赛事背景 赛道方向 适配夺旗赛 优化竞速赛 比赛赛题&#xff08;总奖金池8万元&#xff01;&#xff09; &#x1f525;竞速赛 - OceanBase 移植与优化 比赛赛程&#xff08;暂定&#xff09; 赛事说明 「赛事背景」 为了推动 RISC-V 软件生态更快地发展&#xff0…

收银系统源码-连锁店版本

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 私有化独立部署/全开源源码&#xff0c;系统开发语言&#xff1a; 核心开发语言: PHP、HTML…

【vue3】【elementPlus】【黑暗模式】

从创建vue3项目到引入elementPlus组件并设置黑暗模式 1.创建vue3项目&#xff1a; npm init vuelatest1.1 根据需求定制项目插件&#xff1a; 2.引入elementPlus组件&#xff1a; npm install element-plus --save2.1 如图注册全局elementPlus组件&#xff1a; ------------…

SPSS、Python员工满意度问卷调查激励保健理论研究:决策树、随机森林和AdaBoost|附代码数据

全文链接&#xff1a;https://tecdat.cn/?p37293 原文出处&#xff1a;拓端数据部落公众号 在深入了解公司当前的实际情况和员工内心真实想法的基础上&#xff0c;我们旨在从专业视角出发&#xff0c;为企业在组织管理方面的不足进行诊断&#xff0c;并进行全面审视。 为了…