19 真实的战场:如何在大型项目中涉及GUI自动化测试策略

news2024/11/16 12:30:25

大型全球化电商网站 GUI 测试的策略设计

组件 -> 模块 -> 端到端

        1) 首先,要从前端组件的级别来保证质量,也就是需要对那些自定义开发的组件进行完整全面的测试。通常前端组件会基于 Jest 做比较严格的单元测试

        Jest 是由 Facebook 发布的,是一个基于 Jasmine 的开源 JavaScript 单元测试框架,是目前主流的 JavaScript 单元测试方案。

        完成单元测试后,往往还会基于被测控件构建专用的测试页面,在页面层面再次验证控件相关的功能和状态。这部分测试工作也需要采用自动化的形式实现,具体的做法是:

  •         先构建一个空页面,并加入被测控件,由此可以构建出一个包含被测控件的测试页面,这个页面往往被称为 Dummy Page;
  •         从黑盒的角度出发,在这个测试页面上通过手工和自动化的方式操作被测控件,并验证其功能的正确性。

        2) 其次,每一个前端模块,都会构建自己的页面对象库,并且在此基础上封装开发自己的业务流程脚本。这些业务流程的脚本,可以组装成每个前端模块的测试用例。

        以用户管理模块为例,测试用例的组装过程如下:

  •         首先,把用户管理模块中涉及到的所有页面,比如登录页面、用户注册页面等,按照页面对象模型的要求写成 Page 类;
  •         然后,利用这些 Page 类封装业务流程脚本,比如用户登录流程,用户注册流程等;
  •         最后,在 GUI 测试用例脚本中,调用封装好的业务流程脚本构成该模块的 GUI 测试用例。

        自动化测试用例的原则,通常是:优先选取业务关键路径以及 Happy Path 作为自动化测试的范围。在资源充裕的情况下,我们希望这个阶段的自动化率可以达到 70%-80%。

        3)最后,把各个前端模块组合在一起之后,站在终端用户的视角以黑盒的方式使用网站的端到端的测试。端到端的测试应该尽可能多地重用各个模块的页面对象库和业务流程脚本来完成。

  •         一部分是,通过探索式测试的方法手工执行测试,目标是尽可能多地发现新问题;
  •         另一部分是,通过 GUI 自动化测试执行基本业务功能的回归测试,保证网站核心业务相关的所有功能的正确性。

脚本管理

         将各个模块的页面对象和业务流程脚本放在各自的代码库中,并引入页面对象和业务流程脚本的版本管理机制,通常采用页面对象和业务流程脚本的版本号和开发版本号保持一致的方案。

        具体在测试项目中,模块版本的依赖往往是用 POM 来配置的,如图 2 展示了一个典型测试项目的 POM 文件中的版本依赖关系,其中引用了两个模块,appcommon 模块对应的就是上文提到的“公共组件库”,而 app.buy 对应的就是具体依赖的前端模块。

 

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

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

相关文章

内网渗透神器CobaltStrike之Profile文件编写(十)

简介 在网络渗透测试和红队模拟攻击中,隐藏命令与控制(C2)流量的特征对于成功绕过入侵检测系统至关重要。Cobalt Strike提供了一个强大的工具——Malleable C2 profiles,用于自定义C2流量,从而使其看起来像正常的网络…

docker搭建opengrok环境2

引言: 虚拟机关闭后重新开启,理论上是需要重新启动一下docker的,以重新启动其中的服务。 命令基础: docker images:查看docker中现有的镜像 docker container ls -all:查看docker中目前在运行的containe…

Centos7 交叉编译QT5.9.9源码 AArch64架构

环境准备 centos7 镜像 下载地址:http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/ aarch64交叉编译链 下载地址:https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/ QT5.9.9源代码 下载地址&#xff1…

现货白银投资什么的?

也许很多投资者听说过现货白银,但并不知道它投资的是什么,过程中是如何进行买卖的,也不知道如果参与其中,自己需要承担什么风险,最终的收益会如何。对于上述的这些问题本文,将为大家简单地介绍一下。 虽然现…

Linux文件类型

注意: 硬链接,与软链接相似,但不是特殊的文件类型。 只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当 移动或者删除原始文件时,硬链接不 会被破坏,因为它…

基于JJWT理解JWT,JWS,JWE

JWT , 全写JSON Web Token, 是开放的行业标准RFC7591,用来实现端到端安全验证. 从开发者理解的角度来说: JWT 是一个定义传递信息的标准JWT 的Token是一个Base64编码的字符串, 类似 eyJhbGciOiJIUzI1NyJ9.eyJzdWIiOiJvc2NhciJ9.…

Vue下载及配置(Vue文件和路由文件)

目录 Vue文件2.7.14版本: Vue路由: 结束: Vue文件2.7.14版本: Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有兼容ECMAScript5的浏览器 Vue文件下载地址:安…

openLayers实战(九):正多边形的绘制

最近在绘制各种图形,越来越乱,看了很多文章,启发了从最最基础的图形开始学习扩展。 遇到什么样的问题? import ol from "ol"; import { Draw } from "ol/interaction"; import { Vector as VectorSource } f…

帆软报表开发-快速入门

帆软学习:帆软学院-培养企业亟需的数据人才 第一章 初识FineReport 1、初识FineReport 1.1、FineReport 是什么? FineReport 是一款简单、高效、智能的报表工具,用以快速搭建的企业级Web报表平台。 FineReport 报表主要功能介绍 ① 主要…

Ubuntu 20.04使用Livox mid 360 测试 FAST_LIO

前言 Livox mid360需要使用Livox-SDK2,而非Livox-SDK,以及对应的livox_ros_driver2 。并需要修改FAST_LIO中部分代码。 1. 安装Livox-SDK2 参考官方教程。 1.1. 安装CMake sudo apt install cmake1.2. 安装编译Livox-SDK2 git clone https://github…

BDA初级分析——可视化图形

一、时间趋势 时间趋势要如何呈现? Excel函数补充 YEAR:提取日期中的年份MONTH:提取日期中的月份DAY:提取日期中的天HOUR:提取时间中的小时 TEXT:将数值转换为按指定数字格式表示的函数 写法&#xff1…

关于lattice planner

使用编程创建驾驶场景。 1.使用Driving scenario Designer 交互方式创建驾驶场景 2.导出matalb function 3.修正这个函数,创建原始场景的变体。 4.调用这个函数,生成drivingScenario object。 5.在simulink中仿真,导入这个objcet &…

无涯教程-PHP - File 函数

文件系统功能用于访问和操纵文件系统&#xff0c;PHP为您提供了操纵文件的所有功能。 运行时配置 这些功能的行为受php.ini中的设置影响。 NameDefaultChangeableChangelogallow_url_fopen"1"PHP_INI_ALLPHP_INI_ALL in PHP < 4.3.4. PHP_INI_SYSTEM in PHP &l…

网络编程(IO模型)

一、阻塞IO 1.最常用&#xff0c;最简单&#xff0c;效率最低的。 2.创建套接字文件描述符后&#xff0c;默认处于阻塞IO模式; 3.read, write, recv, send, recvfrom ,sendto&#xff0c;accept 二. 非阻塞IO 1.防止进程阻塞在IO函数上&#xff0c;但是如果想要获取到有效…

WebRTC音视频通话-iOS端调用ossrs直播拉流

WebRTC音视频通话-iOS端调用ossrs直播拉流 之前实现iOS端调用ossrs服务&#xff0c;文中提到了推流。没有写拉流流程&#xff0c;所以会用到文中的WebRTCClient。请详细查看&#xff1a;https://blog.csdn.net/gloryFlow/article/details/132257196 一、iOS播放端拉流效果 二…

A*算法图文详解

基本概念 A*算法最早于1964年在IEEE Transactions on Systems Science and Cybernetics中的论文《A Formal Basis for the Heuristic Determination of Minimum Cost Paths》中首次提出。其属于一种经典的启发式搜索方法&#xff0c;所谓启发式搜索&#xff0c;就在于当前搜索…

【校招VIP】测试计划之H5测试

考点介绍&#xff1a; H5即HTML的第5个版本&#xff0c;是一种高级的网页技术&#xff0c;可以理解为一个网页。使用原生制作APP&#xff0c;即在基于目前的智能手机的操作系统&#xff08;Android、iOS、Windows phone&#xff09;的基础上&#xff0c;使用相应平台支持的开发…

五金实体店:如何快速开发做出自己的小程序商城?

现如今&#xff0c;小程序已经成为了各行各业的发展趋势&#xff0c;对于五金实体店而言&#xff0c;开发一个自己的小程序商城能够帮助实现线上线下融合&#xff0c;扩大销售渠道&#xff0c;提升品牌影响力。下面就让我们来了解如何快速开发一个小程序商城吧。 首先&#xff…

[赛博昆仑] 腾讯QQ_PC端,逻辑漏洞导致RCE漏洞

简介 !! 内容仅供学习,请不要进行非法网络活动,网络不是法外之地!! 赛博昆仑是国内一家较为知名的网络安全公司&#xff0c;该公司今日报告称 Windows 版腾讯 QQ 桌面客户端出现高危安全漏洞&#xff0c;据称“黑客利用难度极低、危害较大”&#xff0c;腾讯刚刚已经紧急发布…