CN115048302A - 前端的兼容性测试方法及装置、存储介质、电子设备 - Google Patents
前端的兼容性测试方法及装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN115048302A CN115048302A CN202210675218.1A CN202210675218A CN115048302A CN 115048302 A CN115048302 A CN 115048302A CN 202210675218 A CN202210675218 A CN 202210675218A CN 115048302 A CN115048302 A CN 115048302A
- Authority
- CN
- China
- Prior art keywords
- difference
- test
- page
- compatibility
- target browser
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种前端的兼容性测试方法及装置、存储介质、电子设备。其中,涉及金融科技领域或其他相关领域,该方法包括:接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图;通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息;根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。本发明解决了相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
Description
技术领域
本发明涉及金融科技领域,具体而言,涉及一种前端的兼容性测试方法及装置、存储介质、电子设备。
背景技术
当前,大量的浏览器开始国产化,同时很多应用需要在浏览器上进行放置、下载,不同的应用为适应不同场景、市场,会不断进行更新、迭代,此时,应用进行浏览器转型升级时,需要进行大量的兼容性测试。兼容性测试作为前端测试工作的一部分,根据其本身风格的多变性、变更的频繁性以及环境的复杂性等特性,在相关技术中,较难形成具有较高泛化能力的统一处理方式。因此在现阶段,测试人员一般通过基础的人工手段进行前端兼容性测试。
当前的测试方式中,通过基础的人工手段进行的兼容性测试,需要耗费大量的人工成本,且人为因素对测试结果具有一定的干扰风险,简单且重复性高的测试工作使得整个测试阶段耗时长、效率低下。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种前端的兼容性测试方法及装置、存储介质、电子设备,以至少解决相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
根据本发明实施例的一个方面,提供了一种前端的兼容性测试方法,包括:接收对前端中运行的目标浏览器的测试请求,其中,所述测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;响应所述测试请求,在所述目标浏览器上运行所述测试脚本,并截取运行所述测试脚本过程出现的多张页面截图;通过预设图像识别技术,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息;根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果。
可选地,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息的步骤,包括:采用所述预设图像识别技术,分析每张所述页面截图与对应的所述参考图片之间的差异性指标,其中,所述差异性指标包括下述至少之一:图片之间的相似度、差异子区域数量;根据所述差异性指标和差异子区域位置,对出现差异的所述页面截图进行标注处理,得到所述差异标注信息。
可选地,根据所述差异性指标和差异子区域位置,对出现差异的所述页面截图进行标注处理的步骤,包括:在对所述页面截图和对应的所述参考图片进行灰度变换处理后,提取所述页面截图中的图像特征;分析所述页面截图中的图像特征与所述参考图片中的图像特征之间的特征差值;基于所述特征差值,通过二值化策略从多张所述页面截图和所述参考图片中提取关于目标物体的物体图像;对所述物体图像进行边缘化提取,确定所述物体图像的边缘点集;结合所述物体图像的边缘点集,绘制所述页面截图中与对应的所述参考图片之间的差异性,完成差异性标注。
可选地,根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果的步骤,包括:根据所述差异标注信息,获取所述页面截图与对应的所述参考图片之间的差异指标;将差异指标作为断言依据进行断言,得到断言结果;根据所述断言结果,确定所述兼容性测试结果。
可选地,在确定所述前端中运行的目标浏览器的兼容性测试结果之后,还包括:基于目标可视化模式,显示所述兼容性测试结果,其中,所述目标可视化模式包括以下其中之一:自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式。
可选地,在接收对前端中运行的目标浏览器的测试请求之前,还包括:监听在历史过程中对所述非目标浏览器的操作行为;在所述操作行为触发预设事件操作行为后,记录事件类型以及当前被操作的节点信息,其中,所述节点信息是指在所述非目标浏览器上被触发的页面节点链接信息。
可选地,前端的兼容性测试方法还包括:接收对前端中运行的目标浏览器的非资源类请求;响应所述非资源类请求,通过目标模拟技术,确定模拟请求;在所述目标浏览器的当前页面运行所述模拟请求。
根据本发明实施例的另一方面,还提供了一种前端的兼容性测试装置,包括:接收单元,用于接收对前端中运行的目标浏览器的测试请求,其中,所述测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;第一处理单元,用于响应所述测试请求,在所述目标浏览器上运行所述测试脚本,并截取运行所述测试脚本过程出现的多张页面截图;第二处理单元,用于通过预设图像识别技术,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息;确定单元,用于根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果。
可选地,第二处理单元,包括:分析子单元,用于采用所述预设图像识别技术,分析每张所述页面截图与对应的所述参考图片之间的差异性指标,其中,所述差异性指标包括下述至少之一:图片之间的相似度、差异子区域数量;处理子单元,用于根据所述差异性指标和差异子区域位置,对出现差异的所述页面截图进行标注处理,得到所述差异标注信息。
可选地,处理子单元包括:第一提取模块,用于在对所述页面截图和对应的所述参考图片进行灰度变换处理后,提取所述页面截图中的图像特征;分析模块,用于分析所述页面截图中的图像特征与所述参考图片中的图像特征之间的特征差值;第二提取模块,用于基于所述特征差值,通过二值化策略从多张所述页面截图和所述参考图片中提取关于目标物体的物体图像;确定模块,用于对所述物体图像进行边缘化提取,确定所述物体图像的边缘点集;处理模块,用于结合所述物体图像的边缘点集,绘制所述页面截图中与对应的所述参考图片之间的差异性,完成差异性标注。
可选地,第一确定单元包括:获取子单元,用于根据所述差异标注信息,获取所述页面截图与对应的所述参考图片之间的差异指标;断言子单元,用于将差异指标作为断言依据进行断言,得到断言结果;确定子单元,用于根据所述断言结果,确定所述兼容性测试结果。
可选地,前端的兼容性测试装置还包括:显示单元,用于在确定所述前端中运行的目标浏览器的兼容性测试结果之后,基于目标可视化模式,显示所述兼容性测试结果,其中,所述目标可视化模式包括以下其中之一:自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式。
可选地,前端的兼容性测试装置还包括:监听单元,用于在接收对前端中运行的目标浏览器的测试请求之前,监听在历史过程中对所述非目标浏览器的操作行为;在所述操作行为触发预设事件操作行为后,记录事件类型以及当前被操作的节点信息,其中,所述节点信息是指在所述非目标浏览器上被触发的页面节点链接信息。
可选地,前端的兼容性测试装置还包括:第二接收单元,用于接收对前端中运行的目标浏览器的非资源类请求;第二确定单元,用于响应所述非资源类请求,通过目标模拟技术,确定模拟请求;运行单元,用于在所述目标浏览器的当前页面运行所述模拟请求。
根据本发明的另一方法,还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述的前端的兼容性测试方法。
根据本发明的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的前端的兼容性测试方法。
在本发明中,首先接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片,然后响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图,之后通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息,最后根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。在本发明中,通过非目标浏览器执行预设操作行为获取测试脚本及参考图片,然后通过目标浏览器运行测试脚本得到多张页面截图,通过图像识别技术获取页面截图与参考图片的差异,得到兼容性测试结果,达到了避免采用人工手段对多个浏览器的前端进行兼容性测试的目的,从而实现了提高兼容性测试效率的技术效果,进而解决了相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的前端的兼容性测试方法的流程图;
图2是根据本发明实施例的一种可选的系统内部处理过程的流程图;
图3是根据本发明实施例的另一种可选的系统内部处理过程的流程图;
图4是根据本发明实施例的一种可选的前端的兼容性测试装置的示意图;
图5是根据本发明实施例的一种可选的前端的兼容性测试方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
兼容性:不同浏览器对前端页面渲染效果不一致问题。
断言:为了表示和验证软件开发者预期的结果的一种方式,当断言为真时,程序正常运行;断言为假时,程序终止执行,并给出错误信息。
WebDriver服务:在浏览器原生API(Application Program Interface,应用程序接口)的基础上进行封装,通过Http(Hyper Text Transfer Protocol,超文本传输协议)协议可以直接操作浏览器页面的节点元素或浏览器本身。
需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
本发明可以应用于金融机构的各种软件产品、控制系统、浏览器、客户端(包括但不限于:移动客户端、PC机等)系统的前端兼容性测试中,以浏览器进行示意性说明,通过测试浏览器前端的操作行为(包括但不限于:转账、理财、基金、缴费、查账、广告、推荐等操作),实现前端兼容性自动化测试。
本发明提供一种适合前端兼容性自动化测试的方法,为测试人员提供更加便利、精准的测试手段。本发明通过将图像识别技术作为断言依据以及通过浏览器的mock(前端虚拟接口)技术自动识别并模拟所有非资源类请求,有效解决测试覆盖不全面、人工成本高且效率低等技术问题。
下面结合各实施例来详细说明本发明。
实施例一
根据本发明实施例,提供了一种可选的前端的兼容性测试方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种可选的前端的兼容性测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S101,接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;
步骤S102,响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图;
步骤S103,通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息;
步骤S104,根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。
通过上述步骤,首先接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片,然后响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图,之后通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息,最后根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。在本实施例中,通过非目标浏览器执行预设操作行为获取测试脚本及参考图片,然后通过目标浏览器运行测试脚本得到多张页面截图,通过图像识别技术获取页面截图与参考图片的差异,得到兼容性测试结果,达到了避免采用人工手段对多个浏览器的前端进行兼容性测试的目的,从而实现了提高兼容性测试效率的技术效果,进而解决了相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
下面结合上述各实施步骤来进一步地说明本发明实施例。
作为本实施例一种可选的实施方式,在接收对前端中运行的目标浏览器的测试请求之前,还包括:监听在历史过程中对非目标浏览器的操作行为;在操作行为触发预设事件操作行为后,记录事件类型以及当前被操作的节点信息,其中,节点信息是指在非目标浏览器上被触发的页面节点链接信息。
上述非目标浏览器可以指区别于目标浏览器(自行选取)的其他类型浏览器,通过对非目标浏览器的全局事件进行监听,也即是监听历史过程中对非目标浏览器的操作行为,如,对浏览器页面中标签、文字、按钮进行点击的操作,在上述操作行为触发预设事件操作行为后,可以记录事件类型以及当前被操作的节点信息,节点信息可以是指在非目标浏览器上被触发的页面节点链接信息,例如:属性(attribute)、标签(tag)、文本内容(text)、值(value)等。
步骤S101,接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片。
上述目标浏览器可以指需要开始进行前端兼容性测试的浏览器,测试脚本可以是指历史过程中对非目标浏览器(也即是区别于上述目标浏览器之外的其他浏览器)进行测试过程中,根据操作行为录制的操作行为的脚本,上述操作行为可以包括但不限于指对浏览器进行测试过程中,对页面的点击、资料上传、下载等的操作。在对非目标浏览器执行预设操作行为时,可以同时录制得到多张参考图片,该参考图片是作为后续其他的非目标浏览器进行测试时的对照、比较结果图片。
上述多张参考图片可以指执行上述预设操作行为浏览器的响应页面,该页面中包括但不限于:标题框、文本框、图片框、评论框、广告框等。
下面结合录制脚本模块1进行示意说明:录制脚本模块实现在对业务场景进行基础测试的同时,将测试人员的操作行为以脚本的形式录制下来,生成测试用例并根据核心步骤自动生成页面截图获取标准图片(对应于上述多张参考图片)。
步骤S102,响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图。
为提高对目标浏览器的测试效率,解决相关技术中对浏览器的前端兼容性测试只能通过人工手段进行测试,效率低下的问题,在响应上述测试请求时,可以在目标浏览器上运行上述测试脚本,进行测试,在运行上述测试脚本的过程中,可以截取运行测试脚本过程出现的多张页面截图,需要说明的是,上述多张页面截图中的每张页面截图与多张参考图片中的参考图片具有对应关系,也即是一张页面截图可以是与一张参考图片是执行同一操作过程浏览器页面响应操作后生成的页面图像。
例如,本地通过调用WebDriver服务的能力,在多个不同浏览器上自动运行录制脚本模块1中生成的所有测试用例,并对核心步骤进行页面截图获取其他图片。
步骤S103,通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息。
一种可选的实施方式,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息的步骤,包括:采用预设图像识别技术,分析每张页面截图与对应的参考图片之间的差异性指标,其中,差异性指标包括下述至少之一:图片之间的相似度、差异子区域数量;根据差异性指标和差异子区域位置,对出现差异的页面截图进行标注处理,得到差异标注信息。
通过上述预设图像识别技术,可以对每张页面截图与对应的参考图片进行中的特征进行提取,进行特征比较,可以得到上述任意一张页面截图与对应的参考图片的相似度,以及差异子区域的数量,在可选的方式中还可以得到差异子区域的区域信息,例如:差异子区域的位置、大小等,根据上述差异性指标和差异子区域的位置,可以对出现差异的页面截图进行标注处理。
可选的,根据差异性指标和差异子区域位置,对出现差异的页面截图进行标注处理的步骤,包括:在对页面截图和对应的参考图片进行灰度变换处理后,提取页面截图中的图像特征;分析页面截图中的图像特征与参考图片中的图像特征之间的特征差值;基于特征差值,通过二值化策略从多张页面截图和参考图片中提取关于目标物体的物体图像;对物体图像进行边缘化提取,确定物体图像的边缘点集;结合物体图像的边缘点集,绘制页面截图中与对应的参考图片之间的差异性,完成差异性标注。
需要说明的是,本实施例中可以通过图像识别技术调用计算机视觉和机器学习软件库——OpenCV,将图片进行灰度变换处理,提取特征差值,随后通过图像的二值化方法从多值的数字图像中直接提取出关于目标物体的物体图像,进行边缘化提取,最后根据边缘点集拟合绘制差异标注。
步骤S104,根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。
一种可选的实施方式,根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果的步骤,包括:根据差异标注信息,获取页面截图与对应的参考图片之间的差异指标;将差异指标作为断言依据进行断言,得到断言结果;根据断言结果,确定兼容性测试结果。
根据页面截图与对应的参考图片之间的差异性标注,获取页面截图与对应的参考图片之间的差异指标,也即是获取页面截图与对应的参考图片的差异数据,可以将上述差异指标作为断言的依据,得到断言结果,例如:上述断言可以是判断执行一个操作的页面截图,与对应该操作的非目标浏览器中运行生成的参考图片是否存在差异。
上述兼容性测试结果可以是指目标浏览器中执行测试脚本所生成的界面,与非目标浏览器执行操作行为时生成的参考图片的差异数据报表。
一种可选的实施方式,在确定前端中运行的目标浏览器的兼容性测试结果之后,还包括:基于目标可视化模式,显示兼容性测试结果,其中,目标可视化模式包括以下其中之一:自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式。
需要说明的是,本实施例可以基于目标可视化模式显示兼容性测试结果,可以通过自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式的其中一个或多个模式的方式显示兼容性测试结果,以提高兼容性测试结果的可视性,便于测试人员直观查看。
作为本实施例一种可选的实施方式,接收对前端中运行的目标浏览器的非资源类请求;响应非资源类请求,通过目标模拟技术,确定模拟请求;在目标浏览器的当前页面运行模拟请求。
为避免各种接口响应问题在兼容性测试中对前端渲染造成的影响,本实施例中可以引入浏览器的mock(前端虚拟接口)技术,自动识别所有对前端中运行的目标浏览器出现的非资源类请求,还可以识别生成测试脚本过程中对非目标浏览器的非资源类请求,并在前端进行请求模拟,保证后期兼容性测试目标浏览器的页面渲染的一致性。
通过将图像识别技术作为断言依据以及通过浏览器的mock(前端虚拟接口)技术自动识别并模拟所有非资源类请求,有效解决测试覆盖不全面、人工成本高且效率低等技术问题。
下面结合另一种可选的实施例来说明本发明。
实施例二
本实施例提供了一种基于图像识别与浏览器mock(即前端虚拟接口)技术的前端兼容性测试方法,克服了现有人工形式的前端兼容性测试中耗时长、效率低下、覆盖不全的痛点,提供一种实施成本低、效率高、具有较强泛化能力的自动化前端兼容性测试系统。本发明提供一种思路,在前端测试脚本录制和回归测试的基础上,引入基于图像识别技术作为断言依据,可以避免人工编写脚本断言缺漏现象。同时为了避免各种接口响应问题对前端渲染造成的影响,引入浏览器mock技术,自动识别所有非资源类请求并进行前端请求模拟,实现一整条前端兼容性测试的自动化链路,为测试人员提供更便利更精准的测试手段。
为测试人员提供更加便利、精准的测试手段。本发明聚焦于通过图像识别技术作为断言依据以及通过浏览器的mock技术自动识别并模拟所有非资源类请求,有效解决测试覆盖不全面、人工成本高且效率低等痛点。
下面将对照附图,对本发明的系统及方法进行详细说明。
图2是根据本发明实施例的一种可选的系统内部处理过程的流程图。如图2所示,本实施例包含录制脚本模块1、回归测试模块2、数据可视化模块3。
录制脚本模块1:本模块实现在对业务场景进行基础测试的同时,将测试人员的操作行为以脚本的形式录制下来,生成测试用例并根据核心步骤自动生成页面截图获取标准图片。本模块根据JavaScript的事件机制进行全局事件监听,当触发事件操作时,记录事件类型以及当前被操作的节点信息,如属性(attribute)、标签(tag)、文本内容(text)、值(value)等。同时为了避免各种接口响应问题在回归测试中对前端渲染造成的影响,引入浏览器的mock技术,自动识别所有在录制过程中出现的非资源类请求,并在前端进行请求模拟,保证后期回归测试中多浏览器页面渲染的一致性。
回归测试模块2:本模块是前端兼容性自动化测试中的核心模块。本地通过调用WebDriver服务的能力,在多个不同浏览器上自动运行录制脚本模块1中生成的所有测试用例,并对核心步骤进行页面截图获取其他图片。将录制脚本模块1中获取的标准图片和回归测试模块2中获取的其他图片通过图像识别技术获取图片差异性指标,包括图片之间的相似度计算以及差异的可视化标注,并将其作为后续断言的判断依据。该模块中图像识别技术调用计算机视觉和机器学习软件库——OpenCV,将图片进行灰度变换处理,提取特征差值,随后通过图像的二值化方法从多值的数字图像中直接提取出目标物体,进行边缘化提取,最后根据边缘点集拟合绘制差异标注。
数据可视化模块3:本模块实现了对回归测试模块2返回结果的数据可视化。自定义渲染模板,从链路树模式、脑图模式、全图模式和列表模式多维度呈现直观的运行结果,可以有效做到测试人员效能的大幅度提升。
图3是根据本发明实施例的另一种可选的系统内部处理过程的流程图,如图3所示,步骤如下:
步骤1:录制脚本并生成标准图片。在某一浏览器中进行基础测试,录制脚本并在过程中生成关键步骤的标准图片。如识别到非资源类请求,使用浏览器mock技术进行前端模拟。
步骤2:多浏览器进行回归测试并生成其他图片。根据生成的测试脚本在其他多个浏览器上进行回归测试。
步骤2.1:识别为非资源请求。引入浏览器的mock技术,自动识别所有在录制过程中出现的非资源类请求。
步骤2.2:mock模拟请求。在前端进行请求模拟,保证后期回归测试中多浏览器页面渲染的一致性。
步骤3:图像识别。回归过程中生成的其他图片与录制脚本过程中生成的标准图片通过图像识别技术获取差异指标。
步骤4:断言。将差异指标作为断言依据进行断言。
步骤5:数据可视化。根据输出结果生成可视化数据报表。
本实施例利用技术手段有效降低前端兼容性自动化测试的实施成本,提高整体工作效率,并且具有较强泛化能力,可以覆盖多种浏览器的兼容性测试。
本实施例采用浏览器的mock技术,自动识别所有非资源类请求并进行前端请求模拟,避免各种接口响应问题对前端渲染造成的影响。采用图像处理技术,获得图像的差异性指标作为断言的判断依据,避免人工编写脚本断言缺漏现象,有效做到测试的全面覆盖。实现一整条前端兼容性测试的自动化链路,可以有效提升兼容性测试测试效率。
下面结合另一种可选的实施例来说明本发明。
实施例三
本实施例提供了一种可选的前端的兼容性测试装置,该兼容性测试装置所包含的各个实施单元对应于上述各实施例中的各个实施步骤。
图4是根据本发明实施例的一种可选的前端的兼容性测试装置的示意图,如图4所示,包括:第一接收单元41,第一处理单元42,第二处理单元43,第一确定单元44。
第一接收单元41,用于接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;
第一处理单元42,用于响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图;
第二处理单元43,用于通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息;
第一确定单元44,用于根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。
上述前端的兼容性测试装置,可以通过第一接收单元41接收对前端中运行的目标浏览器的测试请求,其中,测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片,通过第一处理单元42响应测试请求,在目标浏览器上运行测试脚本,并截取运行测试脚本过程出现的多张页面截图,通过第二处理单元43通过预设图像识别技术,分析每张页面截图与对应的参考图片的差异性,得到差异标注信息,通过第一确定单元44,用于根据差异标注信息,确定前端中运行的目标浏览器的兼容性测试结果。在该实施例中,通过非目标浏览器执行预设操作行为获取测试脚本及参考图片,然后通过目标浏览器运行测试脚本得到多张页面截图,通过图像识别技术获取页面截图与参考图片的差异,得到兼容性测试结果,达到了避免采用人工手段对多个浏览器的前端进行兼容性测试的目的,从而实现了提高兼容性测试效率的技术效果,进而解决了相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
可选的,第二处理单元,包括:分析子单元,用于采用预设图像识别技术,分析每张页面截图与对应的参考图片之间的差异性指标,其中,差异性指标包括下述至少之一:图片之间的相似度、差异子区域数量;处理子单元,用于根据差异性指标和差异子区域位置,对出现差异的页面截图进行标注处理,得到差异标注信息。
可选的,处理子单元包括:第一提取模块,用于在对页面截图和对应的参考图片进行灰度变换处理后,提取页面截图中的图像特征;分析模块,用于分析页面截图中的图像特征与参考图片中的图像特征之间的特征差值;第二提取模块,用于基于特征差值,通过二值化策略从多张页面截图和参考图片中提取关于目标物体的物体图像;确定模块,用于对物体图像进行边缘化提取,确定物体图像的边缘点集;处理模块,用于结合物体图像的边缘点集,绘制页面截图中与对应的参考图片之间的差异性,完成差异性标注。
可选的,第一确定单元包括:获取子单元,用于根据差异标注信息,获取页面截图与对应的参考图片之间的差异指标;断言子单元,用于将差异指标作为断言依据进行断言,得到断言结果;确定子单元,用于根据断言结果,确定兼容性测试结果。
可选的,前端的兼容性测试装置还包括:显示单元,用于在确定前端中运行的目标浏览器的兼容性测试结果之后,基于目标可视化模式,显示兼容性测试结果,其中,目标可视化模式包括以下其中之一:自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式。
可选的,前端的兼容性测试装置还包括:监听单元,用于在接收对前端中运行的目标浏览器的测试请求之前,监听在历史过程中对非目标浏览器的操作行为;在操作行为触发预设事件操作行为后,记录事件类型以及当前被操作的节点信息,其中,节点信息是指在非目标浏览器上被触发的页面节点链接信息。
可选的,前端的兼容性测试装置还包括:第二接收单元,用于接收对前端中运行的目标浏览器的非资源类请求;第二确定单元,用于响应非资源类请求,通过目标模拟技术,确定模拟请求;运行单元,用于在目标浏览器的当前页面运行模拟请求。
根据本发明实施例的另一方法,还提供了一种计算机可读存储介质,计算机可读存储介质用于存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的前端的兼容性测试方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的前端的兼容性测试方法。
上述的前端的兼容性测试装置还可以包括处理器和存储器,上述第一接收单元41,第一处理单元42,第二处理单元43,第一确定单元44等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决相关技术中前端兼容性测试通过人工手段进行,存在测试时间长、测试效率低的技术问题。
上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的前端的兼容性测试方法。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的前端的兼容性测试方法。
图5是根据本发明实施例的一种可选的前端的兼容性测试方法的电子设备(或移动设备)的硬件结构框图。如图5所示,电子设备可以包括一个或多个(图中采用502a、502b,……,502n来示出)处理器502(处理器502可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器504。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图5所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种前端的兼容性测试方法,其特征在于,包括:
接收对前端中运行的目标浏览器的测试请求,其中,所述测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;
响应所述测试请求,在所述目标浏览器上运行所述测试脚本,并截取运行所述测试脚本过程出现的多张页面截图;
通过预设图像识别技术,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息;
根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果。
2.根据权利要求1所述的兼容性测试方法,其特征在于,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息的步骤,包括:
采用所述预设图像识别技术,分析每张所述页面截图与对应的所述参考图片之间的差异性指标,其中,所述差异性指标包括下述至少之一:图片之间的相似度、差异子区域数量;
根据所述差异性指标和差异子区域位置,对出现差异的所述页面截图进行标注处理,得到所述差异标注信息。
3.根据权利要求2所述的兼容性测试方法,其特征在于,根据所述差异性指标和差异子区域位置,对出现差异的所述页面截图进行标注处理的步骤,包括:
在对所述页面截图和对应的所述参考图片进行灰度变换处理后,提取所述页面截图中的图像特征;
分析所述页面截图中的图像特征与所述参考图片中的图像特征之间的特征差值;
基于所述特征差值,通过二值化策略从多张所述页面截图和所述参考图片中提取关于目标物体的物体图像;
对所述物体图像进行边缘化提取,确定所述物体图像的边缘点集;
结合所述物体图像的边缘点集,绘制所述页面截图中与对应的所述参考图片之间的差异性,完成差异性标注。
4.根据权利要求1所述的兼容性测试方法,其特征在于,根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果的步骤,包括:
根据所述差异标注信息,获取所述页面截图与对应的所述参考图片之间的差异指标;
将差异指标作为断言依据进行断言,得到断言结果;
根据所述断言结果,确定所述兼容性测试结果。
5.根据权利要求4所述的兼容性测试方法,其特征在于,在确定所述前端中运行的目标浏览器的兼容性测试结果之后,还包括:
基于目标可视化模式,显示所述兼容性测试结果,其中,所述目标可视化模式包括以下其中之一:自定义渲染模式、从链路树模式、脑图模式、全图模式、列表模式。
6.根据权利要求1所述的兼容性测试方法,其特征在于,在接收对前端中运行的目标浏览器的测试请求之前,还包括:
监听在历史过程中对所述非目标浏览器的操作行为;
在所述操作行为触发预设事件操作行为后,记录事件类型以及当前被操作的节点信息,其中,所述节点信息是指在所述非目标浏览器上被触发的页面节点链接信息。
7.根据权利要求1至5中任意一项所述的兼容性测试方法,其特征在于,还包括:
接收对前端中运行的目标浏览器的非资源类请求;
响应所述非资源类请求,通过目标模拟技术,确定模拟请求;
在所述目标浏览器的当前页面运行所述模拟请求。
8.一种前端的兼容性测试装置,其特征在于,包括:
第一接收单元,用于接收对前端中运行的目标浏览器的测试请求,其中,所述测试请求中至少携带:历史过程中对非目标浏览器执行预设操作行为后得到的测试脚本以及多张参考图片;
第一处理单元,用于响应所述测试请求,在所述目标浏览器上运行所述测试脚本,并截取运行所述测试脚本过程出现的多张页面截图;
第二处理单元,用于通过预设图像识别技术,分析每张所述页面截图与对应的所述参考图片的差异性,得到差异标注信息;
第一确定单元,用于根据所述差异标注信息,确定所述前端中运行的目标浏览器的兼容性测试结果。
9.一种计算机可读存储介质,其特征在于,计算机可读存储介质用于存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的前端的兼容性测试方法。
10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的前端的兼容性测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675218.1A CN115048302A (zh) | 2022-06-15 | 2022-06-15 | 前端的兼容性测试方法及装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210675218.1A CN115048302A (zh) | 2022-06-15 | 2022-06-15 | 前端的兼容性测试方法及装置、存储介质、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115048302A true CN115048302A (zh) | 2022-09-13 |
Family
ID=83161586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210675218.1A Pending CN115048302A (zh) | 2022-06-15 | 2022-06-15 | 前端的兼容性测试方法及装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048302A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827480A (zh) * | 2022-12-20 | 2023-03-21 | 中船重工奥蓝托无锡软件技术有限公司 | 用于船舶性能预报app的自动化测试方法、装置及系统 |
-
2022
- 2022-06-15 CN CN202210675218.1A patent/CN115048302A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827480A (zh) * | 2022-12-20 | 2023-03-21 | 中船重工奥蓝托无锡软件技术有限公司 | 用于船舶性能预报app的自动化测试方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018010552A1 (zh) | 测试方法和装置 | |
US20140218385A1 (en) | System and method for visual segmentation of application screenshots | |
US20140075371A1 (en) | System and method for model based session management | |
US9904517B2 (en) | System and method for automatic modeling of an application | |
CN109471805B (zh) | 资源测试方法及装置、存储介质、电子设备 | |
US10810113B2 (en) | Method and apparatus for creating reference images for an automated test of software with a graphical user interface | |
CN110515830A (zh) | 操作轨迹可视化方法、装置、设备及存储介质 | |
CN111488109A (zh) | 用户界面的控件信息的获取方法、装置、终端及存储介质 | |
CN112199296A (zh) | 页面测试方法、装置、计算机设备和存储介质 | |
CN114049631A (zh) | 一种数据标注的方法、装置、计算机设备和存储介质 | |
CN110248235B (zh) | 软件教学方法、装置、终端设备及介质 | |
CN115048302A (zh) | 前端的兼容性测试方法及装置、存储介质、电子设备 | |
CN113034421A (zh) | 一种图像检测方法、装置及存储介质 | |
CN111355628A (zh) | 一种模型训练方法、业务识别方法、装置和电子装置 | |
CN113807066A (zh) | 一种图表生成方法、装置及电子设备 | |
US20210271588A1 (en) | Rendering gui test object of application under test to reflect test information | |
CN111782514A (zh) | 一种测试数据的比对方法和装置 | |
CN116126808A (zh) | 行为日志记录方法、装置、计算机设备和存储介质 | |
CN113986749A (zh) | 前端测试信息的展示方法及展示装置、电子设备 | |
CN113392013B (zh) | 用例生成方法及装置 | |
CN111949510B (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN113515277A (zh) | 埋点数据的可视化展示方法、装置、设备及存储介质 | |
CN115437621A (zh) | 基于机器人流程自动化的流程编辑方法、装置 | |
CN111061625A (zh) | 一种应用于乱序密码键盘的自动化测试方法和装置 | |
CN113742553B (zh) | 数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |