浅谈UI自动化测试

为了让对自动化技术感兴趣的朋友们有真实案例的支持,今天我们给大家带来一期适合新手的UI自动化测试介绍。我们的目标是让大家能够轻松理解UI自动化测试的概念,并且能够亲自动手去实践。通过这个介绍,大家能够对UI自动化测试有一个整体的理解,并且能够自己动手去做。

项目的选取:

虽然UI自动化测试对于项目有严格的要求,但总会有一些项目或模块的功能异常稳定,非常适合纳入UI自动化测试的待办列表中。

要构建一个系统而全面的UI自动化测试体系,我们需要选择符合以下条件的项目:

功能稳定性:项目具备相对稳定的功能,经过验证和测试的模块适合进行UI自动化测试。

高重复性:项目中存在需要频繁执行的任务或操作,这些任务适合通过UI自动化测试来实现自动化执行,提高效率和准确性。

频繁变更的模块:项目中存在需要频繁变更的模块,通过UI自动化测试可以快速捕捉到可能引入的问题和缺陷,及时进行修复和验证。

时间和资源可行性:项目具备足够的时间和资源来进行UI自动化测试的开发、维护和执行。

ROI回报率高:项目中的UI自动化测试能够为团队带来明显的回报和价值,提高测试效率、减少人力成本或降低错误率等。

通过谨慎选择满足以上条件的项目进行UI自动化测试,可以建立起一个稳健而全面的UI自动化测试体系,提高整体测试效率和质量。

UI自动化用例设计原则:

自动化测试用例通常只实现核心业务流程或重复执行率较高的功能(因为UI自动化主要用于回归测试)。

自动化测试用例的选择主要侧重于验证“正向”逻辑(因为UI自动化主要用于验证主要功能和主要流程)。

并非所有手工用例都适合使用自动化测试执行(实话实说,有些功能点手工执行效率

更高,且高出许多,因为自动化的前置条件繁琐)。

尽量减少用例脚本之间的依赖(减少耦合将提高脚本的稳定性,每个方法都应该独立可执行)。

自动化测试用例执行完毕后,通常需要回归到原点(这是为了重复利用我们的脚本,重复执行的前提是无需人工调整。例如,对于查询列表功能,确保搜索框能正确搜索到对应内容的前提是列表数据的稳定性)。

以上原则是构建稳定UI自动化测试框架的关键要素。

测试方法的选择:

在UI自动化测试领域,有多种选择可供测试人员使用。一个选择是自行编写代码和构建测试框架,以创建自定义的测试用例。另一个选择是使用开源工具来进行测试。当然,自动化测试的终极目标是实现平台化,测试人员的进阶也是朝着测试开发的方向发展,就像开发JMeter这样的测试工具一样。

在选择测试方法时,应根据个人条件进行权衡。如果你具备编码能力,可以尝试自行编写测试代码和框架;如果没有相关技能,建议使用现有的测试工具。如今,测试工具的发展非常成熟,大厂的自动化测试平台也非常完善。此外,市场上还有许多与大厂自研产品不相上下的测试工具,其中就包括我们今天要介绍的测试工具:RunnerGo,一款开源的全栈测试平台。

RunnerGo怎么做UI自动化

RunnerGo支持自己创建测试用例,也支持通过录制器录制脚本导入创建:

首先需要进入官网,RunnerGo支持开源,可以自行下载安装,也可以点击右上角体验企业版按钮快速体验

通过录制器录制脚本

下载录制器

点击RunnerGo上方插件按钮下载录制器

录制器使用

将插件文件拖入浏览器扩展程序

点击打开录制器,在浏览器中进行操作时录制器会将操作录制为一个JSON文件。

可以在录制器中下载、开始、暂停、清除当前录制,点击下载后配置文件名可生成录制文件。

录制脚本

在浏览器操作时,录制器内展示操作日志,这里我们录制一个百度搜索RunnerGo,打开RunnerGo官网的脚本。录制完成后下载脚本

调试场景

在RunnerGo中创建测试场景,上传录制好的JSON文件

导入文件后展示如下图,点击调试场景即可开始调试~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux C | I/O模型】Unix / Linux系统的5种IO模型 | 图文详解

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

2016年苏州大学837复试机试C/C++

2016年苏州大学复试机试 第一题 题目 公鸡5元一只,母鸡3元一只,幼鸡1元3只。若100元钱买了100只鸡,问其中公鸡、母鸡、幼鸡各多少只? 博主注:此题经典百元买百鸡问题,出自:公元5世纪末&#…

模拟钉钉官网动画

实现思路:利用粘性定位sticky,以及滚动事件实现。首先我们应该设置滚动动画开始位置和结束位置 ,然后根据位置计算透明度或者transform,scale的值。 首先根据上述图线计算属性值,代码如下: function creat…

PHP漏洞查询

CVE - Search CVE List (mitre.org) 美国国家漏洞数据库(需要梯子) NATIONAL VULNERABILITY DATABASE NVD - Search and Statistics (nist.gov) 基本都能查询到,传结果详情页里面会有一些解决方案的连接 PHP的官方网站 PHP :: Bugs :: Se…

C语言探索:水仙花数的奥秘与计算

摘要: 水仙花数,一种特殊的三位数,其各位数字的立方和等于该数本身。本文将详细介绍水仙花数的定义、性质,以及如何使用C语言来寻找100至999范围内的水仙花数。 目录 一、水仙花数的定义与性质 二、用C语言寻找100至999范围内的…

Camunda 流程引擎API介绍

💖专栏简介 ✔️本专栏将从Camunda(卡蒙达) 7中的关键概念到实现中国式工作流相关功能。 ✔️文章中只包含演示核心代码及测试数据,完整代码可查看作者的开源项目snail-camunda ✔️请给snail-camunda 点颗星吧😘 💖Services …

病历管理系统

技术架构: StrutsSpringHibernate 有需要该项目的小伙伴可以私信我你的Q。 功能描述: 企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量,促进医学科研、教学;减轻各类事务性工作的劳动强度,使他们…

LCR 193. 二叉搜索树的最近公共祖先

解题思路&#xff1a; 小的在左子树&#xff0c;大的在右子树。 class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root.val<p.val&&root.val<q.val)return lowestCommonAncestor(root.right,p,q);if(root.va…

深度揭秘:代理IP的工作原理及其在网络安全中的关键角色

代理IP的工作原理及其在网络安全中的关键角色是一个相对复杂但非常重要的主题。以下是对这一内容的深度揭秘&#xff1a; 代理IP的工作原理 1. 请求转发 当一个客户端&#xff08;如浏览器或爬虫程序&#xff09;使用代理IP时&#xff0c;它不是直接与目标网站通信&#xff0c…

2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码

2024美国大学生数学建模E题财产保险的可持续模型详解思路具体代码 前言 很快啊&#xff01;啪的一下拿到题目就开始做题&#xff01;简单介绍一下我自己&#xff1a;博主专注建模五年&#xff0c;参与过大大小小数十来次数学建模&#xff0c;理解各类模型原理以及每种模型的建…

Linux网络编程 基础

OSI七层模型 物理层&#xff1a;主要定义物理设备标准&#xff0c;如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流&#xff08;就是由1、0转化为电流强弱来进行传输&#xff0c;到达目的地后再转化为1、0&#xff0c;也就是我们常说的…

微信公众号公函公证书怎么弄?

公众号迁移有什么作用&#xff1f;只能变更主体吗&#xff1f;公众号迁移的作用可不止是变更主体哦&#xff01;有时候我们可能需要更换账号主体&#xff0c;但公众号是不支持直接变更的。这时候&#xff0c;我们就可以通过账号迁移功能&#xff0c;把 A 公众号的粉丝、违规记录…

C++中的字符串翻转算法解析

个人主页&#xff1a;[PingdiGuo_guo] 收录专栏&#xff1a;[C干货专栏] 大家好&#xff0c;今天我们来学一下C里的一个知识&#xff1a;字符串翻转。 目录 1.题目 描述 输入描述 输出描述 输入数据 1 输出数据 1 提示 2.解决题目 1.所需知识点 2.算法分析 1. 拼接…

演讲回顾:如何为大规模研发团队加速CI构建,实现高效流水线

近日&#xff0c;龙智联合Atlassian举办的DevSecOps研讨会年终专场”趋势展望与实战探讨&#xff1a;如何打好DevOps基础、赋能创新”在上海圆满落幕。龙智Atlassian技术与顾问咨询团队&#xff0c;以及清晖、JamaSoftware、CloudBees等生态伙伴的嘉宾发表了主题演讲&#xff0…

LLM App SDK:LangChain vs. LlamaIndex

在Why RAG is big中&#xff0c;我表示支持检索增强生成&#xff08;RAG&#xff09;作为私有、离线、去中心化 LLM 应用程序的关键技术。 当你建造一些东西供自己使用时&#xff0c;你就是在孤军奋战。 你可以从头开始构建&#xff0c;但在现有框架上构建会更有效。 NSDT工具推…

Java多线程--避免同步机制带来的死锁问题及用Lock锁解决线程安全问题

文章目录 一、死锁&#xff08;1&#xff09;说明&#xff08;2&#xff09;案例1、案例12、案例23、案例3 &#xff08;3&#xff09;诱发死锁的原因及解决方案1、诱发死锁的原因2、避免死锁 二、JDK5.0新特性&#xff1a;Lock(锁)&#xff08;1&#xff09;介绍&#xff08;2…

小白水平理解面试经典题目_数组类LeetCode 118 Pascal‘s Triangle【回归解法】

LeetCode 118 生成杨辉三角&#xff08;Pascal’s Triangle&#xff09; 小白渣翻译 给定一个非负整数 numRows&#xff0c;生成杨辉三角的前 numRows 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 例子 这里是小白理解 那么这种题目一上来看&#xf…

4-树-合并两个有序链表

这是树的第4篇算法&#xff0c;力扣链接。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#xf…

Linux下gcc的使用与程序的翻译

gcc和程序的翻译过程 gcc介绍程序的翻译过程预编译编译汇编链接 命令行式宏定义 gcc介绍 gcc是一款编译C语言编译器&#xff0c;可以把我们用vim写的代码编译成可执行程序。编译C用g进行编译&#xff0c;C的文件后缀是test.cc或test.cpp或test.cxx 如果要安装g就执行以下命令 …

C# winform 多语言(json)方式实现

前后对比 使用nuget json工具包1.总体思路 创建对应的json字典对照表 { "测试":"Test", "语言":"Language", "设置":"Set", "中文(默认)":"Chinese (default)", "英文":"E…