测试老鸟常用的自动化测试工具有哪些?

2023-11-06

目录

一、自动化测试工具的类型

二、自动化测试工具有哪些

1、Selenium

2、Appium

3、Jmeter

4、Postman

5、SoapUI

6、Monkey

7、Robot Framework

8、QTP

9、LoadRunner

10、Jenkins

三、平台支持

四、易于采用

五、易于编写脚本

六、整合方式

七、测试分析

八、许可证类型和费用

九、总结一下


自动化测试正在逐步取代部分手动测试,因为它可以节省时间并提高测试质量。特别是在进行回归测试的情况下,自动化可以通过多种方式提高效率。手动进行重复测试是浪费时间和资源。此外,由于重复测试可能会遗漏,因此存在一定的错误范围,但是自动化中发生错误的可能性很小。但是什么是自动化测试?简单来说,自动化测试就是通过重复执行预定义的动作来执行测试用例的系统来代替人工操作。为了充分利用自动化,必须选择正确的自动化测试工具。

​如果你想确保你的产品的质量,测试是一个关键的步骤。

测试你的应用程序以确保它们正常工作是至关重要的。虽然很重要,但软件测试可能是一个重复的过程,需要时间和资源,你可能更愿意用在为功能或性能提供创新的任务上。 这就是测试自动化的意义所在。自动化测试有明确的最佳实践,如果你遇到以下情况,那么自动化测试对于你的团队就至关重要:

  1. 重复性的测试,在多次构建中运行的测试

  2. 容易导致人为错误的测试

  3. 需要多个数据集的测试

  4. 经常使用的功能,引入了高风险条件

  5. 不可能手动执行的测试

  6. 在几个不同的硬件或软件平台和配置上运行的测试

  7. 手动测试时需要花费大量精力和时间的测试

一、自动化测试工具的类型

记录和重放:此类别中的工具为自动脚本提供了记录选项。屏幕上的每个交互(例如点击,滚动或键入)都将被记录并转换为自动化步骤。可以重播已录制的脚本以执行操作并验证。

基于坐标的识别:此类工具在x/y坐标的帮助下与被测应用程序交互,以自动化和验证应用程序。

本机对象识别:使用本机对象识别的工具可检测给定元素树上的UI或控件元素。该树由XPATH,XML或CSS构建,以标识元素,验证和自动化脚本。

文字识别:文本识别:文本识别或(OCR)光学字符识别工具可根据其文本识别元素。这些工具使用可见文本来推动自动化并验证应用程序。

图像识别:这些工具会获取产品中UI元素的屏幕截图,以将其添加到自动化脚本中。这些屏幕截图将帮助AUT自动执行。

许多测试自动化工具支持多种识别方法,这对于获取更强大的自动化脚本很有用。现在让我们看看选择自动化测试工具时要考虑的因素。

二、自动化测试工具有哪些

1、Selenium

 WEB自动化测试

  Selenium是网页应用中最流行的开源自动化测试框架。起源于2000年,10多年来不断地完善,Selenium成为许多Web自动化测试人员的选择,尤其是那些有高级编程和脚本技能的人。Selenium也成为了其他开源自动化测试工具比如Katalon Studio,Watir,Protractor和Robot Framework的核心框架。

  Selenium 支持多系统环境(Windows,Mac,Linux)以及多种浏览器(Chrome,FireFox,IE以及无头浏览器(没有界面))。它的脚本可以由各种各样的编程语言编写,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。

  因为Selenium的灵活性,测试人员可以写各种复杂的、高级的测试脚本来应对各种复杂的问题,它需要高级的编程技能和付出来构建满足自己需求的自动化测试框架和库。

2、Appium

​  App自动化测试

  Appium是一个移动端自动化测试开源工具,支持iOS和Android平台,支持Python、Java等语言,即同一套Java或Python脚本可以同时运行在iOS和Android平台,Appium 是一个C/S架构,核心是一个Web服务器,它提供了一套REST的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在HTTP响应中返还给客户端。

3、Jmeter

​  接口测试,性能测试

  Apache JMeter是一个开源的Java桌面应用程序,主要用于web应用程序的负载测试。它还支持单元测试和有限的功能测试。

  它有很多好的特性,比如动态报告、可移植性、强大的测试IDE等,并且支持不同类型的应用程序、协议、shell脚本、Java对象和数据库。

4、Postman

​  接口测试

  Postman 提供功能强大的Web API和HTTP请求的调试,它能够发送任何类型的HTTP请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的Post Cloud用户还能够创建自己的 Team Library用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。

5、SoapUI

​  接口测试

  SoapUI是一个非常流行的用于SOAP和REST的开源API测试自动化框架。它还支持功能测试、性能测试、数据驱动测试和测试报告。

6、Monkey

​  稳定性测试

  软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件。

  压力测试结果:崩溃crash,无响应anr,

  基本命令:adb shell monkey 1000。

7、Robot Framework

​  WebUI自动化测试,接口测试

  Robot Framework是一个开源自动化框架,它实现了用于验收测试和验收测试驱动开发(ATDD)的关键字驱动方法。Robot Framework为不同的测试自动化需求提供框架。但是,通过使用Python和Java实现其他测试库,可以进一步扩展其测试功能。Selenium WebDriver是Robot Framework中常用的外部库。

  测试工程师可以利用Robot Framework作为自动化框架,不仅可以进行Web测试,还可以用于Android和iOS测试自动化。对于熟悉关键字驱动测试的测试人员,可以轻松学习Robot Framework。

8、QTP

​  Web自动化测试

  QTP是一种自动测试工具。使用 QTP 的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。

  QTP针对的是GUI应用程序,包括传统的Windows应用程序,以及现在越来越流行的Web应用。它可以覆盖绝大多数的软件开发技术,简单高效,并具备测试用例可重用的特点。其中包括:创建测试、插入检查点、检验数据、增强测试、运行测试、分析结果和维护测试等方面。

9、LoadRunner

​  性能测试

  LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。

  企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。

10、Jenkins

​  持续集成

  自动化构建编译,部署,任务执行,测试报告,邮件通知等。

  上面这些大部分都是开源工具,而开源的好处不用我说,大家都懂!我们测试想要提升自己,就必须得掌握各种工具的使用;

三、平台支持

您是否正在寻找针对Web应用程序或移动应用程序的自动化测试工具?如果是移动应用程序,那么它是混合的,本机的还是PWA?在许多情况下,脚本语言也是一个重要因素,因为移动自动化测试工具并不支持所有语言。因此,如果您使用JavaScript开发应用程序,则不建议使用UFT进行测试自动化。在这种情况下,请使用诸如Selenium之类的脚本语言灵活的工具。 有很多测试自动化工具都支持Selenium和Appium等免费软件框架。框架集成有助于减少测试工作量,并增加团队之间的协作。工具集成形成了一个协作努力的生态系统,可帮助对象识别,错误日志记录,测试用例管理,报告共享和共享存储库。

四、易于采用

可以根据使用该工具所需的技能和学习曲线来衡量采用的难易程度。如果互联网上有可用资源轻松学习该工具的功能,那么这是一个加分点。另外,社区支持应该很好,如果有一个活跃的社区对该工具的复杂性有一个大概的了解,那么这将是一个优势。我们已经观察到某些工具和框架的安装学习过程也很漫长。但是总体来说,团队应该能够凭借自己的技能或经验轻松使用该工具。

五、易于编写脚本

大多数自动化测试工具提供了灵活的脚本选项。它允许测试团队以首选语言编写测试脚本。良好的测试自动化工具有助于提高测试组件的可重用性,并提供可在项目间重用的脚本的灵活性。具有对象标识的脚本编写时间,脚本执行速度,对CI/CD工具(如Jenkins)的支持,通常在选择工具之前会考虑这些属性。

六、整合方式

如果测试团队正在使用测试用例或管理工具,则该团队将倾向于可以轻松集成到这些工具中的自动化工具。它有助于正确管理应用程序开发生命周期。关键字驱动或数据驱动的自动化框架应易于集成到任何数据源中。如果该工具轻松提供与不同数据源的连接,则非常方便。

七、测试分析

分析报告构成了测试自动化的基础,因为它提供了对过程的可追溯性。自动化工具必须提供可自定义的仪表板,以查看各个团队之间共享的不同类型的报告。实时报告的可追溯性确保功能验证和有效的测试覆盖率。诸如测试进度,缺陷密度和测试执行状态之类的质量指标可让您在连续测试的每个阶段都保持质量。使用良好的自动化工具来分析结果以识别错误,并进行根本原因分析非常方便。

八、许可证类型和费用

最好选择开源工具,但并非每个开源自动化工具都具有您可能需要的所有功能。即使您选择专有的许可工具,也需要弄清楚需要在维护上花费多少。一些公司为优质计划提供实时支持和培训。因此,您可能需要升级以利用这些服务。如果您只想在不同的计算机上执行自动化,则还有一个称为运行时许可证的东西。除此之外,还有用于单个计算机的节点锁定许可证和用于在多个系统上使用该工具的并发浮动许可证的选项。

九、总结一下

总体来说自动化测试是测试思想的一个拓宽,为测试工程师提供了一个“触须”,其情形可以看成一个专用工具,可是本质上自动化测试还是一类思想。 顺便提一句,狭义上的自动化测试指的是基于GUI的自动化测试,而单元测试跟API测试,你有想过怎么用手工不借助任何专用工具去做吗?因此它们天生就属于测试自动化的范畴。 自动化最实在的优势在于——工作好找:有一个测试工程师(并不是本人)发现一个有趣的现象,她申请过的几乎所有测试职位,在招聘时都需要自动化测试经验。但当她开始工作后,就发现这种公司都试图做自动化测试,可是结果大多不怎么地。不过,尽管她参与的都是一些杯具的项目,不过她总能把这种杯具包装成洗具以应对下一次面试。 机会只眷顾有准备的人,这是一个靠真本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,造成机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!

B站最牛的Python自动化测试框架全栈测试开发实战项目入门到精通,涨薪必备教程!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试老鸟常用的自动化测试工具有哪些? 的相关文章

  • 如果两点之间的距离低于某个阈值,则从列表中删除点

    我有一个点列表 只有当它们之间的距离大于某个阈值时 我才想保留列表中的点 因此 从第一个点开始 如果第一个点和第二个点之间的距离小于阈值 那么我将删除第二个点 然后计算第一个点和第三个点之间的距离 如果该距离小于阈值 则比较第一点和第四点
  • 是否有解决方法可以通过 CoinGecko API 安全检查?

    我在工作中运行我的代码 一切都很顺利 但在不同的网络 家庭 WiFi 上 我不断收到403访问时出错CoinGecko V3 API https www coingecko com api documentations v3 可以观察到 在
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • Python,将函数的输出重定向到文件中

    我正在尝试将函数的输出存储到Python中的文件中 我想做的是这样的 def test print This is a Test file open Log a file write test file close 但是当我这样做时 我收到
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • Pandas 每周计算重复值

    我有一个Dataframe包含按周分组的日期和 ID df date id 2022 02 07 1 3 5 4 2022 02 14 2 1 3 2022 02 21 9 10 1 2022 05 16 我想计算每周有多少 id 与上周重

随机推荐

  • 自增与自减运算符号&&赋值运算符

    自增运算符为 其功能是使变量的值自增1 自减运算符为 其功能是使变量值自减1 它们经常使用在循环中 自增自减运算符有以下几种形式 注意 无论是a 还是 a都等同于a a 1 在表达式执行完毕后a的值都自增了1 无论是a 还是 a都等同于a
  • Unsafe学习

    一 介绍 一个管理内存的类 Unsafe类是 final 的 不允许继承 且构造函数是private的 使用单列模式模式获取类对象 1 1 测试的类 public class UnsafeBean private static int st
  • 计算机程序存储在哪里,计算机正在运行的程序存放在哪里?

    计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所有程序的运行都是在内存中进行的 因此内存的性能对计算机的影响非常大 计算机正在运行的程序存放在RAM 内存 里 RAM是与CPU进行沟通的桥梁 计算机中所
  • 使用Requests库来进行爬虫的详解

    Requests是用Python编写 基于urllib 采用Apache2 Licensed开源协议的HTTP库 它比urllib更方便 可以节约我们大量的工作 完全满足HTTP测试需求 安装 pip3 install requests 使
  • 【知识普及】神经网络架构搜索(Neural Architecture Search,NAS)

    文章目录 1 背景引入 2 网络架构搜索 NAS 2 1 NAS 搜索策略 2 1 1 基于强化学习 2 1 2 基于进化算法 2 1 3 基于梯度的方法 2 2 NAS 加速 2 2 1 层次化表示 2 2 2 权值共享 2 2 3 表现
  • 教你一招删除休眠文件hiberfil.sys节省大量C盘空间

    教你一招删除休眠文件hiberfil sys节省大量C盘空间首先分清SLEEP睡眠和HIBERNATE休眠两个概念 我们常用的是SLEEP功能 也就是电脑经过一定时间后 进入低功耗状态 工作态度保存在内存里 恢复时1 2秒就可以恢复原状态
  • 最新配置安装的centos7,解决xshell连接问题,安装docker

    配置初始的centos7 1 更新yum yum update y 2 安装vim yum install y vim 3 解决xshell连接显示警告 The remote SSH server rejected X11 forwardi
  • 用深度学习和CNN进行年龄识别

    DIP大作业 用深度学习和CNN进行年龄识别 基于深度学习的方法 基本步骤 深度学习方法 1 10 需求分析 系统设计 环境搭建 2 10 数据集及预处理 3 40 卷积神经网络模型设计 模型程序编写 模型训练 模型测试 4 30 实验结构
  • OpenWRT安装管理界面中文包

    如果刚刷的openwrt18点多的没有中文界面 用ssh连接路由后用opkg安装 root openWRT opkg install luci i18n base zh cn Unknown package luci i18n base z
  • 顺序栈——基础

    时间限制 1000ms 内存限制 256M 实验目的 编写代码 实现一个简单的顺序栈 实验要求 1 每个栈元素是一个union类型 例如 union unData 栈元素的数据类型为Union Union共用同一块存储空间 int d ch
  • 分布式任务 + 消息队列框架 go-queue

    为什么写这个库 应用场景有哪些 如何使用 总结 为什么要写这个库 在开始自研 go queue 之前 针对以下我们调研目前的开源队列方案 beanstalkd beanstalkd 有一些特殊好用功能 支持任务priority 延时 del
  • 文献学习-联合抽取C-Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombio

    论文信息 1 题目 Joint Extraction of Biomedical Entities and Relations based on Decomposition and Recombination Strategy 基于分解重组
  • QT 编码格式问题

    一 QT客户端与服务端通信 客户端先将数据进行序列化xml形式 然后利用SharpZipLib GZip Compress进行压缩 转换成Base64格式 源数据 Function GetSysTime IsMutipleReturn fa
  • 脑筋急转弯-3

    小明爱捉迷藏 却总被人找得到 为什么 答案 因为他总是喊着 我在这里 什么东西你越给它 它变得越短 答案 蜡烛 小华拿着空杯子站在雨中 为什么他的头发却没有湿 答案 因为小华是个雨伞销售员 他用雨伞遮住了头发 什么桥不能过 答案 音乐桥 因
  • spring cloud gateway集成sentinel并扩展支持restful api进行url粒度的流量治理

    sentinel集成网关支持restful接口进行url粒度的流量治理 前言 使用网关进行总体流量治理 sentinel版本 1 8 6 1 cloud gateway添加依赖 2 sentinel配置 3 网关类型项目配置 4 通过zk事
  • VUE之Vxe-table动态生成多级表头及后端返回数据的处理

    需求 1 第一列为正常列 2 第二列开始为动态生成列 根据接口返回数据生成 3 最后一列为编辑列 步骤 写入动态html模板
  • 接口响应优化方案

    最近收到客户反映系统卡顿严重 然后让他截图看了下 最长响应时长居然高达16s 其他3s 4s的接口一大堆 简直是恐怖 简单来说 这个耗时16s的接口其实是统计一张历史数据表里的数据 这张表大概有三百多万条数据 日增长1万左右 因为客户要求最
  • C++(10)——友元

    友元 采用类的机制后实现了数据的隐藏与封装 类的数据成员一般定义为私有成员 成员函数一般定义为公有的 依此提供类与外界间的通信接口 但是 有时需要定义一些函数 这些函数不是类的一部分 但又需要频繁地访问类的数据成员 这时可以将这些函数定义为
  • xss漏洞简单案例

    目录 一 function render input return input 二 function render input return input 编辑 三 function render input return 四 functio
  • 测试老鸟常用的自动化测试工具有哪些?

    目录 一 自动化测试工具的类型 二 自动化测试工具有哪些 1 Selenium 2 Appium 3 Jmeter 4 Postman 5 SoapUI 6 Monkey 7 Robot Framework 8 QTP 9 LoadRunn