2024年十款开源测试开发工具推荐(自动化、性能、混沌测试、造数据、流量复制)

今天为大家奉献一篇测试开发工具集锦干货。在本篇文章中,将给大家推荐10款日常工作中经常用到的测试开发工具神器,涵盖了自动化测试、性能压测、流量复制、混沌测试、造数据等。

1、AutoMeter-API 自动化测试平台

AutoMeter 是一款针对分布式服务,微服务 API 做功能和性能一体化的自动化测试平台,一站式提供发布单元,API,环境,用例,前置条件,场景,计划,报告等管理。

在项目开发,迭代交付过程中开发人员,测试人员需要针对系统提供的 API 做调试,回归测试,性能测试。自动化测试,一个好的平台本质上需要解决 API 测试的 5 大基本问题:

  • 1.支持不同的角色,技术人员多人协作

  • 2.支持定义多个不同的测试环境

  • 3.支持定义各种被测系统,API

  • 4.支持功能,性能,回归,自动化测试

  • 5.功能/性能明细报告,统计报告

项目地址:

https://gitee.com/season-fan/autometer-api
2、QA Wolf 浏览器自动化测试工具

QA Wolf 可帮助你以 10 倍的速度创建、运行和维护端到端的浏览器自动化测试。

项目地址:

https://github.com/qawolf/qawolf
3、Mimesis 用于 Python 的高性能虚假数据生成器

Mimesis 是一个用于 Python 的高性能虚假数据生成器,它以多种语言提供用于多种用途的数据。虚假数据可用于填充测试数据库、创建虚假 API 端点、创建任意结构的 JSON 和 XML 文件、匿名化生产中的数据等。

支持的功能

  • 简单:易于使用和学习

  • 多语言:支持多种语言的数据

  • 性能:可用于 Python 的最快数据生成器

  • 数据多样性:支持多种数据提供者用于各种目的

  • 通用数据提供者:从单个对象对所有提供者的简化访问

  • 零依赖:不需要 Python 标准库以外的任何模块

  • 基于模式的生成器:提供一种简单的机制来通过任何复杂的模式生成数据

项目地址:

https://github.com/lk-geimfari/mimesis

安装:

pip install mimesis

示例:

  1. >>> from mimesis import Person

  2. >>> from mimesis.locales import Locale

  3. >>> person = Person(Locale.EN)

  4. >>> person.full_name()

  5. 'Brande Sears'

  6. >>> person.email(domains=['example.com'])

  7. 'roccelline1878@example.com'

  8. >>> person.email(domains=['mimesis.name'], unique=True)

  9. 'f272a05d39ec46fdac5be4ac7be45f3f@mimesis.name'

  10. >>> person.telephone(mask='1-4##-8##-5##3')

  11. '1-436-896-5213'

4、Ddosify 高性能负载测试工具

Ddosify 是一个用 Golang 编写的高性能负载测试工具和 DDOS 攻击模拟。

特性:

  • 协议不可知 - 目前支持 HTTP、HTTPS、HTTP/2。其他协议正在开发中。

  • 基于场景 - 在 JSON 文件中创建你的流程。无需一行代码!

  • 不同的负载类型 - 测试你的系统在不同负载类型上的限制。

项目地址:

https://github.com/ddosify/ddosify
5、AutoCannon HTTP/1.1 基准测试工具

AutoCannon 是一个用 Node.js 编写的 HTTP/1.1 基准测试工具,受到 wrk 和 wrk2 的极大启发,支持 HTTP 管道和 HTTPS。autocannon 可以产生比 wrk 和 wrk2 更多的负载。

项目地址:

https://github.com/mcollina/autocannon
6、Sharingan 流量录制回放工具

Sharingan(写轮眼)是一个基于 golang 的流量录制回放工具,适合项目重构、回归测试等。

特性

  • 支持下游流量录制。相比 tcpcopy、goreplay 等方案,回放不依赖下游环境。

  • 支持并发流量录制和回放。录制对服务影响小,回放速度更快。

  • 支持时间重置、噪音去除、批量回放、覆盖率报告、常见协议解析等等。

  • 支持写流量回放,不会污染应用数据。

  • 不依赖业务框架,低应用浸入。

项目地址:

https://github.com/didi/sharingan

使用示例:

  1. # Step1: 下载sharingan项目

  2. $ git clone https://github.com/didi/sharingan.git

  3. $ cd sharingan

  4. # Step2: 使用定制版golang,以go1.13为例「慢?科学上网试试」

  5. $ sh install.sh go1.13 # 支持go1.10 ~ go1.15,限mac、linux amd64系统

  6. $ export GOROOT=/tmp/recorder-go1.13

  7. $ export PATH=$GOROOT/bin:$PATH

  8. # Step3: 编译、后台启动replayer-agent「默认会占用3515、8998端口,可修改」

  9. # [回放接入文档]内有直接下载bin文件的链接,无需build

  10. $ cd replayer-agent

  11. $ go build

  12. $ nohup ./replayer-agent >> run.log 2>&1 &

  13. # Step4: 编译、后台启动example示例「默认会占用9999端口,可修改」

  14. $ cd ../example

  15. $ go build -tags="replayer" -gcflags="all=-N -l"

  16. $ nohup ./example >> run.log 2>&1 &

  17. # Step5: 打开回放页面

  18. $ 浏览器打开,http://127.0.0.1:8998 # 非本机替换IP即可

  19. $ 页面选择要回放的流量点执行          # 内置提前录制好的3条example示例流量

7、randdata 随机测试数据生成工具

randdata 是一款基于 JAVA 开发的测试数据生成工具,为了测试人员、软件开发人员、数据开发人员、售前工程师或产品经理演示提供生成随机相应数据的全力打造的,支持个人信息、地址、数字、网络、银行、是非等多种数据的随机生成,无需用户再去编写复杂 SQL 或程序就能生成附合中国人习惯的数据。从而大大的节约软件开发的成本。

特点:

  • 无代码 : 无需编写代码,即生成相应数据。

  • 运行简单:用户只要安装 JDK1.8 及以上版本即可运行。

  • 数据随机性:最大限度保证数据不重复。

  • 支持直接数据库表生成:可直接导入某些数据库的表结构,而无须手工建表,通过给表指定生成数据类型即可。

  • 运行环境要求低:windows、linux 等 PC 机可直接运行,项目只有一个 jar 包,可通过 java -jar 包名即可运行。

项目地址:

https://gitee.com/chenlinux0768/randdata
8、DrissionPage WEB 自动化测试集成工具

DrissionPage,即 driver 和 session 的合体,是一个基于 python 的 Web 自动化操作集成工具。

requests 爬虫面对要登录的网站时,要分析数据包、JS 源码,构造复杂的请求,往往还要应付验证码、JS 混淆、签名参数等反爬手段,门槛较高。若数据是由 JS 计算生成的,还须重现计算过程,体验不好,开发效率不高。使用 selenium,则可以很大程度上绕过这些坑,但 selenium 效率不高。

因此,这个库将 selenium 和 requests 合二为一,不同需要时切换相应模式,并提供一种人性化的使用方法,提高开发和运行效率。除了合并两者,本库还以网页为单位封装了常用功能,简化了 selenium 的操作和语句,在用于网页自动化操作时,减少考虑细节,专注功能实现,使用更方便。

特性

  • 允许在 selenium 和 requests 间无缝切换,共享 session。

  • 两种模式提供一致的 API,使用体验一致。

  • 人性化的页面元素操作方式,减轻页面分析工作量和编码量。

  • 对常用功能作了整合和优化,更符合实际使用需要。

  • 兼容 selenium 代码,便于项目迁移。

  • 使用 POM 模式封装,便于扩展。

  • 统一的文件下载方法,弥补浏览器下载的不足。

  • 简易的配置方法,摆脱繁琐的浏览器配置。

项目地址:

https://gitee.com/g1879/DrissionPage
9、Chaos Mesh 在 Kubernetes 上进行混沌测试

Chaos Mesh 是一个云原生的混沌工程(Chaos Engineering)平台,可在 Kubernetes 环境中进行混沌测试。

当前实现支持用于故障注入的主要操作:

  • pod-kill:模拟 Kubernetes Pod 被 kill。

  • pod-failure:模拟 Kubernetes Pod 持续不可用,可以用来模拟节点宕机不可用场景。

  • network-delay:模拟网络延迟。

  • network-loss:模拟网络丢包。

  • network-duplication:模拟网络包重复。

  • network-corrupt:模拟网络包损坏。

  • network-partition:模拟网络分区。

  • I/O delay:模拟文件系统 I/O 延迟。

  • I/O errno:模拟文件系统 I/O 错误 。

项目地址:

https://gitee.com/mirrors/Chaos-Mesh
10、Automagica 智能流程自动化平台

Automagica 是一个开源智能机器人流程自动化(SRPA,Smart Robotic Process Automation)平台,借助 Automagica,自动化跨平台流程变得轻而易举。Automagica 可以通过简单程序脚本实现打开各种应用程序并对应用进行操作。

Automagica 需要 Python 3.7 环境,官方支持 Windows 10 平台,Linux 和 Mac 目前官方还不支持。

项目地址:

  1. https://github.com/OakwoodAI/Automagica

  2. https://gitee.com/mirrors/Automagica

Automagica 使用场景:

  • 桌面交互自动化

  • Office 自动化,例如打开 Excel 并进行数据填充

  • Web 自动化,例如打开网址并进行网页操作

  • 商业应用自动化

  • 自动打开邮件应用并收发邮件

  • 远程控制等等

例如:打开 Excel 并进行程序控制:

打开画图工具并进行绘图:

示例代码 该示例打开 Windows 记事本并输入 'Hello world!'.

  1. PressHotkey('win','r')

  2. Wait(seconds=1)

  3. Type(text='notepad', interval_seconds=0)

  4. PressKey('enter')

  5. Wait(seconds=2)

  6. Type(text='Hello world!', interval_seconds=0.15)

下面例子打开 Chrome 浏览器并访问指定url

  1. browser = ChromeBrowser()

  2. browser.get('https://www.cnblogs.com/jinjiangongzuoshi/')

如果您觉得作者文章对自己或身边同事朋友有帮助,欢迎您点击下方【点赞】或【转发】,

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

DigitalOcean 托管 Kafka 新增横向扩展功能

自2023年9月推出以来,DigitalOcean托管的Kafka已经使初创公司、不断增长的数字业务以及独立软件供应商(ISV)能够改善实时数据处理和分析,从而做出更具洞察力的决策。在新的一年里,我们很高兴地宣布DigitalOcean托管Kafka的横向扩展功能&#…

写文献综述常用的几种深度神经网络模型!

写文献综述常用的几种深度神经网络模型 卷积神经网络(CNN) 解释说明:专门用于处理图像和图像数据的深度学习模型。它通过卷积层、池化层等操作提取图像特征。应用:图像分类、目标检测、人脸识别等。未来改进:进一步提…

数据结构篇2—《单链表(不带头单向不循环链表)》

文章目录 🚩前言1、单链表的内涵(1) 逻辑结构(2) 物理结构 2、链表的分类3、单链表的具体实现(1) 框架结构(2) SingleLinkList.h头文件的实现(3)SingleLinkList.c源文件的实现①SLTPushBack()尾插函数②SLTPushFront()头插函数③SLTPopBack()尾删函数④SLTPopFront(…

高效管理—影视管理系统_后台源码+APP源码+电影数据

高效管理—影视管理系统 产品概述产品展示演示地址产品功能产品优势产品服务源码领取下期更新预报 产品概述 本产品是一个功能强大且易于使用的影视资源管理工具,它提供了一个集中管理和组织电影、电视剧、纪录片等影视作品的平台,帮助用户高效地管理和…

easyExcel - 带图片导出

目录 前言一、情景介绍二、问题分析三、代码实现1. 单图片导出2. 多图片导出3. 多图片导出(优化) 前言 Java-easyExcel入门教程:https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如何使用 easyExcel,以及写…

中间件之异步通讯组件RabbitMQ入门

一、概述 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用…

【星海随笔】windows 上跑MySQL

step one 使用 WSL 在 Windows 上安装 Linux wsl官方文档 在管理员模式下打开 PowerShell windows上安装wsl wsl --install查看哪些是可用的 wsl --list --onlineC:\Windows\System32\drivers\hosts docker-desktop下载官网:Install Docker Desktop on Windows …

[ log日志画图]分割模型训练结束生成相关日志运用代码画图

文章目录 [ log日志画图]分割模型训练结束生成相关日志运用代码画图我的log文件:画图:1.loss1.1 loss是干嘛的1.2 代码1.3 生成图 2.DICE.IOU2.1 DICE,IOU是干嘛的(常规介绍)2.2 代码2.3 生成图小白tip [ log日志画图]分割模型训练结束生成相关日志运用代…

ROS1快速入门学习笔记 - 12ROS中的坐标管理系统

目录 一、机器人作中的坐标变换 二、海龟案例 一、机器人作中的坐标变换 TF功能包能干什么? 五秒钟之前,机器人头部坐标系相对于全局坐标系的关系是什么样子的?机器人夹取的物体i相对于机器人中心坐标系的位置在哪里?机器人中心…

Linux 第十七章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

【触摸案例-控件不能响应的情况 Objective-C语言】

一、接下来,我们来说这个“控件不能响应的情况”, 1.素材里边,有一个“不接受用户交互的情况”,这么一个代码,把它打开, 把这个项目啊,复制过来,改一个名字,叫做“04-控件不能响应的情况”, 打开之后,command + R,运行一下, 在storyboard上,你也可以看得出来,我…

Python绘制的好看统计图

代码 sx [Accent, Accent_r, Blues, Blues_r, BrBG, BrBG_r, BuGn, BuGn_r, BuPu, BuPu_r, CMRmap, CMRmap_r, Dark2, Dark2_r, GnBu, GnBu_r, Greens, Greens_r, Greys, Greys_r, OrRd, OrRd_r, Oranges, Oranges_r, PRGn, PRGn_r, Paired, Paired_r, Pastel1, Pastel1_r, P…

C++ 多态详解

文章目录 1. 多态的概念2. 多态的定义及实现2.1 多态的构成条件2.2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的两个例外 2.4 C11 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 多态的原理3.1 虚函数表3.2多态的原理 4. 单继承和多继承关系的虚函数表4.1 单继…

C++Day 7 作业

1、lambda #include <iostream>using namespace std;int main() {int a 100;int b 90;int temp;auto fun [&]()mutable->int {temp a;ab;btemp;};fun();cout<<a<<endl;return 0; } 2、vector #include <iostream> #include <vector>…

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

python项目入门新手攻略

最近工作需要接手了代码量比较大的python开发的项目&#xff0c;平时写python不多&#xff0c;记录一下如何熟悉项目。 分析调用流程-pycallgraph 因为代码量比较大&#xff0c;所以希望通过工具生成代码调用流程&#xff0c;因此用到了pycallgraph。 pycallgraph&#xff0…

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习三

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

56.基于SSM实现的在线教育网站系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;采用Java的SSM框架作为开发技术&#xff0c;MYSQL数据库设计开发&#xff0c;充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的在线教育网站的设计与实现管理工作系统化、规范…

Scikit-Learn回归树

Scikit-Learn回归树 1、决策树1.1、什么是决策树1.2、决策树学习的步骤1.3、决策树算法 1、决策树 决策树&#xff08;DTs&#xff09;是一种用于回归和分类的有监督学习方法。通常&#xff0c;决策树用于分类问题&#xff1b;当决策树用于回归问题时&#xff0c;称为回归树。回…

Midjourney之绘画背景的选择

hello 小伙伴们&#xff0c;我是你们的老朋友——树下&#xff0c;今天分享Midjourney提示词中绘画背景的选择&#xff0c;话不多说&#xff0c;直接开始~ 对于背景的选择&#xff0c;Midjourney中主要体现在年代和所处的环境对绘画产生不同的影响 科技的发展&#xff0c;我们…