洞见UI自动化测试

随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。自动化测试包括三个方面:UI前端界面,Service服务契约和Unit底层单元如下图:

越是底层的测试,运行速度越快,时间开销越少,金钱开销越少

越是顶层的测试,运行速度越慢,时间开销越多,金钱开销越多

01.UI自动化测试是什么

UI自动化测试是一种利用自动化工具和脚本来模拟和执行用户与应用程序之间交互操作的方法,以验证应用程序在不同环境和场景下的用户界面的正确性和稳定性。

通过UI自动化测试,可以自动执行各种UI操作,如按钮点击、表单填写和文本验证等。

02.哪些场景需要使用UI自动化测试

已经比较成熟的项目,暂无任何大的改动需求的项目。

人工执行耗时长,流程繁琐的项目。

单纯的数据校验,列表功能校验。

项目核心服务需要频繁回归、验证。

03.UI自动化测试的利与弊

利处:快捷、方便、无须手工操作

回归测试可以不需人工执行,等脚本执行完之后查看脚本测试报告和截图,成功失败一目了然,然后测试人员可以把注意力放在了当前迭代的需求中。

开发提测前都需要进行自测,他们可以在电脑上配置好UI自动化测试的环境后,利用工具自己执行进行自测。

测试流程可以接入Devops流程。

弊端:脚本编写成本高、测试脚本开发时间长、需要长期维护

测试人员要懂代码,对系统熟悉程度高,懂得一些编程的规范。

测试脚本基于测试场景,复杂的场景开发时间较长。

页面元素变动时需要维护脚本。

04.更好的解决方案

Runner Go web UI自动化测试基于Playwright框架构建,测试团队无需复杂的代码编写即可开展低代码的自动化测试。

可视化的测试平台则不需要测试人员有太高的代码水平,且在维护用例更新测试脚本时更加方便。

下图为RunnerGo UI自动化测试可视化图形页面

下图为代码实现 UI自动化测试

相比之下,使用可视化工具进行UI自动化测试更为高效。代码实现的方式对于代码的维护和修改也相对困难,需要深入了解代码的逻辑和结构。

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

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

相关文章

【零参考GAN:Pansharpening】

ZeRGAN: Zero-Reference GAN for Fusion of Multispectral and Panchromatic Images (用于多光谱和全色图像融合的零参考GAN) 本文提出了一种融合低空间分辨率多光谱(LR MS)和高空间分辨率全色(PAN)图像的新的全色锐化方法–零参考生成对抗网络(ZeRGAN…

(一)、ts 基础类型 及class类举例字符雨和实现vue的挂在#app

文章目录 前言环境执行依赖node.js一、基础数据类型二、任意类型三、接口和对象类型四、 数组类型五、函数重载六、类型断言断言联合类型交叉类型 七、内置对象-Promise基础对象DOM和BOMPromise ts化代码雨案例 八、Class类(派生类和抽象类)派生类 abstract抽象类 classClass简…

自定义SpringBoot启动图标

在SpringBoot项目的resources目录下创建banner.txt文件 在https://www.bootschool.net/网站上复制Ascll艺术字(图)粘贴到banner.txt中保存。 启动项目就会加载 可以修改颜色,和版本号 ${application.version} 输出版本 ${spring-boot.v…

「软件设计师」 2023年上半年上午真题解析

「软件设计师」 2023年上半年上午真题解析 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 &…

8. 一文快速学懂常用工具——Linux命令(上)

本章讲解知识点 引言 指令学习 本专栏适合于软件开发刚入职的学生或人士,有一定的编程基础,帮助大家快速掌握工作中必会的工具和指令。本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。如专栏内容有错漏,欢迎在评论区指…

Debug技巧-不启用前端访问后端

在日常开发中,我们经常会遇到各种问题需要调试,前后端都启动需要耗费一定的时间和内存,方便起见,可以直接用抓包数据访问后端,这里我们需要用到Postman或者ApiFox 抓包数据 在系统前台触发后端请求,在控制…

MyBatis入门

MyBatis是一款优秀的持久层框架,用于简化JDBC开发 持久层: 负责将数据保存到数据库的那一层代码 我们会将操作数据库的Java代码作为持久层,而MyBatis就是对jdbc代码进行了封装。 JavaEE三层架构:表现层、业务层、持久层 框架&…

mysql之索引

一、索引的概念 1、索引:是一个排序的列表,列表当中存储的是索引的值和包含之值的数据所在行的物理地址 2、主要作用:快速查找,加快查询速度 3、索引的缺点:索引也占用额外的磁盘 (1)innodb…

Stable Diffusion WebUI扩展openpose-editor如何使用

先上地址: GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webuiOpenpose Editor for AUTOMATIC1111s stable-diffusion-webui - GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webu…

[SpringCloud | Linux] CentOS7 部署 SpringCloud 微服务

目录 一、环境准备 1、工具准备 2、虚拟机环境 3、Docker 环境 二、项目准备 1、配置各个模块(微服务)的 Dockerfile 2、配置 docker-compose.yml 文件 3、Maven 打包 4、文件整合并传输 三、微服务部署 1、部署至 Docker 2、访问微服务 四…

nacos在linux中的安装、集群的配置、mysql生产配置

1.下载和安装 官方下载地址:https://github.com/alibaba/nacos/releases,根据自己需要的本版去下载就行 下载的是 .tar.gz 后缀的文件是linux版本的 使用tar命令解压,完成之后是一个nacos的文件夹 和windows下的文件夹目录是一样的 要启…

MICCAI2023论文多模态论文速读-1

文章目录 1.Attentive Deep Canonical Correlation Analysis for Diagnosing Alzheimer’s Disease Using Multimodal Imaging Genetics2.Bidirectional Mapping with Contrastive Learning on Multimodal Neuroimaging Data3.CoLa-Diff: Conditional Latent Diffusion Model f…

【算法练习Day35】01背包问题分割等和子集

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 01背包问题分割等和子集总结…

Proteus仿真--基于51单片机的按键控制LED仿真(仿真文件+程序)

本文主要介绍基于51单片机的按键控制LED仿真(完整仿真源文件及代码见文末链接) 本仿真文件主要涉及4个按键,其中: K1按键的逻辑是——逐个点亮 K2按键的逻辑是——上四个点亮 K3按键的逻辑是——下四个点亮 K4按键的逻辑是——关…

HarmonyOS鸿蒙原生应用开发设计- 元服务(原子化服务)图标

HarmonyOS设计文档中,为大家提供了独特的元服务图标,开发者可以根据需要直接引用。 开发者直接使用官方提供的元服务图标内容,既可以符合HarmonyOS原生应用的开发上架运营规范,又可以防止使用别人的元服务图标侵权意外情况等&…

Http代理与socks5代理有何区别?如何选择?(一)

了解SOCKS和HTTP代理之间的区别对于优化您的在线活动至关重要,无论您是技术娴熟的个人、现代互联网用户还是企业所有者。在使用代理IP时,您需要先了解这两种协议之间的不同。 一、了解HTTP代理 HTTP(超文本传输协议)代理专门设计…

【Java 进阶篇】Java中的响应输出字节数据

在Java Web应用程序开发中,处理响应是一个常见的任务。有时,您可能需要向客户端发送字节数据,而不仅仅是文本或HTML内容。这可以用于传输各种内容,如图像、文件、视频等。本文将详细介绍如何在Java中使用Response对象输出字节数据…

在 Typescript 项目中使用 cdn 加载的js插件没有类型声明

先上一段同事写得代码, 此处动态的插入了 MathJax 这个 js 插件, 我不知道为什么如此编写, //ts-ignore 此处不知道为什么如此调用, 只能使用 ts-ignore 忽略dynamicLoadingJs("//xxx.com/latex/MathJax.js?configTeX-AMS_HTML", () > {MathJax.Hub.Config({exte…

[Docker]四.Docker部署nodejs项目,部署Mysql,部署Redis,部署Mongodb

一.部署nodejs项目,映射端口,挂载数据卷 可以到https://hub.docker.com/去搜索node镜像,然后下载,也可以直接通过docker pull node下载镜像,然后用这个node镜像启动容器node,这样系统就集成了node服务了,在这里挂载www/node目录到容器中,并指定端口映射,运行nodejs程序,安装npm…

【机器学习合集】模型设计之残差网络 ->(个人学习记录笔记)

文章目录 模型设计之残差网络1. 什么是残差结构1.1 网络加深遇到的优化问题1.2 short connect技术 2. 残差网络及有效性理解2.1 残差网络 3. 残差网络的发展3.1 密集残差网络3.2 更宽的残差网络(wide resnet)3.3 分组残差网络3.4 Dual Path Network3.5 加权残差网络3.6 预激活残…