前端精准测试实践

news2024/11/25 10:40:06

作者:京东云质量部

背景

随着前端技术发展,已经转变为数据绑定为主流的框架方式,与后端服务一样,前端代码实现也会涉及相互依赖,引用这些场景,那么应该如何准确的评估前端代码改动的影响范围?依赖开发评估?依靠经验评估?或者直接前端自动化全回归?手工测试全回归?显然以上的策略都不是最优策略,本文叙述了通过对前端代码进行静态分析,找到改动文件影响的功能范围,从实现了一种前端精准测试的思路。

如何进行精准分析

前端对外可直接感知的就是页面,最终目标是要确定影响哪个功能。整个前端精准测试划分为4步:

第一步,确定影响的页面。

第二步,确定影响的功能。

第三步,根据分析结果,找到对应的自动化用例集合,并触发运行

第四步,对比前端代码增量覆盖率,确认改动覆盖完成

前端页面与路由直接相关,从路由入手,建立路由与展示页面的关系,再依据入口文件的import关系,建立前端代码文件依赖树,再通过git diff对比找到改动的文件,从而反查到影响的前端页面。

精准分析实现

设计思路

解析路由文件,建立路由文件中每个菜单的依赖树,从而根据改动文件反查影响页面

 

实现逻辑

鉴于上述设计思路,结合目前技术支撑现状及快速实验的目标,开发了前端精准分析的第一版方案。

(路由文件分析暂时未找到规律,且实际场景中,路由文件变更不会频繁,维护成本不高,所以此步骤暂由人工维护)

 

关键逻辑:文件依赖树的分析及存储

 

 

应用

webhook自动触发分析

在代码平台上配置webhook触发分析接口,即可实现代码提交,自动触发分析

 

 

平台手动触发分析

 

规划

目前平台仅仅实现了前端精准测试4步中第一步的80%(路由与入口文件的关联还未实现自动分析),推荐仅仅到了页面级别,还未达到按钮级别,此处还需要再研究一下前端开发的相关技术,找到自动解析路由的方法。第二步计划尝试借助istanbul前端覆盖率工具,做一下增量覆盖率对比,保证手动回归可覆盖改动。

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

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

相关文章

2小时开发《点球射门游戏》,动画演示思路(上),代码已开源

唠两句 最近被疫情关在家,时间多运动少,真的很无聊呀!也许是天意为之,居然来世界杯了,虽然这届世界杯很「冷」,但是多少还是为无聊的我们增加了一些无聊的趣事,比如勇哥在等世界杯开幕式的过程…

关于影响编码效果的画质调优总结

1、背景: 调试一个新项目,要求视频帧率为20fps、码率1.5m下,和竞品机对比效果。发现动态场景下的效果比竞品机差距比较明显(做的是安防类的监控相机,比较关注视频的效果),比如对着运动的车流时…

红队隧道应用篇之Netsh端口转发(一)

简介 netsh是从Windows 2000开始就有的一个用于配置网络设备的命令行工具 其中netsh interface portproxy是一个配置网络代理的命令, 可以配置ipv4或ipv6的端口转发代理以及双向端口转发代理 学习隧道应用前必须了解的知识:https://blog.csdn.net/xf555er/article/details/1…

softmax回归从零开始实现

1. 引入Fashion-MNIST数据集 并设置数据迭代器的批量大小为256 import torch from IPython import display from d2l import torch as d2lbatch_size 256 # 每次随机读256张图片,返回训练集和测试集的迭代器 train_iter, test_iter d2l.load_data_fashion_mnist…

职场日常:测试人员如何快速熟悉新业务?

身处职场,学习新业务在所难免,尤其是测试人员,具备良好的业务知识是我们做好质量保障的前提,不管是职场「新人」还是「老人」,快速熟悉业务的能力都是不可或缺的,这是我们安身立命的根本。 但,…

【第一章 Linux目录结构,网络连接三种模式,vi和vim】

第一章 Linux目录结构,网络连接三种模式,vi和vim 1.Linux和Unix: ①Unix针对于大型,高性能主机或服务器; ②Linux适用于个人计算机。 2.网络连接的三种模式: ①桥接模式:虚拟系统可以和外部系…

[附源码]JAVA毕业设计师生交流平台(系统+LW)

[附源码]JAVA毕业设计师生交流平台(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术&…

一起用Go做一个小游戏(上)

引子最近偶然看到一个Go语言库,口号喊出“一个超级简单(dead simple)的2D游戏引擎”,好奇点开了它的官网。官网上已经有很多可以在线体验的小游戏了(利用WASM技术)。例如曾经风靡一时的2048:当然…

「Redis数据结构」列表对象(List)

「Redis数据结构」列表对象(List) 文章目录「Redis数据结构」列表对象(List)一、概述二、结构三、编码转换四、总结一、概述 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部&#xf…

(附源码)php丽江旅游服务网站系统 毕业设计 010149

php丽江旅游服务网站系统 摘 要 21世纪时信息化的时代,几乎任何一个行业都离不开计算机,将计算机运用于旅游服务管理也是十分常见的。过去使用手工的管理方式对旅游服务进行管理,造成了管理繁琐、难以维护等问题,如今使用计算机对…

APP自动化测试系列之Appium介绍及运行原理

在面试APP自动化时,有的面试官可能会问Appium的运行原理,以下介绍Appium运行原理。 一、Appium介绍 1.Appium概念 Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试。它使用WebDriver协议驱动IOS&#xf…

易基因|m6A去甲基化酶ALKBH5通过降低PHF20 mRNA甲基化抑制结直肠癌进展 | 肿瘤研究

易基因|m6A去甲基化酶ALKBH5通过降低PHF20 mRNA甲基化抑制结直肠癌进展 | 肿瘤研究 大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 2022年8月17日,北京大学人民医院胃肠外科申占龙教授课题组在《Clin Transl M…

(附源码)ssm物流公司员工管理系统 毕业设计 261625

基于ssm物流公司员工管理系统 摘 要 随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发…

LeetCode简单题之按身高排序

题目 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 示例 1&#xff1…

聚观早报 | 奈雪成乐乐茶第一大股东;达达与抖音达成战略合作

今日要闻:奈雪成乐乐茶第一大股东;达达与抖音达成战略合作;B 站启动新一轮降本增效;特斯拉上海工厂减产20%;大众将从中国向欧出口汽车奈雪成乐乐茶第一大股东 12 月 6 日消息,乐乐茶与奈雪的茶签署5.25亿元…

主成分分析-书后习题回顾总结

7-2 题目 理论基础 矩阵的特征值和特征向量的定义以及其求法 https://www.cnblogs.com/Peyton-Li/p/9772281.html 特征值和特征向量的定义:设AAA是nnn阶方阵,如果数λ\lambdaλ和nnn维非零列向量α\alphaα使关系式AαλαA\alpha\lambda\alphaAαλα成…

MyBatis一 Mybatis的介绍、基本使用、高级使用

一 数据库操作框架的历程 1.1 JDBC JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写…

【JDBC】----封装工具类和ORM

分享第二十二篇励志语录 有些烦恼是我们凭空虚构的,而我们却把它当成真实去承受。想得太多只会毁了你,让你陷入忐忑,让实际上本不糟糕的事情,变得糟糕。阳光这么好,何必自寻烦恼。 目录 分享第二十二篇励志语录 一&a…

毕业设计 stm32老人跌倒检测预防系统 - 单片机 物联网 嵌入式

文章目录0 前言1 整体设计2 硬件电路3 软件设计4 跌倒检测算法5 关键代码6 最后0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉…

linux常用命令二

1、find 查找文件或目录 find / -size 204800k //在根目录下查找大于200MB的文件 find / -user username//在根目录下查找所有者为username的文件 find / -name filename.txt //根据名称查找/目录下的filename.txt文件。 2、复制文件包括其子文件到自定目录 cp -r sourceF…