🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

一、Pytest 优点认知

1.可以结合所有的自动化测试工具
2.跳过失败用例以及失败重跑
3.结合allure生产美观报告
4.和Jenkins持续集成
5.很多强大的插件

 pytest-html:生产html测试报告pytest-xdist:多线程运行pytest-ordering:改变用例执行顺序pytest-rerunfailures:失败用例重爬allure-pytest:美观测试报告

一般项目中,会使用requerments.text文档保存插件名称,进行批量一次性安装

pip install -r requerments.txt

二、运行方式

1.主函数运行方式:main方法运行
2.命令运行方式
pytest -vs
-v:更加详细信息
-s:调试信息
-n=处理:多线程运行
--reruns=数字:失败用例重跑
--reruns=数字:失败用例重跑
--html=./report.html:生成html报告

用例分组运行

1.进行用例分组:
2.用例进行注解:

#@pytest.mark.分组名称  如下:
@pytest.mark.smoke

[pytest]
##运行命令,例如: -vs -m "smoke"分组执行名称都是固定的
addopts = -vs 
#测试用例文件目录
testpaths = ./testcases
python_files = test_*.py
python_classes = Test*
python_functions = test_*
##分组
markers =smoke:maoyancase:gongneng

三、前置后置,夹具

1.简单区分:直接调用方法,但是接口过多时,比较麻烦
    def setup(self):print("每个用例执行之前,都执行一遍")def teardown(self):print("每个用例执行之后,都执行一遍")
2.实现部分前置:如只想之一个用例进行前置,如登录时需要连接数据库。

需要使用装置器:

参数介绍:

@pytest.fixture(scope="作用域",params="数据驱动",autouse="是否自动执行",ids="自定义参数",name="重命名")
作用域:可以函数、类、模块、包、session

使用方法:

1.需要前置的功能函数上进行标注装置器
2.别的方法函数之间调用装置器

如下:一个文件里面进行部分前置唤醒

import timeimport pytest
import requests
#实现装置器标注前置,进行标注,yieid进行唤醒返回
@pytest.fixture(scope="function")
def conn_getbase():print("连接数据库成功")yieldprint("关闭数据库成功")class TestSendRequsets:#过多接口时,比较麻烦冗余# def setup(self):#     print("每个用例执行之前")## def teardown(self):#     print("每个用例执行之后")def test_getImgCode(self):# 接口urlt = time.time()timess = str(int(round(t * 1000)))times = str(int(t))url = "http://124.71.230.185:9002/jeecg-boot/sys/randomImage/" + "" + timess# 参数data = {"_t": times,}# # get请求rep = requests.request('get', url, params=data)print(rep.text)# 标注为smoke分组用例@pytest.mark.smokedef test_Login(self,conn_getbase):# post请求url = "http://124.71.230.185:9002/jeecg-boot/sys/login"# 参数data = {"captcha": "Gkak!@#2021","checkKey": 1637811815838,"password": "123456","remember_me": 1,"username": "admin"}rep = requests.request('post', url, json=data)statues = rep.json()["success"]message = rep.json()["message"]if statues:print("")else:# raise Exception(message)print(message)if __name__ == '__main__':pytest.main();
3.封装灵活调用

一般情况下:@pytest.fixture()会和conftest.py文件一块使用

conftest.py名称是固定的,功能如下:

1.用处是多个py文件之间共享前置配置。
2.里面的方法在调用时,不需要导入,可以之间调用
3.可以都多个conftest.py文件,也可以有不同的层级

conftest.py文件详情请看下一章

实现:

1.目录下之间创建conftest.py文件
2.把上面的这段代码之间粘贴到conftest.py文件中

# 前置函数
import pytest@pytest.fixture(scope="function")
def conn_getbase():print("连接数据库成功")yieldprint("关闭数据库成功")

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

利用folium实现全国高校分布地图显示

智汇中国 | 揭秘!一张地图带你遨游全国高校殿堂 大家好,这期我们来利用folium模块实现全国高校分布的地图显示。 什么是Folium Folium为Python用户提供了便捷的方式来利用Leaflet.js的强大地图可视化功能,而无需直接编写JavaScript代码。它允许开发者以Pythonic的方式处理…

【和春笋一起学C++】(二十二)C++函数新特性——函数重载

目录 函数重载的含义 重载函数使用注意事项 几种特殊情况 函数重载的含义 函数重载使得能够用不同的参数列表调用多个同名的函数。可以通过函数重载设计一系列函数,它们完成相同的工作,但使用不同的参数列表。 函数重载的关键是函数的参数列表——也被称为函数特征标。如…

CrewAI多智能体框架的实操教程-旅行规划-2

1、创建一个新的 CrewAI 项目 surprise_trip crewai create crew surprise_trip 选择模型厂商和模型 生成.env MODELgpt-4o OPENAI_API_KEY你的api_keySERPER_API_KEY你的SERPER api_key 2、探索项目结构 3、配置代理 修改 agents.yaml文件。 # 个性化活动规划师 Agent p…

vue脚手架与前后端交互

前言 。Vue.js作为一种流行的前端框架,提供了丰富的功能和灵活的架构,方便了开发者进行高效的开发。为了更好地使用Vue,Vue CLI(脚手架工具)成为了开发者进行项目创建和管理的重要工具。本文将结合Vue脚手架的使用场景…

【麻省理工】《how to speaking》笔记

【【麻省理工】《如何说话》一节课教你成为表达的王者】 开始 在演讲最开始的时候,你要告诉观众,在接下来的15分钟或一个小时之内,他们将会学到什么东西。这会让观众集中注意力去倾听。 PPT 你的幻灯片上的字要越少越好。因为听众的大脑一…

ESP32-HTML-08

一、html显示图片 1.工程包含Html需要显示的图片 2、CMakeLists.txt包含图片资源 举例&#xff1a; idf_component_register(SRCS main.cEMBED_FILES root.html favicon.ico) 3.html中图片的标签 <img src"motus.ico"> 4.后台代码的添加 static esp_e…

前端后端文件下载防抖实现方案

在 Vue 3 中实现下载文件防抖&#xff0c;可以通过封装一个防抖函数来控制下载请求的触发频率。以下是完整的实现方案&#xff1a; 1. 封装防抖工具函数 javascript 复制 下载 // utils/debounce.js export function debounce(func, delay) {let timer null;return funct…

【Linux网络与网络编程】15.DNS与ICMP协议

1. DNS 1.1 DNS介绍 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序&#xff0c;但是 IP 地址不方便记忆&#xff0c;于是人们发明了一种叫主机名的字符串&#xff0c;并使用 hosts 文件来描述主机名和 IP 地址的关系。最初, 通过互连网信息中心(SRI-NIC)来…

Python打卡:Day35

复习日 浙大疏锦行

GoAdmin代码生成器实践

文章目录 前言创建SQL表格使用在线生成工具应用自动生成的代码数据变更时附加新的逻辑总结 前言 开源项目 go-admin&#xff0c;我一直用的是这个地址 https://github.com/GoAdminGroup/go-admin&#xff0c;不过最近发现了一个 Gin Vue 版本的 go-admin&#xff0c;对我解决…

web布局13

在 CSS 中有很多种类型的函数&#xff0c;其中可用于尺寸属性的函数主要有 calc() 、min() 、max() 、clamp() 等。这些 CSS 函数都可用来设置网格轨道尺寸&#xff0c;除此之外&#xff0c;还有一些专门用于设置网格轨道的函数&#xff0c;比如 repeat() 、minmax() 和 fit-co…

pdf转图片(png,jpg)的python脚本

pdf转图片&#xff08;png&#xff0c;jpg&#xff09;的python脚本 PDF转图片工具 1.安装库 pip install pymupdf 2.如果需要pdf转jpg的更改DEFAULT_FORMAT即可 3.一定注意要将脚本与待转化的.pdf文件放在同一个目录 4.运行脚本&#xff0c;将脚本所在目录所有.pdf文件转…

大模型本地部署,拥有属于自己的ChatGpt

ChatGpt 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人的能力。不管用于文案撰写还是程序辅助开发都大大提高了我们的工作效率,但是其使用有一定的门槛,让我们大多数人都望而却步,今天我们利用ollama实现本地大模型的步骤,让我们轻松拥有自己的…

【mcu】-老旧小区门禁电话改造指南

老旧小区门禁电话改造指南(四线制DIY方案) 一、明确四根线的功能(关键第一步) 通常四线制门禁电话的线缆定义如下(需用万用表验证): 线色 常见功能 电压/信号类型 检测方法 红线 电源正极(+12V) DC 12V(待机) 万用表直流档测对黑线电压 黑线 电源负极(GND) 0V 与…

word中如何快速打出上标?

在 Microsoft Word 中快速输入上标的方法有以下几种&#xff0c;推荐掌握 键盘快捷键法&#xff08;最常用高效&#xff09;&#xff1a; ⭐ 方法一&#xff1a;快捷键法&#xff08;强烈推荐&#xff0c;效率最高&#xff01;&#xff09; 输入需要上标的文字/数字&#xff0…

如何优化HarmonyOS 5的分布式通信性能?

以下是针对HarmonyOS 5分布式通信性能优化的系统性方案&#xff0c;结合核心技术特性与实践经验&#xff1a; 一、传输层优化 数据压缩与批处理 // 启用ZLIB压缩&#xff08;>1KB自动压缩&#xff09; DistributedConfig config new DistributedConfig.Builder().setCom…

Matplotlib图像处理三剑客:imshow(), imread(), imsave()

Matplotlib是Python中最著名的数据可视化库之一&#xff0c;它不仅能够绘制各种统计图表&#xff0c;还提供了强大的图像处理功能。本文将重点介绍Matplotlib中三个核心的图像处理方法&#xff1a;imshow()、imread()和imsave()&#xff0c;通过示例代码展示它们的使用方法。 …

[特殊字符]防止 MyBatis-Plus 中模糊查询 `%` 查出全表:实现通配符转义拦截器

目录标题 ❓为什么需要转义 % 和 _&#x1f9ea; 使用案例&#xff1a;防止传入 % 导致全表查询&#x1f3af; 支持哪些场景&#xff1f;✅ 拦截器实现思路&#x1f9e9; 核心拦截器代码实现&#x1f510; 可选忽略某些 SQL 的转义 ❓为什么需要转义 % 和 _ 在使用 MyBatis-Pl…

linux grep的一些坑

grep -a "commit" a.log 可以获取到所有的数据&#xff08;可以看到a.log所有的commit关键词&#xff09; 但cat a.log|grep "commit" 无法全部获取到&#xff08;只能看到a.log中部分的的commit&#xff09; 细分析和可能原因&#xff1a; 1. 二进制文件…

牛客 AI 面试 Ultra 版升级:开启招聘新纪元

每到招聘季&#xff0c;HR 们便陷入繁忙与焦虑。海量简历筛选耗费大量人力&#xff0c;初步面试耗费数周时间&#xff0c;好不容易安排好面试官与候选人时间&#xff0c;又可能因各种意外状况打乱节奏。而牛客 AI 面试 Ultra 版恰似一束光&#xff0c;照亮了招聘流程优化的道路…