5分钟学会用pytest进行自动化测试

Pytest作为广泛使用的Python测试框架之一,可以用于单元测试、功能测试、性能测试等场合。自动化测试是功能测试的一种形式,可以使用Pytest编写并管理自动化测试用例,再执行相应的自动化测试。

功能测试通常包括接口测试和Web测试两种类型,任何一个测试类型都可以通过Pytest框架来实现。本文以接口测试为例,讲解如何使用Pytest进行自动化测试。

如果想要进行Web自动化测试,只需要将代码中涉及接口测试API改为适用于Web自动化测试的API即可,而整体框架与执行方式则基本一致。

1. 编写测试用例

1)编写简单的测试用例

假设我们想要测试百度首页API接口,用户发出的请求是否合法,并检查响应文本是否包含字符串、“百度一下”。

代码实例:

import requestsdef test_baidu():# 发送API请求response = requests.get('https://www.baidu.com')# 判断响应状态码及响应文本是否符合预期结果。assert response.status_code == 200assert "百度一下" in response.text

上述代码中定义了`test_baidu()`作为测试函数名,它是一个基本测试用例。在这个示例用例中,代码会向API发送GET请求,并断言响应的状态码为200,且响应文本中包含“百度一下”这几个关键字。

2)编写参数化测试用例

在实际测试中通常需要对多组数据进行测试。这时参数化测试用例就派上用场了。它可以轻松地对多组数据进行测试,避免手动重复编写测试用例。

代码实例:

import requestsimport pytest# 声明数据data = [{'url': 'https://www.baidu.com', 'expected': '百度一下'},{'url': 'https://cn.bing.com/', 'expected': 'bing'}]@pytest.mark.parametrize('case', data)def test_web(case):url = case['url']expected = case['expected']# 发送API请求,并断言响应的状态码为200,并检查响应文本是否符合预期结果response = requests.get(url)assert response.status_code == 200assert expected in response.text

上述代码中使用`pytest.mark.parametrize`来实现参数化。其中,“case”是参数名称。“data”列表内包含了多组测试数据。通过for循环遍历每一组测试数据,并参考预置的策略执行具体的测试任务。

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

软件测试视频教程观看处:

2024年Python自动化测试全套保姆级教程,70个项目实战,3天练完,永久白嫖...

2. 运行测试用例

用例编写完成后,一定要进行自测,保证测试用例测试结果的准确性和一致性,测试用例本身没有问题,方可接入自动化测试。

Pytest来执行测试用例非常简单,只需要在命令行中输入`pytest`即可

3. 查看测试结果

所有测试用例执行完成后,pytest会给出测试结果,若用例都执行通过,测试结果会显示如下信息:

若有测试用例未能通过,执行结果会给出失败消息和失败原因,测试人员需要根据测试结果,找到执行失败的测试用例,并对其进行分析,判断是测试用例本身的问题,还是发现了程序的bug。

使用pytest做自动化测试,编写测试用例,需要遵循最佳的代码规范,并且考虑到各种边界情况和异常情况。同时,善于使用参数化和其他高级功能,提高自动化测试的可靠性、可维护性,保证自动化测试的顺畅执行。

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

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

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

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

相关文章

低代码如何助力企业数字化转型?

目录 一、低代码开发是什么? 二、低代码与企业数字化转型 1)集成化 2)智能化 3)定制化 三、低代码开发平台对于企业数字化转型的优势 01、提供源码 02、私有化部署 03、敏捷开发 04、拓展能力 四、低代码带来的效益 以…

2023年12月GESP Python五级编程题真题解析

【五级编程题1】 【试题名称】:小杨的幸运数 【问题描述】 小杨认为,所有大于等于a的完全平方数都是他的超级幸运数。 小杨还认为,所有超级幸运数的倍数都是他的幸运数。自然地,小杨的所有超级幸运数也都是幸运数。 对于一个…

WebGL开发三维解剖学应用

开发基于 WebGL 的三维解剖学应用通常涉及以下步骤。这些步骤包括创建三维模型、整合交互性、优化性能等,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.三维模型创建: 首先&#xff0…

抖店定好品类赛道之后,怎么选品和快速出单?相关教程分享如下!

我是王路飞。 之前分享抖店流程相关内容时,我说过,类目选择大于一切,且要优于、重于选品。 至于定类目的标准,我之前也给你们说过,不要以自己个人喜好为标准去判断市场,也不要凭借自己以往认知和经验确定…

Weblogic Server工具WLST的使用

1.Weblogic脚本工具WLST介绍 可以用命令行来操作 Weblogic scripting tools 2.Weblogic WLST三种工作模式 2.1 wlst.sh tips:weblogic的T3 协议与HTTP/HTTPS 协议 操作如下:wlst在 common目录下 weblogic14c/wlserver/common/bin/ [weblogicfysedu32 weblogic]$…

【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发

文章目录 实验架构图1. 准备实验环境2. 创建CloudFront分配、配置动、静态资源分发2.1 创建CloudFront分配,添加S3作为静态资源源站2.2 为CloudFront分配添加动态源站 在本实验——使用CloudFront进行全站加速中,将了解与学习Amazon CloudFront服务&…

【SpringBoot】Spring data JPA整合ShardingSphere-JDBC静态读写分离实现

大佬栽树,我乘凉 许大仙老师:【yuque.com/fairy-era/yg511q/ud9uli67b6gxgdh7】 开整 数据库准备 一主两从 数据库脚本 CREATE DATABASE IF NOT EXISTS dbtest CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE dbtest; -- 创建表 CREATE TA…

论文查重率高如何快速降重 papergpt

大家好,今天来聊聊论文查重率高如何快速降重,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 论文查重率高如何快速降重 当论文查重率过高时,需要快…

骑砍战团MOD开发(24)-module_particle_system粒子系统

一.粒子实现方式 创建2D平面模型作为粒子基本单元,系统预制平面在particle_meshes.brf文件中,通过particle_blend着色器实现粒子透明度和着色效果. #雨点粒子平面 prtcl_rain #雪粒子平面 prtcl_snow #烟尘粒子平面(马匹奔跑时产生) prtcl_dust_a prtcl_dust_b #火焰粒子平面 …

汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?

M24C64-DRMN3TP/K是一款64 Kbit串行EEPROM汽车级设备,工作温度高达125C。符合汽车标准AEC-Q100 1级规定的极高可靠性。 该设备可通过一个高达1MHz的简单串行I2C兼容接口访问。 存储器阵列基于先进的真EEPROM技术(电可擦除可编程存储器)。M2…

DETR++: Taming Your Multi-Scale Detection Transformer论文解读

文章目录 前言一、摘要二、引言三、相关研究四、模型方法1、Removing the Encoder方法2、Multi-Head方法3、Shifted Windows方法4、Bi-directional Feature Pyramid方法5、DETR方法 五、实验结果总结 前言 今天查看了一篇DETR论文,本想网络上找博客大概浏览一下&am…

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.骑手优化算法4.实验参数设定5.算法结果6.…