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

今天就给大家说一说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实现自定义用例执行顺序

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


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国产猫罐头可以长期作为主食吗?我家的优质TOP的猫罐头分享

我最近一直在调查国产猫罐头可以长期作为主食吗?看看我的购物订单,我已经尝试了几十款了。今天,我想和大家分享一些关于国产猫罐头的经验和见解。 近年来,国产宠粮市场取得了突破性的进展,各个猫粮商在配方、营养数据…

win10添加回环网卡步骤

打开命令行输入hdwwiz 添加新硬件向导 结果

Visual Studio 2022 + OpenCV 4.5.2 安装与配置教程

目录 OpenCV的下载与配置Visual Studio 2022的配置新建工程新建文件新建项目属性表环境配置测试先写一个输出将OpenCV的动态链接库添加到项目的 x64 | Debug下测试配置效果 Other OpenCV的下载与配置 参考这个OpenCV的下载与环境变量的配置: Windows10CLionOpenCV4…

CUDA学习笔记7——CUDA内存组织

CUDA内存组织 CUDA设备内存的分类与特征 内存类型物理位置访问权限可见范围生命周期1全局内存芯片外可读写所有线程和主机端由主机分配与释放2常量内存芯片外只读所有线程和主机端由主机分配与释放3纹理和表面内存芯片外一般只读所有线程和主机端由主机分配与释放4寄存器内存…

OpenSSL生成自签名证书

生成之前首先需要明白以下内容: 第三点的验证数字签名解释下:客户端将使用颁发机构的公钥解密得到的原始数据,再将原始数据通过哈希算法计算得到的哈希值(此处应该是使用CA证书提供的哈希算法)进行比对。如果两者一致&…

2022最新版-李宏毅机器学习深度学习课程-P46 自监督学习Self-supervised Learning(BERT)

一、概述:自监督学习模型与芝麻街 参数量 ELMO:94MBERT:340MGPT-2:1542MMegatron:8BT5:11BTuring NLG:17BGPT-3:175BSwitch Transformer:1.6T 二、Self-supervised Lear…

云计算:无所不能的超级英雄

引言 在这个奇妙的时代,云计算如同一位无所不能的超级英雄,无处不在。从智能家居到无人驾驶,从虚拟现实到人工智能,云计算为我们的生活带来了智能、便捷和有趣。它以其强大的能力和灵活性,令我们的生活变得更加智能化…

库存预占架构升级方案设计-交易库存中心

背景介绍  伴随物流行业的迅猛发展,一体化供应链模式的落地,对系统吞吐、系统稳定发出巨大挑战,库存作为供应链的重中之重表现更为明显。近三年数据可以看出:  接入商家同比增长37.64%、货…

rviz添加qt插件

一、增加rviz plugin插件 资料:http://admin.guyuehome.com/42336 https://blog.51cto.com/u_13625033/6126970 这部分代码只是将上面两个链接中的代码整合在了一起,整合在一起后可以更好的理解其中的关系 1、创建软件包 catkin_create_pkg rviz_tel…

css呼吸效果实现

实现一个图片有规律的大小变化,呈现呼吸效果,怎么用CSS实现这个呼吸效果呢 一.实现 CSS实现动态效果可以使用动画( animation)来属性实现,放大缩小效果可以用transform: scale来实现,在这基础上有了动画,就可以设置一个…

每日汇评:黄金将测试1935美元的200日移动均线

金价在美联储主席鲍威尔发表讲话之前仍然脆弱; 在市场情绪喜忧参半的情况下,美元与美债收益率走势艰难; 在上升的三角形破裂和看跌的相对强弱指数中,黄金价格看向200日移动均线; 黄金周四早时在略低于1950美元的三周…

访问者模式

详情可参考:https://zhuanlan.zhihu.com/p/380161731 意图:主要将数据结构与数据操作分离。 适用于:系统中有稳定的数据结构,且数据结构的功能经常发生变化。 双分派:我的理解是两次多态操作,动态获取对象…

mysql的备份和恢复

备份:完全备份 增量备份 完全备份:将整个数据库完整的进行备份 增量备份:在完全备份的基础之上,对后续新增的内容进行备份 备份的需求 1、在生产环境中,数据的安全至关重要,任何数据的都可能产生非常严重…

PHP保存时自动删除末尾的空格,phpstorm自动删除空白字符串

最近有个活儿,修改一个财务软件。 修改后给客户验收的过程中,客户反应有一个txt表格导出功能不能用了。之前是好的。 这次是新增,老的这个功能碰都没碰过,怎么能有问题呢?我心里OS 下班后我立马用系统导出TXT&#…

如何实现Debian工控电脑USB接口安全管控

Debian 作为工控电脑操作系统具有稳定性、安全性、自定义性和丰富的软件包等优势,适用于要求高度可靠性和安全性的工控应用。 Debian 作为工控电脑操作系统在工业控制领域有很大优势,包括: 稳定性:Debian 的发布版以其稳定性而闻…

ThinkPHP框架 开源 虚拟资源分享付费下载PHP网站源码

源码测评:非常不错的资源分享网站,仿的是之前的码农网,这个网站也是在码农网的源码基础上修改而来,这个是用ThinkPHP仿的,还不错,测试的时候发现后台上传图片报错,其他暂时没有发现。 转载自…

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

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

OpenAI 工程师平均薪酬 92.5 万美元;SpaceX 明年将每两天发射一次丨 RTE 开发者日报 Vol.81

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【爬虫与反爬虫】从技术手段与原理深度分析

文章目录 1. 爬虫的基本概念1.1. 什么是爬虫1.2. 爬虫的价值1.3. 爬虫的分类 3. 爬虫技术原理与实现4. 反爬虫基本概念4.1. 什么是反爬虫4.2. 反爬虫的目的4.3. 反什么样的爬虫 5. 由浅到深的反爬虫技术手段5.1. 主动常见型反爬虫5.1.1. 基于爬虫行为5.1.2. 基于身份识别 6. 被…

Banana Pi BPI-M6(Raspberry Pi 5 替代品)初始设置及固件烧录

Banana Pi BPI-M6:初始设置和镜像烧录 Banana Pi BPI-M6 的首次测试 在上一篇文章中,我比较了Banana Pi BPI-M6和Raspberry Pi 5的硬件特性。两者都拥有出色的硬件技术,在性能方面应该不会有太大的问题。 今天我想测试一下 Banana Pi。作为…