当前位置: 首页 > 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 有什么…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制&#xff0…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

生成 Git SSH 证书

🔑 1. ​​生成 SSH 密钥对​​ 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​: -t rsa&#x…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...