8年经验之谈 —— Web ui自动化测试框架总结!

实施过了web系统的UI自动化,回顾梳理下,想到什么写什么,随时补充。 首先,自动化测试不是手动测试的替代品,是比较好的补充,而且不是占大比重的补充。 70%的测试工作集中在底层接口测试和单元测试,20%的测试工作为集成测试,其他10%的测试即为界面测试。开发方向:

  1. 尽可能的相通的模块,通用的封装
  2. 开发约定好,便于定位
  3. 适用兼容测试
  4. 无界面运行
  5. 快速定位问题:报错信息、错误截图
  6. 多环境

收益点

  1. 脚本开发时间和复用次数
  2. 快速验证,第一时间响应问题

还可以做哪些?

  1. 兼容性
  2. 多环境
  3. 便于快速定位
  4. 提炼更多通用模块。
  5. 调研更优解决方案,比如:cypress等
  6. case依赖优化
  7. 深度校验

什么样的项目适合web自动化

  1. 系统稳定,太多的阻止程序或更改。
  2. 准备之前,先手工测试,确认自动测试可以涵盖的系统功能。
  3. 需要多系统,多浏览器兼容性测试

什么样的功能点需要web自动化

  1. 主业务流程
  2. 易于实现自动化的web元素、页面
  3. 重复量大的功能
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

web自动化常见的验证点

  1. 页面元素验证
  2. 页面列表数据验证
  3. 页面元素属性?
  4. UI的文本,图片显示正确性
  5. UI的交互逻辑正确性测试
  6. UI上的用户行为正确性测试

对于web自动化框架常见的需求点

  1. 分布式执行,可以多机器,多浏览器同步执行脚本
  2. 适用于不同环境运行
  3. 分层设计,方便维护
  4. 生成测试报告
  5. 模块的复用
  6. 必要的日志搜集

UI自动化收益点的采集

  1. 回归测试需要定期运行,在自动化时,它们可以节省测试人员的时间,我们可以更专注于其他场景和探索性测试。
  2. 脚本开发时间和复用次数
  3. 误报频率

UI自动化缺点or局限

  1. 不能快速反馈(相对于单元测试和API测试)
  2. 只会对于case已确定的内容进行校验
  3. 运行的稳定性
  4. 发现的错误不多,大多数错误似乎是通过“意外”或进行探索性测试而发现的。这可能是因为在每个探索性测试会话期间,我们可能以不同的方式测试应用程序,从而通过应用程序找到新的漏洞。
  5. 编写优秀且稳定的XPath / CSS定位器所花费的时间,并在底层HTML标记发生变化时更新它们。
  6. UI本身的变化性,要想达到和手工测试相同的覆盖率,投入比较大。

如何进行CI(Continuous Integration),也就是持续集成 ● 持续提交代码 (Check-in)

○ 一天之中多次提交

● 持续构建代码 (Build)

○ 保证在任何时刻代码是可以继续开发的

● 持续部署代码 (Deploy)

○ 保证始终有一个可以部署的版本

● 持续测试代码 (Test)

○ 每次提交均执行单元测试

○ 每天一次或数次集成测试

○ 每天一次或数次系统测试 复制代码 不过,高频的集成,还是用接口更加合适,后面的工作会把系统的交互接口自动化,届时分享。

今天的分享就到此结束了,大家还有什么不懂的可以评论区下提问哈,如果我的文章对你有所帮助的话,可以点赞三联支持一下哈

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

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

相关文章

CSS之排列系列--顶部导航栏ul、li居中展示的方法

原文网址:CSS之排列系列--顶部导航栏ul、li居中展示的方法_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍CSS顶部导航栏ul、li居中展示的方法。 核心方法 ul的父层使用:text-align: center ul元素使用:display: inline-block; 示例 …

外卖跑腿系统的关键功能和技术要点

1. 用户注册和登录 首先,用户需要能够注册新账户并登录。以下是使用Python和Django框架的代码示例,展示如何创建用户注册和登录功能。 # Django视图代码 from django.contrib.auth import login, authenticate from django.contrib.auth.forms import…

10.12按键中断

设置按键中断,按键1按下,LED亮,再按一次,灭 按键2按下,蜂鸣器响。再按一次,不响 按键3按下,风扇转,再按一次,风扇停 keyit.h: #ifndef __KEYIT_H__ #define __KEYIT_…

选实验室超声波清洗机易忽视的内容?小型清洗机的优点有?

实验室超声波清洗机如今在行业内占据着重要的一席之地,摒弃了传统模式,坚持以超声波为主的清洗方式,在市场中获得的反响强烈。服务好,有诚信的实验室超声波清洗机能够消除客户的后顾之忧,工作人员会以真诚态度向客户提…

ubuntu|23 安装Gnome主题

ubuntu23 安装主题 进入网站选择需要的主题 https://www.opendesktop.org/s/Gnome/p/1357889 1 资源下载 经常加载不出来, 这里直接进入github下载源码 下载zip 2 安装主题 根据文档提示, 执行install.sh就能安装 3 切换主题 安装 tweak工具 sudo …

sql server判断两个集合字符串是否存在交集

sql server判断字符串A101;A102和字符串A102;A103是否存在交集 我们编写两个函数: 1)函数fn_split将字符串拆分成集合 create function [dbo].[fn_split](inputstr varchar(8000), seprator varchar(10)) returns temp table (Result varchar(200)) a…

【Python学习笔记】类型/运算/变量/注释

前言 人生苦短,追求生产力,做一只时代风口的猪,应该学python Python语言中,所有的数据都被称之为对象。 1. 对象类型 Python语言中,常用的数据类型有: 整数, 比如 3 小数(也叫浮…

qt中json类

目录 QJsonValue QJsonObject QJsonArray QJsonDocument 案例: Qt 5.0开始提供了对Json的支持,我们可以直接使用Qt提供的Json类进行数据的组织和解析,下面介绍4个常用的类。 QJsonValue 该类封装了JSON支持的数据类型。 布尔类型&#xf…

云原生Kubernetes:K8S集群版本升级(v1.20.15 - v1.22.14)

目录 一、理论 1.K8S集群升级 2.集群概况 3.升级集群(v1.21.14) 4.验证集群(v1.21.14) 5.升级集群(v1.22.14) 6.验证集群 (v1.22.14) 二、实验 1.升级集群(v1.21.14) 2.验…

Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习

学习RLAIF论文前,可以先学习一下基于人类反馈的强化学习RLHF,相关的微调方法(比如强化学习系列RLHF、RRHF、RLTF、RRTF)的论文、数据集、代码等汇总都可以参考GitHub项目:GitHub - eosphoros-ai/Awesome-Text2SQL: Cur…

软件测试之概念篇(需求,测试用例,BUG描述,产品的生命周期)

目录 1.什么是需求 2.什么是测试用例 3.什么是BUG 4.软件的生命周期 5.测试的生命周期 1.什么是需求 在大多数软件公司,一般会有两部分需求: 用户需求:可以理解为就是甲方提出需求,如果没有甲方,那么就是终端用…

Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0

今天打包springboot项目的时候报错&#xff1a; Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0 最后通过如下方法解决&#xff1a; 在pom.xml中加入如下依赖&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupI…

推荐一个拥有386万订阅者,10000多免费学习视频的频道

自从开始搞YouTube中文配音以来&#xff0c;我们一直是7*24小时&#xff0c;夜以继日的在批量处理一些优质的学习资源&#xff0c;一方面是翻译&#xff0c;另一方面是配音。这样用户在打开的时候&#xff0c;就能获得经过我们优化的翻译和配音了。 这次我们刚刚处理完一个油管…

面试题补充

1.公司有几套环境&#xff1a;测试环境&#xff08;测试人员使用&#xff09;&#xff0c;开发环境&#xff08;开发人员使用&#xff09;&#xff0c;预生产环境&#xff08;测试人员使用&#xff09;&#xff0c;生产环境&#xff08;用户使用&#xff09; 2.作为一名测试&a…

Godot 单元测试

前言 单元测试是我们常用的功能&#xff0c;Godot作为一个游戏&#xff0c;单元测试和热重载是我们常用的功能。这里我们讲解最简单的单元测试的情况。 Godot 配置 我们添加一个最简单的节点&#xff0c;挂载一个最简单的脚本。 添加测试方法&#xff08;只能是静态方法&…

STM32 多功能按键中断

key1 开关实现led1亮灭,key2开关实现蜂鸣器开关,key3开关实现风扇开关 main.c #include "uart.h" #include "key_it.h" #include "led.h" int main() {char c;char *s;uart4_init();//串口初始化all_led_init();key_it_config();fengshan_init…

oracle 与mysql兼容日期(格式:YYYY年MM月DD日)

日期类型&#xff1a;date 查询sql&#xff1a; select concat(concat(concat(to_char(END_DATE,YYYY),年),concat(to_char(END_DATE,MM),月)),concat(to_char(END_DATE,DD),日)) AS dateInfo from test显示结果&#xff1a;

Unity中Shader的光照衰减

文章目录 前言一、衰减原理1、使用一张黑白渐变贴图用于纹理采样2、把模型从世界坐标转化为灯光坐标&#xff08;即以灯光为原点的坐标系&#xff09;3、用转化后的模型坐标&#xff0c;对黑白渐变纹理进行纹理采样4、最后&#xff0c;把采样后的结果与光照模型公式的结果相乘输…

论文阅读》用语义解耦改进共情对话生成 2022 IJCKG

《论文阅读》用语义解耦改进共情对话生成 前言简介相关知识对抗学习模型架构Semantics DecouplerEmpathetic Generator损失函数前言 论文阅读不迷路! 今天为大家带来的是《Improving Empathetic Dialogue Generation with Semantics Decoupling》 出版:IJCKG(International…

AI 律助 Alpha GPT 线上实操发布会,重磅发布!

数字化时代,随着人工智能的迅猛发展,各行各业都在积极探索通过智能化工具实现工作效率翻升的可能性。“ ChatGPT 类产品”是未来办公应用软件发展的重要趋势之一,但如何将 ChatGPT 真正应用于法律人的工作,赋能效率提升?法律行业同样面临着新的挑战和机遇。 破局的关键是实现技…