当前位置: 首页 > news >正文

8款常见的自动化测试开源框架

 在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。

一、性能自动化测试

1、项目名称:基于Jmeter实现的在线压测平台和在线管理Jmeter脚本系统

项目简介:

本项目基于renren-fast Java开发平台开发,内核基于Jmeter-Api和Jmeter脚本实现在线性能压测。
具有如下特点

友好的代码结构及注释,便于阅读及二次开发
实现前后端分离,通过token进行数据交互,前端再也不用关注后端技术
灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
页面交互使用Vue2.x,极大的提高了开发效率
完善的代码生成机制,可在线生成entity、xml、dao、service、html、js、sql代码,减少70%以上的开发任务
引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
引入API模板,根据token作为登录令牌,极大的方便了APP接口开发
引入Hibernate Validator校验框架,轻松实现后端校验
引入云存储服务,已支持:七牛云、阿里云、腾讯云等
引入swagger文档支持,方便编写API接口文档
引入路由机制,刷新页面会停留在当前页
引入最新版本Jmeter-Api,支持分布式压测,测试报告生成及在线查看下载。
引入Echarts,支持在线观测性能压测结果。
项目地址:https://gitee.com/smooth00/stressTestPlatform

2、项目名称:分布式压力测试工具 Beetle.DT

项目简介:基于 .NET 实现的分布式压力测试工具,用户可以根据需求编写相关的测试用例;通过工具的管理界面即可以把测试用例推送到服务中心,再根据实际压测的需求把测试用例分配到不同节点上运行。工具会根据测试的情况实时获取测试结果,测试完成后用户还可以查询具体的测试报告。节点采用进程隔离的方式运行测试用例,所以测试用例的运行都是相互独立。

项目地址:https://gitee.com/ikende/Beetle.DT

3、项目名称:基于 Go 的压力测试工具 armyant

项目简介:armyant 是从 http 压力测试工具 hey 改装而成。不过,hey 只支持 http 接口的压力测试,而 armant 可以自定义压测协议。目前默认实现了 http,mqtt 两种协议的压力测试。

项目地址:https://gitee.com/plug/armyant

二、Web UI 自动化测试

1、项目名称:自动化测试平台 LuckyFrame 

项目简介:本项目是一款免费开源的测试平台,最大的特点是全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试,测试关键字驱动也很大程度上解决了测试同学代码基础弱的问题。同时也集成了质量管理相关的一些功能,解决 QA 的日常工作中,项目过程数据的收集问题,并能展示一些简单质量报表。

项目地址:https://gitee.com/seagull1985/LuckyFrameWeb

2、项目名称:AutoLine开源平台

项目简介:AutoLine开源平台是一个开源自动化测试解决方案,基于RobotFramework进行二次开发,支持RobotFramework几乎所有的库。

项目地址:https://gitee.com/lym51/AutoLine

三、API 自动化测试

项目名称:Restful Api 集成测试工具 Hitchhiker

项目简介:Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理 Api。

项目地址:https://gitee.com/iwxiaot/Hitchhiker

四、接口自动化测试

1、项目名称:自动化测试平台 phoenixframework

项目简介:phoenixframework 是一个自动化测试平台,集代码托管, 分机(node节点)管理,定时任务,分布式或并发等方式执行通过 phoenix_develop 模块调试好的用例。平台使用 SSH4 开发,覆盖了 webgui,接口,移动mobile 等终端的测试与监控。
目前 webGUI 模块已经完成,兼容 chrome,Firefox,IE,httpunit 以及 phantomjs 驱动。

项目地址:https://gitee.com/phoenixframework/phoenixframework

2、项目名称:TCP/UDP 测试工具 SocketDebugger

项目简介:SocketDebugger 是一款 TCP/UDP 测试工具,并且包括串口转发功能,以及自动回复功能。

项目地址:https://gitee.com/hkiaipc/Socket-Debugger

3、项目名称:HTTP 接口测试插件 ApiDebug

项目简介:

ApiDebug 是一个浏览器HTTP接口测试插件,可以用来测试 HTTP、HTTPS接口。支持POST、GET 等方式,同时也支持 json、xml 等自定义接口参数。系统支持保存历史记录,也可同步测试接口至 CrapApi 接口管理系统(登陆 http://api.crap.cn ,点击同步即可保存)。除接口测试外,系统还包含 json 格式化等小工具。 

项目地址:https://gitee.com/CrapApi/ApiDebug

 3、项目名称:基于 Java 的 Http 接口测试工具

项目简介:JApiTest 是使用 java 开发的 Http 接口测试工具,以可视化形式通过配置 http 参数访问测试接口,并可对返回结果还有判断。

项目地址:https://gitee.com/penngo/JApiTest

 五、数据库自动化测试

项目名称:数据库单元测试框架 xlsunit

项目简介:面向数据库应用的单元测试框架,使用excel,作为输入,以及输出比较,适合大量数据库操作。

如下情况可以使用 xlsunit:

必须使用 Spring 或者 Spring Boot,因为会利用 Spring 单元测试事务回滚机制。

面向数据库应用,特别是一个业务操作,有多个表的变化。

xlsunit 支持 Spring 4 以上,SpringBoot1.5 以上,支持 Oracle,MySql,Postgres 等数据库。

项目地址:https://gitee.com/xiandafu/xlsunit

六、数据调优测试

影响系统性能和效率,数据库起到一个非常关键的作用,而SQL的优化又是成本最低的一种优化方式,所以我把这一项也列为测试人员需要关注的方面。

项目名称:soar-web

项目简介:基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具,支持 soar 配置的添加、修改、复制,多配置切换,配置的导出、导入与导入功能。目前只支持mysql。

项目地址:https://github.com/xiyangxixian/soar-web

项目介绍:10月20日,在开源先锋日(OSCAR DAYS)上,小米将宣布开源自研的SOAR(SQL Optimizer And Rewriter)。

       这是一款智能 SQL 优化和改写工具,开发人员可以直接通过此工具快速的对自己的 SQL 进行质量检查,生成评估报告,防止将问题 SQL 带到线上从而导致服务质量下降。它不仅能够尽可能地提高线上代码质量,还能避免一些由于人为疏漏而带来的隐患。

       SOAR 由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成。它拥有独立的不依赖数据库的 SQL 解析能力,能够通过提供的集成环境对 SQL 本身及数据库环境进行评审,找出可能存在的隐患或问题。

近年来,自动化测试越来越热门,该领域新的挑战和机遇也在同步产生,尤其是AI,RPA和机器学习,可以预见会在几年中快速增长。因此,考虑自动化的方式很有必要,今天为大家推荐9个开源的自动化测试框架,供小伙伴们参考。

1、Carina

Carina是基于Java的自动化测试框架,它不依靠特定的技术堆栈,因此测试人员智只能在iOS和Android之间重用测试自动化代码。

它的重要功能有:能把所有测试层,包括移动端、Web应用程序、REST服务甚至数据库组合到同一应用程序;支持关系和分关系数据库;可以用FreeMarker模板引擎生成REST请求。

2、Testproject.io

Testproject.io适合不熟悉软件测试的自动化,并在寻求强大社区的免费平台的测试人员,它基于Selenium、Appium构建,允许测试人员用常用的自动化操作运行测试。

它的重要功能有:支持与全球测试人员共享软件测试和API;有测试记录,全局自动化网格和自动化构件块在内功能;支持多种语言,包括Python、JavaScript、Java、C ++等。

3、Gauge

Gauge是近几年流行起来的测试自动化工具,轻量,能跨平台,基于插件体系结构,能与任何语言,IDE和生态系统一起使用。

它的重要功能有:语法简单;设置简单,可使用单个命令启动并运行框架;通过多种扩展插件支持模块化架构;没有任何特定的结构,能用简单的Markdown创建文本文档。

4、Selenium

Selenium是优秀的Web应用程序开源自动化测试框架,在多个操作系统之间具有交叉兼容性,因此可用多种语言编写测试脚本。

它的重要功能有:跨平台;操作系统和浏览器兼容;集成了多种API和编程语言;高度可定制;集成了工具Selenium IDE,可在不学习特定脚本的情况下进行测试。

5、Katalon

Katalon是操作简单的自动化测试框架,支持Web、移动和API自动化测试。

它的重要功能有:多种脚本语言扩展支持;支持Jira实施;通过分析和记录Web操作并捕获关联的对象来自动生成测试脚本,流程自动化。

6、Galen

用Galen进行测试自动化工作,比较大的作用是改善用户体验,它专门针对UX测试,提供了用于测试、验证移动或Web应用程序布局的特定语法。

它的重要功能有:能指定浏览器窗口的大小以对布局规范进行测试;能用Galen语法,JavaScript或Java编写测试文件;热图分析能生成详细的HTML报告。

7、Serenity

Serenity是基于Java的开源自动化测试框架,可帮助编写自动化的验收和回归测试,易于与行为驱动开发(BDD)集成的工具。

它的重要功能有:能通过抽象样板代码促进编写BDD和Selenium测试;能在维持较低级别记录详细信息的同时,在较高级别上测试多个方案;带有预先构建功能,包括WebDriver管理,Jira集成,运行并行进程等。

8、Appium

Appium是一个基于WebDriver协议的开源自动化测试框架,用于测试移动应用程序,它允许使用相同的API为不同的平台编写测试。

它的重要功能有:提供不同编程语言和框架;允许测试人员创建元素存储库并进行相应的管理;支持iOS,Android和Windows测试套件之间的可重用代码和测试。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

相关文章:

8款常见的自动化测试开源框架

在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来…...

【QT】:基本框架

基本框架 一.创建程序二.初识函数1.main2.Widget.h3.Wight.cpp4.Wight.ui5.文件名.pro 三.生成的中间文件 本系列的Qt均使用Qt Creator进行程序编写。 一.创建程序 二.初识函数 1.main 2.Widget.h 3.Wight.cpp 4.Wight.ui 此时再点击编辑,就看到了ui文件的本体了。…...

【Python】定时更换clashx工具

An empty street An empty house A hole inside my heart I’m all alone The rooms are getting smaller I wonder how I wonder why I wonder where they are The days we had The songs we sang together Oh yeah And oh, my love I’m holding on forever Reaching for a l…...

2024年第16届大广赛新命题发布-爱华仕箱包

2024年3月27日,2024年第16届大广赛发布了新的命题,爱华仕箱包命题,自2017年起,爱华仕箱包已连续8年担任全国大学生广告艺术大赛命题单位。 爱华仕现已实现百货、超市、电商、礼品、投标、海外市场6大零售网络的全覆盖&#xff0c…...

前端理论总结(js)——闭包和内存泄漏

闭包 什么是闭包? 函数内部和函数外部连接起来的桥梁,可以在一个内层函数中访问到其外层函数的作用域 为什么要用 封装变量 收敛权限 临时变量持久化 优点 1.保护函数内的变量安全      2.在内存中维持一个变量(用的太多就变成了缺点&#xff0c…...

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码,验证后才可显示出内容的代码如何实现? 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果,详细教程可以参考:PHP页面如何实现…...

M1 mac安装 Parallels Desktop 18 激活

M1 mac安装 Parallels Desktop 18 激活 下载安装Parallels Desktop 18.1.1 (53328) 激活1. 拷贝prl_disp_service2. 在终端打开Crack所在位置3. 输入命令,激活成功 下载 安装包和激活文件下载地址 链接: https://pan.baidu.com/s/1EjT7xeEDcntIIoOvvhBDfg?pwd9pue …...

嵌入式学习46——硬件相关2串口通信

串口: 端口: COM 波特率: 9600 115200 (bps) 每秒传输的数据…...

企业产品网络安全建设日志3月20

今天主要以下几个事情 确定了OCI当前情况下,更新某安全配置会导致链接中断 这问题说大不大,说小不小。 由此引申出各云服务器产品的完善度: AWS>OCI>其他 国内一些安全公司提供的WAF功能,缺点在于其全球的…...

BRICK POP展示了有趣的链上游戏玩法与奖励

新游戏BRICK POP将Sui区块链技术与低Gas费用,以及我们在Web3游戏开发方面的专业知识无缝结合。通过充分利用Sui和我们自己的INNO平台的优势,BRICK POP为玩家提供了一个融合了前沿技术和引人入胜游戏的沉浸式游戏体验。BRICK POP游戏设计为实时交易和高用…...

jetcache 2级缓存模式实现批量清除

需求 希望能够实现清理指定对象缓存的方法,例如缓存了User表,当User表巨大时,通过id全量去清理不现实,耗费资源也巨大。因此需要能够支持清理指定本地和远程缓存的批量方法。 分析 查看jetcache生成的cache接口,并没…...

【MD】激光驱动原子动力学的全尺寸从头算模拟

Zeng Q, Chen B, Zhang S, et al. Full-scale ab initio simulations of laser-driven atomistic dynamics[J]. npj Computational Materials, 2023, 9(1): 213.核心研究内容: 本文研究了激光驱动的原子动力学的全尺度从头算模拟。研究的重点是探讨在极端条件下材料…...

访问者模式(数据与行为解耦)

目录 前言 UML plantuml 类图 实战代码 SimpleFileVisitor FileVisitor 接口 删除指定文件夹 模板 IVisitor IVisitable Client 前言 一个类由成员变量和方法组成,成员变量即是类的数据结构,方法则是类的行为。 如果一个类的数据结构稳定&am…...

LeetCode:1319. 连通网络的操作次数(并查集 Java)

目录 1319. 连通网络的操作次数 题目描述: 实现代码与解析: 并查集 原理思路: 1319. 连通网络的操作次数 题目描述: 用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示…...

C++ STL教程

C STL教程 文章目录 C STL教程1.1 std::vector1.1.1vector的定义1.1.2vector容器的初始化1.1.3vector容器内元素的访问和修改1.1.4vector中的常用函数 1.2 std::string1.2.1string的定义1.2.2string的初始化1.2.3string中元素的访问和修改1.2.4string中连接字符串1.2.5string中…...

系列学习前端之第 6 章:一文掌握 jQuery(熟悉即可)

前言:为什么说 jQuery 熟悉即可,已日渐过时? 作为前端开发中常用的两个库或框架:Vue.js 和 jQuery。不少开发者想要学习 Vue.js 时,都会有一个疑惑:学习 Vue.js 是否一定要学习 jQuery? 从几个…...

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs():递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir():创建目录 2.3、…...

Redis的安装与启动

一、Linux环境安装&启动Redis 1. 安装步骤 第一步:在官网下载好Redis安装包,上传到Linux中并进行解压到相应(如/opt/software/)目录中;(注意:完成了第二步后,即安装了C/C语言…...

WebGIS航线编辑器(无人机航线规划)

无人机航点、航线规划,实现全自动航点飞行作业及飞行航拍。禁飞区、作业区功能保障飞行安全。 GIS引擎加载 const viewer new Cesium.Viewer("cesiumContainer", { imageryProvider: new Cesium.IonImageryProvider({ assetId: 3872 }), }); const im…...

STEP 格式三维模型读取

STEP是常用的三维模型存储格式&#xff0c;使用Express语言描述几何图形&#xff0c;文件存储方式为BRep&#xff0c;分为STEP203和STEP214&#xff0c;后者多了颜色信息&#xff0c;opencascade中提供了相应算法读取STEP文件。 #include <STEPControl_Reader.hxx>TopoD…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

前端中slice和splic的区别

1. slice slice 用于从数组中提取一部分元素&#xff0c;返回一个新的数组。 特点&#xff1a; 不修改原数组&#xff1a;slice 不会改变原数组&#xff0c;而是返回一个新的数组。提取数组的部分&#xff1a;slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...