自动化测试框架 —— pytest框架入门篇

news2024/11/27 4:38:04

今天就给大家说一说pytest框架。

今天这篇文章呢,会从以下几个方面来介绍:

1、首先介绍一下pytest框架

2、带大家安装Pytest框架

3、使用pytest框架时需要注意的点

4、pytest的运行方式

5、pytest框架中常用的插件

01、pytest框架介绍

pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持非常丰富的插件,同时兼容 unittest 框架。这就使得我们在 unittest 框架迁移到 pytest 框架的时候不需要重写代码。

pytest框架优点

1、简单灵活,容易上手

2、支持参数化

3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试,接口自动化测试(pytest+request)

4、pytest具有很多第三方插件,并且可以自定义扩展,

02、pytest框架的安装

pytest框架的安装

pip install pytest

pytest框架使用注意事项

.py 测试文件必须以test_开头(或者以_test结尾)

测试类必须以Test开头,并且不能有 init 方法

测试方法必须以test_开头

断言必须使用 assert

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

03、pytest运行方式

1、、如果不提供任何参数,那么pytest会在当前目录及子目录下寻找以test_开头或者以_test结尾的测试文件,且该文件中以test_开头的测试函数

2、当运行时指定测试文件的时候

1.此时目录一定要切换到测试文件所在的目录,否则pytest搜索不到测试,不会执行.

2.执行测试文件里的函数的时候,会搜索以test_开头的测试函数执行,不符合此规则的函数不会被执行

3.如果含有测试类,那么允许该测试文件时,会搜索类名以Test开头的类,且该测试类中的函数命名也必须符合要求才会被执行

4、运行的方式可以在命令行也可以在主方法上面运行

例如:如:指定运行pythonDemo目录下的test_01模块

    ......

if __name__ == "__main__":

pytest.main(["pythonDemo/test_01.py"])

或者命令行模式:

pytest  pythonDemo/test_01.py

其实呢,pytest的运行方式花样非常多,有很多参数可以使用,可以达到不同的效果。

04、pytest框架常用插件及安装

pytest框架提供非常多的插件,可以实现不同的功能,今天给大家例举一下最常用的几种插件。

pytest-xdist

当用例量很多时,运行时间也会变的很长,如果想缩短脚本运行的时长,就可以用多进程来运行。多cpu分布。

pytest-rerunfailures

在做测试时, 短时的网络波动会导致用例运行失败, , 此时就可通过重试运行用例的方式来解决问题。(用例失败后重跑

pytest-html

是一个pytest用于生成XML/HTML测试报告的插件。(HTML测试报告)

pytest-assume

Pytest中可用assert断言, 但一个失败后面的断言将不再执行;pytest-assume可以实现对多个断言多重校验的。

pytest-repeat

测试过程中会出现一些偶现的bug, 对于这种问题我们会针对此用例反复执行多次, 最终复现出问题来; pytest-repeat插件就能起到这个作用: 重复执行测试用例

pytest-ordering

pytest默认按字母顺序去执行的(小写英文--->大写英文--->0-9数字)

用例之间的顺序是文件之间按照ASCLL码排序,文件内的用例按照从上往下执行

setup_module->setup_claas->setup_function->testcase->teardown_function->teardown_claas->teardown_module

但可以通过第三方插件pytest-ordering实现自定义用例执行顺序

好了,今天先给大家介绍到这里


如果文章对你有帮助,记得点赞,收藏,加关注。会不定期分享一些干货哦......

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

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

相关文章

办公工具使用技巧汇总

总结下在使用办公工具时的一些技巧 1.word中自动排序 例如在表格中插入序号,如下图。有时候数据量较大时,一个一个的手动输入,效率不高,需要一种快捷的方式进行序号填充。 初级版本: 选择需要填写序号的列-开始工具…

从系统层到应用层,vivo 已在安全生态层

你每隔多久就会使用一次手机?调研结果也许会让你大吃一惊。 权威报告数据显示,2022年,24.9%的受访者每日使用手机时长超过10小时,其中3.8%的受访者“机不离手”,每日使用时长超过15小时。而真正让手机化身为时间吞金兽…

黑豹程序员-架构师学习路线图-百科:Knife4j API接口文档管理

文章目录 由来:接口文档第一代:Swagger第二代:Knife4j界面 由来:接口文档 古老编程是一个语言前后端通吃,ASP、JSP、PHP都是如此。 但随着项目规模变大,项目团队也开始壮大,岗位职责开始细分&a…

使用Redis实现文章阅读量、收藏、点赞数量记录功能

目录 一、前言二、业务分析三、Redis数据结构选择分析和实现3.1、三个数据缓存都分别使用 字符串 结构计数器存储对应数量值3.2、三个数据缓存使用一个 Hash 结构存储3.3、阅读量使用字符串结构计算器,收藏和点赞分别使用 Set 集合存储 四、总结 一、前言 在博客中会…

HCIA-PPPOE原理与配置

PPPOE原理与配置 实验拓扑图实现步骤家庭网关 AR201PPPOE客户端( ISP光猫)PPPOE服务器(ISP路由器) 实验拓扑图 实现步骤 家庭网关 AR201 E0/0/0-7为LAN口(二层接口)E0/0/8为WAN口(三层接口&am…

【每日一题】2258. 逃离火灾-2023.11.9

题目: 2258. 逃离火灾 给你一个下标从 0 开始大小为 m x n 的二维整数数组 grid ,它表示一个网格图。每个格子为下面 3 个值之一: 0 表示草地。1 表示着火的格子。2 表示一座墙,你跟火都不能通过这个格子。 一开始你在最左上角…

LeetCode【78. 子集】

78. 子集 中等 2.2K 相关企业 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出&…

Frp内网穿透部署

Frp内网穿透部署记录windows为例 A固定外网IP服务器一台(可以映射端口)B内网PC一台,可上外网 A固定外网IP服务器一台(可以映射端口) B内网PC一台,可上外网 GO语言:https://golang.org/doc/ins…

如何用CHAT 写会后总结

问CHAT:阐述参加IMS系统培训课程的收益和不学的损失。 CHAT 回复: 参加IMS系统培训课程的收益: 1. 提升技能和知识:通过参加IMS系统培训课程,你可以学习到刚新的信息技术和知识,增强你的技能和经验&…

UART编程(寄存器)

1. 串口编程步骤 1.1 看原理图确定引脚 有很多串口,使用哪一个?看原理图确定 1.2 配置引脚为UART功能 至少用到发送、接收引脚:txd、rxd 需要把这些引脚配置为UART功能,并使能UART模块 1.3 设置串口参数 有哪些参数&#xf…

Leecode刷题【hot100】盛最多水的容器

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 示例…

linux生成code文件

1. 设置core文件路径在当前工作目录 echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern 具体参数 %s - insert signal that caused the coredump into the filename 添加导致产生core的信号 %t - insert UNIX time that the coredump occurred into filen…

使用 Wireshark 抓包工具快速分析 IoT 物联网终端设备的网络通信行为

当你进行 IoT 物联网开发过程中,终端-MQTT 服务器-业务系统-App 全链路联调时往往难以快速定位问题:终端可能未正常发出消息报文,也可能在网络传输中丢失,也可能被 MQTT 服务器限流丢弃,或者业务系统处理异常而丢失。此…

Centos7安装宝塔面板8.0.3并实现公网远程登录宝塔面板【内网穿透】

Centos7安装宝塔面板8.0.3并实现公网远程登录宝塔面板【内网穿透】 文章目录 Centos7安装宝塔面板8.0.3并实现公网远程登录宝塔面板【内网穿透】一、使用官网一键安装命令安装宝塔二、简单配置宝塔,内网穿透三、使用固定公网地址访问宝塔 宝塔面板作为建站运维工具&…

flink1.18.0 sql-client报错

报错 Flink SQL> select * from t1; [ERROR] Could not execute SQL statement. Reason: org.apache.flink.table.api.ValidationException: Could not find any factory for identifier kafka that implements org.apache.flink.table.factories.DynamicTableFactory in t…

如何搭建一个自定义UI框架的Playground(一)

文章目录 初衷需求技术选型详细设计(一)1.业务设计2.交互设计3.程序设计3.1 游戏生命周期设计3.2 UI界面管理设计 初衷 想要比较系统、深入地了解游戏UI框架的设计与开发,就需要自己实践去开发一个可以预览的UI项目,但是目前没有…

OpenTiny Vue 组件库支持 Vue2.7 啦!

之前 OpenTiny 发布了一篇 Vue2 升级 Vue3 的文章。 🖖少年,该升级 Vue3 了! 里面提到使用了 ElementUI 的 Vue2 项目,可以通过 TinyVue 和 gogocode 快速升级到 Vue3 项目。 有朋友评论替换button出错了,并且贴出了…

K8S篇之etcd数据备份与恢复

一、etcd备份与恢复 基本了解: 1、k8s 使用etcd数据库实时存储集群中的数据,安全起见,一定要备份。 2、备份只需要在一个节点上备份就可以了,每个节点上的数据是同步的;但是数据恢复是需要在每个节点上进行。 3、etcd…

性能测试从0到1

性能测试概念 我们经常看到的性能测试概念,有人或称之为性能策略,或称之为性能方法,或称之为性能场景分类,大概可以看到性能测试、负载测试、压力测试、强度测试等一堆专有名词的解释。 针对这些概念,我不知道你看到…

AppWeb 身份验证绕过漏洞 (CVE-2018-8715)漏洞复现

漏洞描述 AppWeb 是一个嵌入式 Web 服务器,基于由 Embedthis Software LLC 开发和维护的开源 GPL 协议。它是用C / C编写的,几乎可以在任何现代操作系统上运行。当然,它旨在为嵌入式设备提供一个 Web 应用程序容器。 AppWeb 可以配置为身份…