让Python自动测试更得心应手——认识一下神奇的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用例规则的所有用例并执行

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

然后在脚本中右键

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

单目测距+姿态识别+yolov8界面+车辆行人跟踪计数

yolov5单目测距速度测量目标跟踪(算法介绍和代码) 1.单目测距实现方法 在目标检测的基础上,我们可以通过计算物体在图像中的像素大小来估计其距离。具体方法是,首先确定某个物体的实际尺寸,然后根据该物体在图像中的像…

Vue3--数据和方法

data 组件的 data 选项是一个函数。Vue 在创建新组件实例的过程中会自动调用此函数。   data选项通常返回一个对象&#xff0c;然后 Vue 会通过响应性系统将其包裹起来&#xff0c;并以 $data 的形式存储在组件实例中。 <!DOCTYPE html> <html lang"en"&g…

8分SCI | 揭示随机森林的解释奥秘:探讨LIME技术如何提高模型的可解释性与可信度!

一、引言 Local Interpretable Model-agnostic Explanations (LIME) 技术作为一种局部可解释性方法&#xff0c;能够解释机器学习模型的预测结果&#xff0c;并提供针对单个样本的解释。通过生成局部线性模型来近似原始模型的预测&#xff0c;LIME技术可以帮助用户理解模型在特…

react批量引入svg图标

PS&#xff1a;也不只在react中用&#xff0c;其他框架也可&#xff0c;生态圈不一样配置会不同&#xff0c;但是能提供整体的思路&#xff0c;可以参考。 在批量引入之前&#xff0c;我们需要安装一个包并配置到typescript.json文件中。 1. 安装&#xff1a;yarn add -D type…

私域流量转化干货,揭秘四大关键因素!

在这个得私域者得天下的互联网时代&#xff0c;如何有效地实现私域流量的转化成为了很多企业或是个人的必修课。 接下来&#xff0c;就给大家分享私域转化的四大关键因素&#xff0c;帮助大家更好地实现私域流量的转化。 1、兴趣了解 在私域流量转化的过程中&#xff0c;我们…

js中的原型(原型对象,对象原型,原型继承,原型链)

js中的原型 一.原型二.constructor 属性三.对象原型四.原型继承五.原型链 一.原型 构造函数通过原型分配的函数是所有实例化对象所共享的。 JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象 …

C#中求余算法的用法及区别:Math.DivRem()方法 vs 运算符%

目录 1.Math.DivRem() 2.运算符% 3.区别 Math.DivRem()和运算符%都是用于求余运算&#xff0c;但它们在使用和功能上有一些区别&#xff1a; 1.Math.DivRem() Math.DivRem()是.NET框架中的一个静态方法&#xff0c;它将除法和求余运算的结果同时返回。它有两个版本&#xf…

Linux编译器gcc/g++的功能与使用

一、程序的生成 首先&#xff0c;我们知道程序的编译分为四步&#xff1a; 1、预处理 2、编译 3、汇编 4、链接 1.1预处理 预处理功能主要包括头文件展开、宏定义、文件包含、条件编译、去注释等。 所谓的头文件展开就是在预处理时候&#xff0c;将头文件内容拷贝至源文…

Android平台架构和Android Framework的区别

Android平台架构是指Android操作系统的整体架构&#xff0c;主要由四个层级组成&#xff1a;应用层、应用框架层、系统运行库层和Linux内核层。 应用层&#xff1a;包括用户界面、应用程序和系统应用等。用户界面层负责呈现图形化界面&#xff0c;应用程序层包括各种应用程序&a…

C语言从入门到熟悉------第四阶段

指针 地址和指针的概念 要明白什么是指针&#xff0c;必须先要弄清楚数据在内存中是如何存储的&#xff0c;又是如何被读取的。如果在程序中定义了一个变量&#xff0c;在对程序进行编译时&#xff0c;系统就会为这个变量分配内存单元。编译系统根据程序中定义的变量类型分配…

Linux中防火墙相关操作

一、查看防火墙状态 可通过两种方式查看防火墙状态&#xff0c;一种通过systemctl命令&#xff0c;另一种是通过firewall-cmd命令。 1、systemctl status firewalld 2、firewall-cmd --state 二、关闭防火墙 1、暂时关闭&#xff1a;设置暂时关闭防火墙将会在下次重启系统后失…

[LVGL]:MACOS下使用LVGL模拟器

如何在MACOS下使用lvgl模拟器 1.安装必要环境 brew install sdl2查看sdl2安装位置&#xff1a; (base) ➜ ~ brew list sdl2 /opt/homebrew/Cellar/sdl2/2.30.1/bin/sdl2-config /opt/homebrew/Cellar/sdl2/2.30.1/include/SDL2/ (78 files) /opt/homebrew/Cellar/sdl2/2.3…

低代码大屏设计器使用入门级图文教程

文章目录 前言一、什么是低代码大屏二、技术选型三、使用过程1.准备环境2. 下载源码3. 启动配置后端初始化数据库修改配置信息启动后端服务4. 前端启动配置问题总结项目初始化失败node|npm版本自由切换python版本自由切换初始化命令启动查看打包

BMP280学习

1.Forced mode模式&#xff0c;单次采集后进入休眠&#xff0c;适用于低采样率。 2.normal mode模式&#xff0c;持续采集&#xff0c;我们使用这种 采集事件基本都是ms级&#xff0c;所以我们1s更新一次。 温度和压力的计算 #include <SPI.h> //定义数据类型 #define s3…

27.函数指针数组

函数指针数组 概念 函数指针的数组本质是一个数组&#xff0c;它允许你存储多个函数指针&#xff0c;并且可以通过索引来调用这些函数。 定义 int (*pfunc[3])(int,int){getMax,getMin,getAdd};应用 #include <stdio.h>int getMax(int a,int b) {return a>b?a:b…

vs2022安装番茄助手后无法使用

1.安装番茄助手 兼容性-win7-管理员启动 2.破解 下载附件“VA_X64.dll”、“PiaoYun64.dll”破解文件&#xff0c;使用Everything找到C盘对应的“VA_X64.dll”路径&#xff0c;将两个破解文件拷贝到此路径。 3.命令行键入类似命令&#xff1a;D:\OfficeSoftware\VisualStudi…

计算机视觉+人工智能碰撞出新的火花

计算机视觉&#xff08;CV&#xff09;技术的优势是其能够处理大量的图像和视频数据&#xff0c;并快速准确地提取出有用的信息。 1. 自动化&#xff1a;CV技术可以自动化地执行各种图像处理任务&#xff0c;例如目标检测、图像分类和图像分割。这样可以提高工作效率并降低人工…

SfM——八点法计算F矩阵(基础矩阵)与三角测量

1 八点法计算F矩阵&#xff08;基础矩阵&#xff09; 基础矩阵用于描述两个视图之间的几何关系 基础矩阵&#xff1a;基础矩阵 F F F 是描述两个视图之间相机投影关系的矩阵。对于两个对应的图像坐标点 ( x , y , 1 ) (x, y, 1) (x,y,1) 和 ( u , v , 1 ) (u, v, 1) (u,v,1…

前端:设置覆盖图片的层叠顺序

html <div class"image-container"><img src"image1.jpg" class"image1" alt"Image 1"><img src"image2.jpg" class"image2" alt"Image 2"> </div> css代码 .image-contai…

Elasticsearch(8) random_score的使用

elasticsearch version&#xff1a; 7.10.1 random_score的使用 在Elasticsearch中&#xff0c;random_score查询可以用来随机排序搜索结果&#xff0c;这对于实现诸如轮播、随机推荐等功能非常有用。 random_score的语法 GET /<索引名>/_search {"query":…