让Python自动测试更得心应手——认识一下神奇的pytest测试框架

news2025/1/23 7:02:41

目录:导读

前言

安装pytest 

pytest测试用例设计原则

pytest执行用例规则

1、执行某个目录下所有的用例

2、单独执行某个py文件

3、执行某个py文件里的某个函数

4、-s 参数

Pycharm运行Pytest

结语


前言

Python在测试圈的应用非常广泛,特别是在自动化测试以及测试开发的领域,其中在自动化测试中我们常用的测试框架是uniitestpytest,本文将带领大家搭建以及熟悉pytest的使用。

既然有unittest那么为什么还要用pytest呢?

这是因为pytest有以下的特点:

  1. 入门简单,文档丰富,而且文档中有很多实例参考

  2. 支持参数化,可以从教细的力度控制测试用例

  3. 能够支持简单的单元测试和复杂的功能测试

  4. 支持测试跳过,失败case标记

  5. 支持失败重试

  6. 支持由nose,unittest编写的测试用例

  7. 支持HTML报告

  8. 和jenkins持续集成很方便

  9. 具有很多第三方插件,并且可以自定义扩展

安装pytest 

cmd或者终端运行

查看版本

快速体验一把

在pycharm里的Terminal直接执行

在这里必须提醒大家注意pytest的执行规则,规则是这样的:

  • 考如果直接敲pytest执行,则会查找当前目录及其子目录下以  test_*.py  或 *_test.py 文件,找到文件后,在文件中找到以test 开头函数并执行

  • 如果只想执行某个py文件,则使用pytest  xxx.py

pytest测试用例设计原则

用pytest写用例时,需要遵循以下的规则,才能够被识别并执行:

  • 文件名必须以*_test.py或者test_*.py命名

  • 测试函数必须以test开头

  • 测试类必须以Test开头,并且不能包含__init__方法

  • 测试类里以test_开头的方法

  • 所有的包必须要有__init__.py文件

pytest执行用例规则

1、执行某个目录下所有的用例

在first这个目录下执行pytest命令,则会找该目录下的符合pytest用例规则的所有用例并执行

免费领取码同学软件测试课程笔记+超多学习资料+完整视频+面试题,可加微信:Matongxue_8

2、单独执行某个py文件

执行pyteststudy.py这个文件中符合pytest用例规则的所有用例,而该文件并不需要遵循pytest对于文件的命名规则

3、执行某个py文件里的某个函数

或者某个类,再或者某个类里的某个方法执行pyteststudy.py里的test_add方法

执行pyteststudy.py里的TestCase这个类

执行pyteststudy.py里的TestCase这个类下的test_one方法

4、-s 参数

表示详细打印,可以把脚本中print的信息展示在结果上

Pycharm运行Pytest

当然以上执行貌似都是在命令行中进行操作的,那么我们使用pycharm能不能像运行普通代码右键run呢,这就需要一定的设置了

设置步骤如下:

  • 点开File --> Settings

  • 在settings弹框中输入integrated 搜索

  • 修改default test runner为pytest

然后在脚本中右键

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

 pytest学习视频教程获取方式:留言【pytest】即可

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

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

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

相关文章

人工智能中(Pytorch)框架下模型训练效果的提升方法

大家好,我是微学AI,今天给大家介绍一下人工智能中(Pytorch)框架下模型训练效果的提升方法。随着深度学习技术的快速发展,越来越多的应用场景需要建立复杂的、高精度的深度学习模型。为了实现这些目标,必须采用一系列复杂的技术来提…

Zynq-7000、FMQL45T900的GPIO控制(四)---linux应用层配置GPIO输入控制

上文中详细阐述了对应原理图MIO/EMIO的编号,怎么计算获取linux下gpio的编号 本文涉及C代码上传,下载地址 Zynq-7000、FMQL45T900的GPIO控制c语言代码资源-CSDN文库 本文详细记录一下针对获取到gpio的编号,进行配置输入模式,并进…

Jenkins + Gitlab 实现项目自动化构建及部署

通俗来讲就是本地项目 push 到 gitlab 后, Jenkins 能够识别到项目的更新并自动构建部署;  本文以实际操作的方式来表述详细配置过程及避开配置 Jenkins 时的坑. 默认电脑已经安装了虚拟机, 默认gitlab 上已经有了你想要部署的项目, 部署了 maven 和 jdk 并配置了环境变量!!! …

H5拉新充场app系统源码

拉新充场是一种基于移动互联网技术的营销手段,通常由企业或商家使用推广软件来实现。拉新是指通过各种方式引导潜在用户注册成为企业的会员或客户,充场则是指通过向已有用户提供优惠券、折扣等福利来鼓励其进行消费或充值。 这种营销手段可以帮助企业…

告别脚本小子系列丨JAVA安全(7)——反序列化利用链(中)

0x01 前言 距离上一次更新JAVA安全的系列文章已经过去一段时间了,在上一篇文章中介绍了反序列化利用链基本知识,并阐述了Transform链的基本知识。Transform链并不是一条完整的利用链,只是CommonsCollections利用链中的一部分。当然并不是所有…

对制造企业来说,该怎么样去选择合适的CRM系统?

随着互联网和数字化技术的发展,CRM(Customer Relationship Management,客户关系管理)系统正越来越被企业所重视。随之而来的是市场上各种不同类型、功能和价格的CRM系统。对制造企业而言,选择合适的CRM系统可以使企业更好地管理客户关系&…

01 【Sass的安装使用】

1.介绍 1.1 CSS预处理技术,及种类介绍 什么是css预处理技术 CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只…

【Makefile】笔记

正点原子Linux驱动13.4.1节,通用Makefile疑难点解释 聊聊 SOBJS : $(patsubst %, obj/%, $(SFILENDIR:.S.o)) 的作用 聊聊变量替换语法 在 Makefile 中,变量替换语法可以用来对变量的值进行修改和转换。有以下几种不同的变量替换语法: $(va…

二分类结局变量Logistic回归临床模型预测(一)——介绍

本节讲的是二分类结局变量的临床模型预测,与之前讲的Cox回归不同,https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/article/details/124088364https://lijingxian19961016.blog.csdn.net/…

C++类与对象this指针

文章目录 前言一,类1.类的引入2.类的定义3.类的作用域4.类的访问限定符及封装封装访问限定符面试题 二,this指针1.this指针定义2.this指针的特性 前言 从此篇往后,开始了C的类和对象的篇章,嗯就说这么多 一,类 1.类的…

Microsoft Forms的應用(文行版)

Microsoft Forms 功能是發起大眾投票及反饋數據的軟件。 首先要開啟Microsoft Forms 先要取得Microsoft Teams 的應用程式,在下載Microsoft Teams 後,可在最左邊的工具列選擇《應用程式》,然後從中開啟Microsoft Forms 就可以了。 看到Micr…

Java如何生成随机数?要不要了解一下

目录 前言一、Random类介绍二、Random类生成随机数1.生成随机数2.nextInt()方法 三、使用场景四、官方提示总结 前言 我们在学习 Java 基础时就知道可以生成随机数,可以为我们枯燥的学习增加那么一丢丢的乐趣。本文就来介绍 Java 随机数。 一、Random类介绍 在 Ja…

C++篇----构造函数和析构函数

在很多时候,当写了初始化,动态开辟的,需要写销毁函数,写了销毁函数之后,但是却忘记了调用这些函数,忘记调用初始化函数还好,编译器会报错,但是如果是忘记调用销毁函数,那…

社科院与美国杜兰大学金融管理硕士项目——选择在职读研是正确的吗

这个世界上,根本没有正确的选择。我们只不过要努力奋斗,使当初的选择变得正确。最近有咨询项目的同学总是在纠结是否要在职读研,在职读研是否是一条正确的路。当我们为此纠结时,其实只有一条路,那就是选择向前走。往前…

有我和另一个00后卷王后,公司老油条们破防了吗?

今年软件测试行业的内卷现象越来越明显,比2022年疫情那会更甚,越来越多的人涌入这个行业,而想要获得更好的待遇和机会,不断提升自己的技能栈成为了测试老油条不得不面对的问题。 不论是哪个级别的测试工程师,面试官都…

络达开发---- AB1562x左右两侧同一按钮不同功能

开发平台:AB1562X SDK版本:V1.5.2 说明:AB1562X支持TWS,左右两个的耳机的按钮在硬件上是芯片的同一个IO口;那如何实现左右按键对应动作A,右侧按钮对应动作B呢?即左右两侧同一按钮的…

【创建一个网页,实现猜数字游戏】

要求如下 逻辑如下: 一个button按钮第二行中,打印“请…数字” 然后一个 输入文本框 然后一个 按钮第三行 打印 “已经猜的次数” 然后打印 猜的次数结果显示 猜大了 猜小了 猜对了 在script中 获取button按钮、输入的数据、记录count的值&#xff…

vue3——咸鱼仔

vue3——咸鱼仔 vue3——咸鱼仔P1.前言 【00:45】P2.创建项目 【02:09】P3.代码格式化 【01:37】P4.commit规范 【01:57】P5.强制commit 【02:41】P6.强制代码规范 【01:03】P7.按需导入elementplus 【02:58】P8.vue3.2新特性 【01:42】P9.初始化项目 【02:47】P10.登录页面静态…

融合开源软件治理经验,助力科技企业规避开源风险

随着开源软件的普及,越来越多的科技企业依赖开源软件实现业务的高速发展,但开源软件存在的安全合规问题,已成为科技企业面临的主要风险之一。 开源网安十年发展,通过为百度、大疆、金蝶等科技企业提供优质的软件安全产品与服务&a…

【虚幻引擎|UE4】TArray在C++中的使用

简介 TArray 类似于STL的vector,可以自动扩容,因为提供了相关操作函数,所以当作队列、栈、堆来使用也很方便,是UE4中最常用的容器类。其速度快、内存消耗小、安全性高。TArray 类型由两大属性定义:元素类型和可选分配…