自动化测试-友好的第三方库
目录
mock
furl
coverage
deepdiff
pandas
jsonpath
自动化测试脚本开发中,总是会遇到各种数据处理,例如MOCK、URL处理、JSON数据处理、结果断言等,也会遇到所采用的测试框架不能满足当前需求,这些问题都需要我们自己动手解决。
在强大的IT世界,我们遇到的百分之九十八问题,前辈们都遇到过并且给出了解决方案,有的无私前辈将其整理并开源,这些开源项目非常方便地辅助我们的自动化测试项目更好地进行,非常值得敬佩。
下面介绍一些自动化测试项目中经常会使用到且非常友好的Python第三方库。
mock
mock是Python中一个用于支持单元测试的库,它允许用户使用mock对象替代被测系统的部分,以达到模拟对象的行为。Python3.3版本以后mock被合并进Unittest模块中,我们可以直接导入使用。Mock对象是mock模块中的一个类实例,可以在测试脚本中模拟出大量的方法,返回指定值并设置所需的属性,还可以断言调用了哪些方法/属性及其参数。
例如接口测试中,当上一个接口没有开发好,但下一个接口已经完成并可以测试时就可以使用Mock模拟上一个接口,尽早地完成测试脚本的开发。
furl
furl是一个小众的用于解析和操作URL的Python库,虽然Python提供了urllib和urlparse模块可以处理URL相关的操作,但没有furl简易。例如furl('http://www.tynam.com/?a=1&b=2').args便可以获得参数{'a':1,'b':2}。
coverage
coverage是一个测量Python程序代码覆盖率的工具。目前许多自动化测试项目都确少代码覆盖率的统计,使用coverage模块便可对自动化测试用例进行评估,衡量测试的有效性。coverage通过监视被测程序,注意代码的哪些部分已被执行,然后分析源代码以识别可能已执行但未执行的代码。使用时通过简单的命令便能生成详细的覆盖率统计结果报告。
deepdiff
deepdiff模块常用来校验两个对象是否一致,并找出其中差异之处,非常有助于断言。deepdiff由DeepDiff(比较两个对象)、DeepSearch(在对象中搜索其他对象)和DeepHash(根据对象的内容进行哈希处理)三部分组成。自动化脚本开发时可以采用DeepDiff实现断言,DeepDiff不但支持丰富的校验对象,例如字符串、数字、数组、字典,还提供了许多参数用以设置比较方式,例如忽略大小写、忽略排序、忽略数据类型。
pandas
Pandas是Python语言的一个扩展程序库,用于数据分析。可以从各种文件格式(比如CSV、JSON、SQL、Microsoft Excel)导入数据并进行运算操作(比如归并、再成形、选择、数据清洗、数据加工)。如果将测试用例写在Excel或其他文件中,那么使用pandas从文件中读取大量测试数据并处理就会简易许多。
jsonpath
JsonPath用于解析JSON数据。提供的JSON解析功能非常强大,它提供了类似正则表达式的语法,基本上可以满足所有想要获得的JSON内容。接口测试中,许多接口返回的值都是JSON格式,我们使用Python语言的JsonPath库挺松提取到所需值。
以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了
各位想获取资料的朋友请点赞 + 评论 + 收藏,三连!
三连之后我会在评论区挨个私信发给你们~
相关文章:

自动化测试-友好的第三方库
目录 mock furl coverage deepdiff pandas jsonpath 自动化测试脚本开发中,总是会遇到各种数据处理,例如MOCK、URL处理、JSON数据处理、结果断言等,也会遇到所采用的测试框架不能满足当前需求,这些问题都需要我们自己动手解…...

基于微信小程序的火锅店点餐订餐系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...

亿图脑图新版本支持思维导图一键生成PPT、音视频等格式,办公提效再升级
近日,国产思维导图软件——亿图脑图MindMaster发布了全新版本V10.9.0,本次亿图脑图的升级给用户带来了极大的惊喜。全新升级的亿图脑图MindMaster不仅支持20格式的文件智能解析成思维导图,还支持思维导图一键生成PPT、音频、视频等内容形式&a…...

Arthas:Java调试利器使用
Arthas:Java调试利器使用 1. Arthas是什么2. Arthas可以解决什么问题Arthas启动方式1. jar启动2. 在线安装 远程连接命令使用- 退出threadclassloaderscsm watchtrace修改日志级别 1. Arthas是什么 Arthas(阿尔萨斯)是阿里开源的一个Java在线分析诊断工具. 2. Arthas可以解决…...

Nuxt 菜鸟入门学习笔记七:SEO 和 Meta 设置
文章目录 SEO 和 Meta默认值useHeaduseSeoMeta 和 useServerSeoMetaComponentsMeta 对象数据类型格式特性响应式 Reactivity标题模板 Title TemplateBody Tags 示例 ExamplesdefinePageMeta动态设置标题动态添加外部 CSS Nuxt 官网地址: https://nuxt.com/ SEO 和 …...

栈(Stack)和队列(Queue)
栈(Stack)和队列(Queue)都是常见的数据结构,用于存储和操作一组元素。 栈是一种后进先出(Last-In-First-Out,LIFO)的数据结构,类似于把元素堆在一起形成的一堆物体&…...
LeetCode 75 part 06 栈
2390.从字符串中移除星号 思路:把元素加入栈中,遇到 * 号直接弹出栈顶元素 class Solution { public:string removeStars(string s) {stack<char>st;for(int i0;i<s.size();i){//字符加入栈,遇到星号弹出栈if(s[i]!*) st.push(s[i…...

19.组合模式(Composite)
意图:将对象组成树状结构以表示“部分-整体”的层次结构,使得Client对单个对象和组合对象的使用具有一致性。 上下文:在树型结构的问题中,Client必须以不同的方式处理单个对象和组合对象。能否提供一种封装,…...

应用在IPM接口隔离领域中的光电耦合器
IPM即Intelligent Power Module(智能功率模块)的缩写,它是通过优化设计将IGBT连同其驱动电路和多种保护电路封装在同一模块内,使电力变换装置的设计者从繁琐的IGBT驱动和保护电路设计中解脱出来,大大降低了功率半导体器件的应用难度ÿ…...
rust引用
一、引用是什么 引用,又叫做借用。是一个指针类型。 引用是指向数据的指针,它允许我们以只读或可变的方式访问数据,而不获取数据的所有权。 编译器静态地保证了引用总是指向有效的对象。也就是说,当存在引用指向一个对象时&#…...
Android AMS——Activity Pause(八)
在前面的文章《Android AMS——ATMS解析(四)》中,介绍了 Activity 的启动流程,其中调用到 Task.resumeTopActivityInnerLocked() 时,会先调用 startPausingLocked 暂停前一个 Activity,在启动新的 Activity。 这里我们就看以下 Activity 的暂停流程。 一、Activity暂停流…...

【数据结构】冒泡排序,快速排序的学习知识总结
目录 1、冒泡排序 1.1 算法思想 1.2 代码实现 方式一:顺序表 方式二:链表 2、快速排序 2.1 算法思想 2.2 代码实现 2.3 例题分析 1、冒泡排序 1.1 算法思想 冒泡排序是一种简单的排序算法,它的基本思想是从数组的第一个元素开始…...
ubuntu终端 中文显示 改为 英文显示
临时有效 如果希望终端显示英文,可以在终端设置环境变量 export LC_ALLC 若希望取消环境变量 unset LC_ALL 实际是改变系统两个环境变量 $LANGUAGE 和 $LANG的值(可以用echo $LANG 来查看值) 永久有效; 1.打开终端…...

ChatGPT Prompting开发实战(十二)
一、如何开发prompts实现个性化的对话方式 通过设置“system”和“user”等roles,可以实现个性化的对话方式,并且可以结合参数“temperature”的设定来差异化LLM的输出内容。在此基础上,通过构建一个餐馆订餐对话机器人来具体演示对话过程。…...

springboot整合eureka
1、直入主题,导入pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…...

记录一个 GUI 库的对比测试结果
1,Java 的 JavaFX 2,golang 的 Fyne 1, Java 测试的是一个俄罗斯方块的 GUI 程序。一切正常。 2,Golang github 的原仓库网络问题,没能测试上,使用以下库 https://gitee.com/mirrors/Fyne 下载代码后提示“编译失…...

解决 MyBatis-Plus 中增加修改时,对应时间的更新问题
问题:在添加修改时,对应的 create_time 与 insert_time 不会随着添加修改而自动的更新时间 第一步:首先在对应的属性上,加上以下注解 如果只添加以下注解,在增加或者修改时,可能对应的 LocalDateTime 会出…...

【力扣2057】值相等的最小索引
👑专栏内容:力扣刷题⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、题目描述二、题目分析 一、题目描述 题目链接:值相等的最小索引 给你一个下标从 0 开始的整数数组 nums …...

计算机图像处理:图像轮廓
图像轮廓 图像阈值分割主要是针对图片的背景和前景进行分离,而图像轮廓也是图像中非常重要的一个特征信息,通过对图像轮廓的操作,就能获取目标图像的大小、位置、方向等信息。画出图像轮廓的基本思路是:先用阈值分割划分为两类图…...

解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.的错误
文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 下载Hadoop3.2 配置Hadoop3.3 下载winutils3.4 配置winutils 1. 复现错误 今天在运行同事给我的项目,但在项目启动时,报出如下错误: java.io.FileNotFoundException: java.io.FileNotFoundEx…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践
前言:本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中,跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南,你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案,并结合内网…...

Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...