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

十大开源测试工具和框架,一定有你需要的

目录

前言

Katalon Studio

Selenium

Appium

JMeter

SOAP UI

Robot Framework

Watir

JUnit

Robotium

Citrus

总结


前言

免费的开源框架和工具由于其开源特性,现在逐渐成为自动化测试的首选解决方案。区别在于,你是喜欢使用类库编写一个全新的自动化测试框架,或者喜欢使用一个现成的工具。

Katalon Studio

 

Katalon Studio 是一款流行的免费测试自动化工具,适用于 Web、移动、API和桌面(Windows)。Katalon Studio 提供低代码和脚本方法,消除了构建和维护单独测试框架的培训成本。

借助强大的内置功能,用户可以直接专注于测试活动,而在创建、运行和维护测试上花费更少的精力。

  • 支持的编程语言:Java 和 Groovy

  • 操作系统兼容性:Windows、macOS 和 Linux

  • 使用录制和回放、手动和脚本模式灵活快速地创建测试

  • 调试 UI 和智能报告以解决失败的测试

  • 具有页面对象模型 (POM) 设计和测试工件共享的可重用测试工件(测试用例、对象、关键字等)

  • 支持的测试方法:BDD、DDT、关键字驱动测试、跨浏览器测试(Headless、Chrome、Edge、Firefox 和 Safari)和跨平台移动测试(iOS、Android)

  • 允许导入 Selenium、SoapUI 和 Postman 项目

  • 与 CI/CD 系统(Jenkins、Bamboo、Azure DevOps、CircleCI 等)、ALM(例如 Jira)集成成本低

Selenium

 

Selenium 是基于 Web和开源测试自动化主题的第一个选择。更准确地说,Selenium 不应当被视为一种工具,而是一个开源库。

凭借着名的 Selenium WebDriver、Selenium IDE、Selenium Grid 和最近发布的 Selenium 4 三重奏,这肯定是编程自动化的的首选。

  • 支持的编程语言:Java、JavaScript (Node.js)、Groovy、Scala、PHP、Perl、Python、Ruby 或 C#

  • 导入在 Eclipse、Visual Studio 或 NetBeans 上编写的高级测试

  • 兼容 macOS、Windows 和 Linux 以实现跨平台执行

  • 可定制的附加组件和插件

  • 允许与 Ant、Maven、TestNG、JUnit、NUnit 等框架集成。

Appium

Appium 与 Selenium 共享类似的后缀,同样是移动自动化测试要学习的开源框架。从原生、移动 Web 到混合应用程序,Appium 一直被受追捧,越来越多的人选择Appium作为APP测试框架。

  • 支持的编程语言:Java、PHP、Objective-C、C#、Clojure、带有 Node.js 的 JavaScript、Python、Perl 或 C#,只要 Selenium 支持

  • JSON Wire Protocol 为所使用的编程语言增加了灵活性

  • 自动化测试脚本可以在 iOS 和 Android 平台上运行

  • 可以在没有源代码的情况下测试应用程序

JMeter

Apache JMete是一种用于性能(负载和压力测试)和功能测试的自动化工具。JMeter 的主要用途是测量应用程序的性能并充当虚拟用户向服务器发送大量请求。

  • 支持的编程语言:Java、Groovy

  • 用于自定义代码的用户友好的 UI/GUI 和 Beanshell 处理器,特别是Groovy脚本引擎

  • 适用于 HTTP、HTTPS、JDBC、LDAP、FTP、LDAP、SOAP、POP3、IMAP、SMTP、TCP 和 Java 脚本协议

  • 可与 Jenkins 和第三方报告工具集成

  • 多线程框架(并发线程组)将函数与线程组分开采样

SOAP UI

为了测试 SOAP 和 REST API,我们选择了 SOAP UI。除了 API 测试之外,SoapUI 用于 Web 服务测试的开源应用程序还包括功能、负载和Mock测试。

  • 支持的编程语言:Groovy 和 Javascript

  • 对 SOAP/WSDL、 REST 和 JMS的协议支持

  • 用于数据驱动测试的 DataSource TestStep

  • 简单的需求管理

  • 与 Maven、HUDSON、JUnit 和 Apache Ant 集成

Robot Framework

Robot Framework 使用 Python 作为主要脚本语言,是一个用于验收测试和机器人流程自动化 (RPA) 的开源框架。Robot Framework 通常与免费的移动和桌面应用程序测试工具相关联。

  • 支持的编程语言:Python、Jython (Java)、PyPy 和 IronPython (.NET)

  • 操作系统兼容性:Windows、macOS、Unix 和 Linux

  • 可以使用 Eclipse、RIDE(Robot Framework IDE)或文本编辑器来构建测试

  • 关键字驱动测试、自动完成完成和语法突出显示以减少编码时间

  • 与 Appium 和 Selenium 集成

 

Watir

Watir 提供 Ruby 中的开源库,用于跨浏览器或Web 测试自动化。Watir 在后台使用 Selenium,因此它能够利用 Selenium 的通用 API。

  • 支持的编程语言:Ruby

  • 浏览器兼容性:Chrome、Firefox、Edge、Internet Explorer、Safari

  • BDD 设计可通过与 Cucumber、RSpec 等的集成获得。

  • Watir 7.0.0 在 RubyGems 上可用,但需要 Ruby 2.6+ 和 Selenium 4.0

JUnit

Java 加单元测试为我们提供了 JUnit。在Java Top 10 Libraries中排名第 7 ,这个免费的开源测试框架是 Java 开发人员在单元级别编辑和重构代码的最爱。更重要的是,JUnit 5 的发布带来了有用的更新,例如在层次结构中更好地组织测试、一次同时使用多个运行器等等。

  • 支持的编程语言:Java、Groovy

  • 使用注释和断言类编写自动化单元测试脚本

  • 与第三方软件一起使用的扩展 API 或扩展机制

  • 并行执行(5.3 及以上版本)

  • AssertThrows 方法用于更轻松的异常和超时处理

Robotium

Robotium 通常被称为「Android 的 Selenium」,是一种流行的开源框架,用于 Android 应用程序黑盒测试,包括原生和混合。

  • 支持的编程语言:Java

  • 运行时绑定以查看所有 Android UI 组件和活动

  • 与 Gradle、Maven 和 Ant 集成以编写自动化移动测试

  • 使用 Config.sleepDuration 和 Config.sleepMiniDuration 可调整执行速度

Citrus

我们最后一个开源测试自动化框架是 Citrus。Citrus 肯定会为从事集成测试和验证消息传输连接的开发人员敲响警钟。除此之外,连接 JUnit 或 TestNG 以补充使用对于编写基于 Java 的单元测试脚本是很常见的。

支持的消息协议:HTTP、REST、SOAP、Kafka、JMS 等。用于灵活测试创建的 XML 或 Java 编码 与 Apache Camel、Arquillian、Kubernetes 和 Docker 集成以启用微服务集成测试 使用 Cucumber 和 YAKS 进行 BDD 和云原生 BDD 自动化测试 使用 REST 扩展测试 POST、GET、PUT、DELETE、OPTIONS、PATCH、HEAD、REST API。

总结

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

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,与我一起学习交流。

 

                                                                  

相关文章:

十大开源测试工具和框架,一定有你需要的

目录 前言 Katalon Studio Selenium Appium JMeter SOAP UI Robot Framework Watir JUnit Robotium Citrus 总结 前言 免费的开源框架和工具由于其开源特性,现在逐渐成为自动化测试的首选解决方案。区别在于,你是喜欢使用类库编写一个全新的…...

加密技术在android中的应用

1、算法基础 算法基础参照linux的全盘加密与文件系统加密在android中的应用 消息摘要算法 对称加密算法 非对称加密算法...

备战蓝桥杯【一维前缀和】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

研报精选230214

目录 【行业230214艾瑞股份】中国增强现实(AR)行业研究报告【行业230214国信证券】信息安全深度剖析5:密评和信创双催化,密码产业开启从1到N【行业230214民生证券】磁性元器件深度报告:乘新能源之风,磁性元…...

【SSL/TLS】准备工作:证书格式

证书格式1. 格式说明1.1 文件编码格式1.2 文件后缀格式2. xca导出格式1. 格式说明 1.1 文件编码格式 1. PEM格式: 使用Base 64 ASCII进行编码的纯文本格式。后缀为“.pem”, ".cer", ".crt", ".key" 2. DER格式 二进制编码格式,文件…...

Linux常用命令---系统常用命令

Linux系统常用命令场景一: 查看当前系统内核版本相关信息场景二: sosreport 命令场景三: 如何定位并确定命令?场景四:查看当前系统运行负载怎场景五: 查看当前系统的内存可用情况场景六:查看网卡…...

C 结构体

C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性&#xff…...

手语检测识别

论文:Real-Time Sign Language Detection using Human Pose Estimation Github:https://github.com/google-research/google-research/tree/master/sign_language_detection SLRTP 2020 手语识别任务包括手语检测(Sign language detection&a…...

android fwk模块之Sensor架构

本文基于Android 12源码整理,包含如下内容: 通信架构应用层实现使用方式SensorManager抽象接口具体实现fwk层的实现native中的SensorManager的初始化流程native中的消息队列初始化与数据读取sensorservice实现HAL层的实现通信架构 应用层实现 涉及代码&…...

安装less-loader5出现webpack版本不兼容

今天遇到一个问题: 安装less-loader5之后其它包提示peerDependencies WARNING,意思是包版本不兼容。 【难题】 虽然NPM已经很自动化了,但依赖问题真的是一个难题,无法自动解决,需要人工干预调整。 【解决办法】 去查…...

Java 网络编程

1.UDP和TCPUDP和TCP是传输层协议中最核心的两种协议他们的特点分别是UDP: 无连接,不可靠传输,面向数据报,全双工TCP: 有连接,是可靠传输,面向字节流,全双工有无连接有连接:就好比两个人打电话,打电话的一方发出连接请求,被打电话的一方选择确认连接,此时双方才能进行通话无连接…...

BEV学习记录

近期可能要经常性的开展BEV工作,打算把自己觉着不错的网站拿出来记录一下。 首先贴上来我还没有细读的一篇觉着不错的文章。 自动驾驶感知新范式——BEV感知经典论文总结和对比(上)_苹果姐的博客-CSDN博客_bev视角 开山之作--LSS ECCV 202…...

Webrtc Native C++切换音频输入源

modules/audio_device/audio_device_impl.cc #include “api/audio_options.h” #include “modules/audio_device/include/factory.h” // 创建一个 AudioDeviceModule 对象 auto audio_device_module = webrtc::AudioDeviceModule::Create( webrtc::AudioDeviceModule::kPl…...

裸辞5个月,面试了37家公司,终于找到理想工作了

上半年裁员,下半年裸辞,有不少人高呼裸辞后躺平真的好快乐!但也有很多人,裸辞后的生活五味杂陈。 面试37次终于找到心仪工作 因为工作压力大、领导PUA等各种原因,今年2月下旬我从一家互联网小厂裸辞,没想…...

Mybatis-plus@DS实现动态切换数据源应用

目录1 DS实现动态切换数据源原理2 不可在事务中切换数据库分析解决3 原因解析1 DS实现动态切换数据源原理 首先mybatis-plus使用com.baomidou.dynamic.datasource.AbstractRoutingDataSource继承 AbstractDataSource接管数据源;具体实现类为com.baomidou.dynamic.d…...

SpringBoot的创建和使用

SpringBoot是什么?SpringBoot诞生的目的就是为了简化Spring开发,而相对于Spring,SpringBoot算是一个很大的升级,就如同汽车手动挡变成了自动挡。Spring:SpringBoot:SpringBoot的优点SpringBoot让Spring开发…...

居家电话客服宝典

客服分类从销售的流程来分,客服分为售前和售后。售前一般都带有销售性质,工资主要靠提成,售后一般是解答问题,工资主要看服务质量和差评量。从工作模式来分,客服分为在线客服和热线客服。在线客服以打字聊天为主&#…...

开发方案设计

1、开发流程产品需求设计-->需求粗评-->做设计方案-->粗估时-->需求细评-->排期-->开发-->提测、修bug-->code review-->上线设计方案主要是写实现思路、模块划分code review:完善代码,发现未考虑到的边界问题2、具体实现方案…...

文件路径模块pathlib

文件路径模块pathlib 文章目录文件路径模块pathlib1.概述2.创建路径2.1.创建非windos平台路径2.2.动态拼接路径joinpath2.3.替换文件名称 with_name2.4.创建固定目录2.5.创建文件夹和文件1.创建多级目录mkdir2.创建空文件3.路径解析3.1.根据路径分隔符解析路径parts3.2.获取父级…...

spring cloud篇——什么是服务熔断?服务降级?服务限流?spring cloud有什么优势?

文章目录一、spring cloud 有什么优势二、服务熔断2.1、雪崩效应2.2、DubboHystrixCommand三、服务降级四、服务限流4.1、限流算法4.2、应用级限流4.3、池化技术4.4、分布式限流4.5、基于Redis 功能的实现限流4.6、基于令牌桶算法的实现4.6.1 、Java实现一、spring cloud 有什么…...

Tomcat构建

软件架构C/S:Client/Server.需要安装才能使用。B/S:Brower/Server。有浏览器就可以。资源分类动态资源:每个用户访问相同的资源后,得到的结果可能不一样,称为动态资源。动态资源被访问后,先转换为静态资源,再被浏览器解…...

入门深度学习——基于全连接神经网络的手写数字识别案例(python代码实现)

入门深度学习——基于全连接神经网络的手写数字识别案例(python代码实现) 一、网络构建 1.1 问题导入 如图所示,数字五的图片作为输入,layer01层为输入层,layer02层为隐藏层,找出每列最大值对应索引为输…...

预算砍砍砍,IT运维如何降本增效

疫情短暂过去,一个乐观的共识正在蔓延:2023年的互联网,绝对不会比2022年更差。 “降本”是过去一年许多公司的核心策略,营销大幅缩水、亏损业务大量撤裁,以及层出不穷的裁员消息。而2023年在可预期的经济复苏下&#…...

10.Jenkins用tags的方式自动发布java应用

Jenkins用tags的方式自动发布java应用1.配置jenkins,告诉jenkins,jdk的安装目录,maven的安装目录2.构建一个maven项目指定构建参数,选择Git Paramete在源码管理中,填写我们git项目的地址,调用变量构建前执行…...

2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)

相同数字的积木游戏 1 题目 小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木,每个积木块上都有一个数字, 积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的 2 块积木块,计算他们的距离。 小薇请你帮忙替她…...

重构之改善既有代码的设计(一)

1.1 何为重构,为何重构 第一个定义是名词形式: 重构(名词):对软件内部结构的一种调整,目的是在不改变「软件可察行为」前提下,提高其可理解性,降低修改成本。 「重构」的另一个用…...

Kotlin data class 数据类用法

实验数据 {"code":1,"message":"成功","data":{"name":"周杰轮","gender":1} }kotlin数据类使用方便提供如下内部Api: equals()/hashCode()对 toString() componentN()按声明顺序与属性相…...

随笔-老子不想牺牲了

18年来到这个项目组,当时只有8个人,包括经常不在的架构师和经理。当时的工位在西区1栋A座,办公桌很宽敞。随着项目的发展,入职的人越来越多,项目的工位也是几经搬迁。基本上每次搬迁时,我的工位都是挑剩下的…...

三种查找Windows10环境变量的方法

文章目录一.在设置中查看二. 在我的电脑中查看三. 在资源管理器里查看一.在设置中查看 在系统中搜索设置 打开设置,在设置功能里,点击第一项 系统 在系统功能里,左侧菜单找到关于 在关于的相关设置里可以看到高级系统设置 点击高级系…...

STM32单片机DS18B20测温程序源代码

OLED液晶屏电路接口DS18B20电路接口STM32单片机DS18B20测温程序源代码#include "sys.h"#define LED_RED PBout(12)#define LED_GREEN PBout(13)#define LED_YELLOW PBout(14)#define LED_BLUE PBout(15)#define DS18B20_IO_IN() {GPIOA->CRL&0XFFFFFFF0;GPIOA…...

厦门定制型网站建设/万网域名注册官网阿里云

内联函数 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数压 栈的开销&#xff0c;内联函数提升程序运行的效率 #define Fun(x,y) x*y #define N 10 int Mul(int x, int y) {return x*y; } int main() {cout <<…...

何苦做游戏网站/汕头seo

Its probably not unfair to call me a Twitter Power User. I use it a lot, its my favorite Social Networking site and Ive written a number of reasonably popular articles on the topic. 称我为Twitter高级用户可能并不公平。 我经常使用它&#xff0c;这是我最喜欢的…...

做网做网站建设/鹤壁seo推广

初级版轮播图&#xff0c;实现左右按钮切换图片&#xff0c;下方小点切换图片&#xff0c;简单的自动轮播 代码&#xff1a;&#xff08;缺点&#xff0c;固定图片张数和宽度高度&#xff0c;每次用时都需要复制&#xff0c;代码累赘&#xff0c;多处功能不完善&#xff09; …...

部门网站建设/世界最新新闻

算法10---二叉搜索树存在重复数据插入的实现 当用TREE-INSERT将n个具有相同关键字的数据项插入到一棵初始为空的二叉查找树中时&#xff0c;该算法的渐近性能如何&#xff1f;我们可以对TREE-INSERT做一些改进&#xff0c;即在第5行的前面测试key[z] key[x]&#xff0c;在第11…...

临沂建设工程质量 监督网站/网站收录查询代码

有人说&#xff0c;遗留代码是任何未经测试编写的代码&#xff0c;而我就是其中之一。 但是我也是前端开发人员&#xff0c;这意味着测试我的代码通常需要浏览器。 这使测试稍微困难一些&#xff0c;或者至少我认为是这样。 实际上&#xff0c;它实际上非常简单&#xff0c;在本…...

wordpress静态页404/常用的搜索引擎有

在Glide中加载本地圆形图片时会有问题&#xff0c;所以这里换了其他方式 代码如下&#xff1a; Bitmap bitmap BitmapFactory.decodeResource(getResources(), R.drawable.head); RoundedBitmapDrawable roundedBitmapDrawable RoundedBitmapDrawableFactory.create(getReso…...