pytest初识

news2025/1/21 8:47:52

一、单元测试框架

(1)什么是单元测试框架?
单元测试是指在软件开发中,针对软件的最小单元(函数、方法)进行正确性的检查测试
(2)单元测试框架
java:junit和testng
python:unittest和pytest
1、测试发现:从多个py文件里找到测试用例
2、测试执行:按照一定的顺序和规则去执行,并生成结果
3、测试判断:通过断言判断预期结果和实际结果的差异
4、测试报告:统计测试进度,耗时,通过率,生成测试报告

二、单元测试框架和自动化测试框架有什么关系?

(1)什么是自动化测试框架
是自动化测试组长针对一个项目开发的一个代码框架,这个框架封装了很多基础模块,报告等。
(2)作用
1、提高测试效率,降低自动化用例的维护成本
2、减少人工干预,提高测试的准确性,增加代码的重用性

三、pytest简介

1、是一个非常成熟的单元框架,比unittest更灵活
2、pytest可以和selenium、requests、appium结合实现web自动化、接口自动化、app自动化
3、pytest可以实现用例的跳过以及reruns失败用例重试
4、pytest可以和allure生成美观的测试报告
5、pytest可以和Jenkins持续集成
6、pytest有很多非常强大的插件,并且这些插件能够实现很多实用操作。
● pytest
● pytest-html 生成html格式的自动化测试报告
● pytest-xdist 测试用例多进程分布式执行,多CPU分发(不支持多线程,-n)
● pytest-ordering 用于改变测试用例的执行顺序
● pytest-rerunfailures 用例失败后重跑
● allure-pytest 用于生成美观的测试报告
● pytest-parallel 支持多进程、多线程执行测试用例。
–workers (optional) *:多进程运行需要加此参数, *是进程数。默认为1。
–tests-per-worker (optional) *:多线程运行, *是每个worker运行的最大并发线程数。默认为1
pytest test.py --workers 2 --tests-per-worker 4:2个进程并行,且每个进程最多4个线程运行。
即总共最多8个线程运行。
【特别注意】:
a. pytest-parallel的workers参数在windows系统下永远是1,在linux和mac下可以取不同值。
b. pytest-parallel加了多线程处理后,最后执行时间是运行时间最长的线程的时间。
c. 在windows下想用多进程的选pytst-xdist; 想用多线程的选pytest-parallel
放到requirements.txt中,通过pip install -r requirements.txt

四、使用Pytest的默认规则

1、模块名必须以test_开头 或者 _test结尾
2、测试类必须以Test开头,并且不能有init方法
3、测试方法必须以test开头

五、Pytest测试用例的运行方式

1、主函数模式
运行所有:pytest.main()
指定模块:pytest.main([‘-vs’,‘test_login.py’])
指定目录:pytes.main([‘-vs’,‘./interface_testcase’]])
通过nodeid指定用例运行:nodeid由模块名、分隔符、类名、方法名、函数名组成
pytest.main([‘-vs’,‘./test_Demo.py::TestClass::test_two’])
pytest.main([‘-vs’,‘./test_Demo.py::test_answer’])
2、命令模式
运行所有:pytest
指定模块:pytest -vs test_login.py
指定目录:pytest -vs ./interface_testcase/test_interface.py::test_04
【参数详解】
-s 表示输出调试信息,包括print打印的信息
-v 显示更详细的信息
-vs 这2个参数一起用
-n 支持多进程或者分布式运行测试用例
eg.pytest -vs ./testcase/test_login.py -n 2
–reruns num 失败用例重跑次数
-x 表示只要有一个用例报错,测试停止
-k 根据测试用例的部分字符串指定测试用例
eg.pytest -vs -k "new "
–workers num 多进程个数
windows下默认为1
–tests-per-worker 多线程个数

3、 通过读取pytest.ini(全局)配置文件运行
pytest.ini这个文件是pytest单元测试框架中的核心配置文件
位置:放在项目的根目录下
编码:必须是ANSI,可以使用notpad++修改编码格式
作用:改变pytest默认的行为规则
运行的规则:主函数模式/命令行模式运行都会读取这个配置文件
在这里插入图片描述

六、Pytest测试用例执行顺序

unittest:按照ascii的大小执行顺序
pytest:默认从上到下执行
需要改变默认的执行顺序:使用mark标记 @pytest.mark.run(order=3) 需要导入pytest_ordering
在这里插入图片描述

七、如何分组测试?(分模块执行,分接口和web执行)

在这里插入图片描述
smoke:冒烟用例,分布在各个模块里面
pytest -m smoke
pytest -m ‘smoke or usermanage’

八、pytest跳过测试用例

无条件跳过:
@pytest.mark.skip(reason=‘跳过不是类的测试用例’)

有条件跳过:
answer = ‘wrong’
@pytest.mark.skipif(answer = ‘wrong’,reason=‘触及变量answer为wrong’)

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

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

相关文章

Windows SSH 配置和SCP的使用

使用用户界面安装 ssh 功能 要在 Windows 10/11 上启用 SSH 服务器,请按照以下步骤操作: 按“Windows 键 I”打开“设置”菜单,然后选择“应用程序”。在左侧菜单栏中选择“应用和功能”。从列表中选择“可选功能”。 点击“添加功能”按钮…

[数据结构]:15-堆排序(顺序表指针实现形式)(C语言实现)

目录 前言 已完成内容 堆排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortCommon.cpp 05-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代码…

android h5考勤管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5考勤管理系统是一套完善的WEBandroid设计系统,对理解JSP java,安卓app编程开发语言有帮助(系统采用web服务端APP端 综合模式进行设计开发),系统具有完整的源代 码和数据库,系统主…

平板触控笔要原装的吗?开学季必备电容笔推荐

如今对那些把ipad当做学习工具的用户而言,Apple Pencil就显得尤为重要了。但由于Apple Pencil的售价实在太高,让学生党望而却步。因此,最好的办法就是选择平替电容笔。我是一个ipad设备的忠实用户,同时也是一个数码热衷者&#xf…

MySQL增量备份和全量备份

1 全量备份 1.1 创建用于备份的目录 mkdir /root/mysql.backup1.2 创建存入备份文件的目录 mkdir /root/mysql.backup/data1.3 进入备份目录,创建备份脚本 cd /root/mysql.backupvim mysqlBackuoShell.sh#!/bin/bash #保存备份个数,31条 number31 #备份保存路…

Infineon Aurix 系列网络安全概述

目录 硬件安全 其它 1999年,英飞凌推出了第一代AUDO(汽车统一处理器)系列。基于统一的以RISC/MCU/DSP处理器为核心,这款32位TriCore™微控制器是一款强大的计算机器。其不断改进和优化TriCore的概念,最终形成了现在的第六代TriCore™,由于其…

ACWING蓝桥杯每日一题python(持续更新

ACWing蓝桥杯每日一题 一直没时间去总结算法&#xff0c;终于有空可以总结一下刷的acwing了&#xff0c;因为没时间所以最近只刷了ACWING的蓝桥杯每日一题。。。真是该死 1.截断数组 首先我们要知道&#xff0c;如果sum(a)不能被3整除或者len(a) < 3 &#xff0c;那么他肯…

Android使用移动智能终端补充设备标识获取OAID

官网http://www.msa-alliance.cn/col.jsp?id120首先到官网注册账号&#xff0c;申请下载相关sdk和授权证书2.把 oaid_sdk_x.x.x.aar 拷贝到项目的 libs 目录&#xff0c;并设置依赖&#xff0c;其中x.x.x 代表版本号3.supplierconfig.json 拷贝到项目 assets 目录下&#xff0…

keepalived实现nginx高可用

文章目录前言keepalived简介软件架构简单理解环境准备一、keepalived安装1.1 下载keepalived 安装包1.2 解压/下载依赖1.3 编译1.4 创建软连接1.5 增加系统服务1.6 启动keepalived二、实现Nginx高可用2.1 创建keepalived配置文件2.2 Nginx监控脚本2.4 重启keepalived2.5 查看虚…

自己DIY装机后,如何使用U盘装系统

最近自己整了一台主机&#xff0c;然后需要装一下系统&#xff0c;这边就讲一下如何用U盘给新电脑装系统。 安装Windows 10 光盘映像 首先你需要一个内存大于8GB的U盘&#xff0c;并且是纯净的&#xff0c;里面没有东西。 这边以Windows 10 为例&#xff1a; 百度搜索 下载…

IMX6ULL 启动方式之启动设备的选择

一. 硬件启动方式选择 汇编程序启动 LED 灯实验&#xff0c;是从SD卡读取 bin 文件并启动&#xff0c;说明 IMX6ULL 支持从 SD 卡启动。 IMX6ULL 支持多种启动方式。 注意&#xff1a;硬件原理图中&#xff0c;标注 DNP ( do not pupulate) 的意思是不焊接&#xff0c;即没…

【AcWing】归并排序及其应用

&#x1f386;音乐分享 &#xff08;点击链接可以听哦&#x1f60e;&#xff09; 无名之辈 - 陈雪燃 目录 归并排序 归并排序应用 文章中的图片来源&#xff1a; (2条消息) 归并排序&#xff08;分治法&#xff09;_分治法 归并排序_小小的香辛料的博客-CSDN博客 AcWing…

Springboot怎么实现WebSocket通信(二)

前言上一篇文章分享了单机模式下&#xff0c;websocket的基本使用方法&#xff0c;但在实际的业务中&#xff0c;通常是不会这样使用的&#xff0c;大部项目都是分布式部署的&#xff0c;一个工程布署了多个服务节点&#xff0c;前端并不直接请求具体服务节点&#xff0c;而是先…

C51---PWM 脉冲宽度调制

1.PWM:脉冲宽度调制,它是通过一系列脉冲宽度进行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;。对模拟信号电平进行数字编码。也就是说通过调节占空比的变化来调节信号、能量等的变化&#xff0c;占空比就是指在一个周期内&#xff0c;信号处于…

第九届省赛——6打印大X

题目&#xff1a;本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是&#xff1a;1. 先用1,2,3&#xff0c;...的自然数拼一个足够长的串2. 用这个串填充三角形的三条边。从上方顶点开始&#xff0c;逆时针填充。比如&#xff0c;当三角形高度是8时&#xff1a…

【Java开发】JUC进阶 06:异步回调、JMM、Volatile

1 异步回调异步是多线程的一种特殊实现方式&#x1f4cc; 举例我需要一个计算时间5秒方法的返回值我不想等这5秒钟&#xff0c;我想要继续执行下面的代码&#xff0c;那就异步执行这个方法当我通过get去获取这个返回值时&#xff0c;如果已经过了5秒&#xff0c;也就是方法执行…

16、参数估计

概率基本定义先验分布&#xff1a;似然函数&#xff1a;后验分布&#xff1a;贝叶斯公式&#xff1a;&#xff0c;其中后验分布 似然函数 先验分布 / P(D)贝叶斯公式假设&#xff0c;现在有两个一定概率发生的事件A和B&#xff0c;且它们之间存在一定的关系P(A) 表示事件A发生…

UNIX网络编程卷一 学习笔记 第八章 基本UDP套接字编程

UDP是无连接不可靠的数据报协议&#xff0c;不同于TCP提供的面向连接的可靠字节流。使用UDP编写的常见程序有&#xff1a;DNS、NFS、SNMP。 以下是典型的UDP客户/服务器程序的函数调用&#xff0c;客户不与服务器建立连接&#xff0c;而是只使用sendto函数给服务器发送数据报&…

03_Linux压缩解压,用户用户组,文件权限

目录 Linux下常用的压缩格式 gzip 压缩工具 gzip 对文件夹进行压缩 bzip2 压缩工具 tar打包工具 对.tar.bz2 进行压缩和解压缩 对.tar.gz 进行压缩和解压缩 rar格式 zip格式 Linux用户 Linux用户组 创建用户和用户组 Linux文件权限 Linux文件权限修改 Linux下常用…

windows10安装nodejs

一、下载 官网 Download | Node.js 某云盘 链接&#xff1a;https://pan.baidu.com/s/1PCd4fh4ohEvAc8qSrb4-WA 提取码&#xff1a;yola 二、安裝 双击安装程序&#xff1a;具体步骤如下&#xff1a; 设置环境变量 验证安装是否安装成功 进入cmd命令行窗口&#xff0c;输入…