CN109684220A - 一种基于事件回放的浏览器兼容性分析方法 - Google Patents

一种基于事件回放的浏览器兼容性分析方法 Download PDF

Info

Publication number
CN109684220A
CN109684220A CN201811603132.8A CN201811603132A CN109684220A CN 109684220 A CN109684220 A CN 109684220A CN 201811603132 A CN201811603132 A CN 201811603132A CN 109684220 A CN109684220 A CN 109684220A
Authority
CN
China
Prior art keywords
browser
event
node
page
information
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
Application number
CN201811603132.8A
Other languages
English (en)
Inventor
花磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SUZHOU BONA XUNDONG SOFTWARE Co Ltd
Original Assignee
SUZHOU BONA XUNDONG SOFTWARE Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SUZHOU BONA XUNDONG SOFTWARE Co Ltd filed Critical SUZHOU BONA XUNDONG SOFTWARE Co Ltd
Priority to CN201811603132.8A priority Critical patent/CN109684220A/zh
Publication of CN109684220A publication Critical patent/CN109684220A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

在事件捕获阶段记录参考浏览器平台运行时产生的各种非确定性事件,并在重放阶段在测试浏览器平台中进行远程重放,监测每个事件发生前后DOM节点数据变化,检测事件引起变化的DOM节点。从而保证了Web应用在不同的浏览器环境中有相同的执行,提高了检测结果的准确性。

Description

一种基于事件回放的浏览器兼容性分析方法
技术领域
本发明涉及一种基于事件回放的浏览器兼容性分析方法,属于软件技术领域。
背景技术
随着互联网技术的快速发展,Web应用正在成为重要的信息获取和交流平台。应用开发者希望应用能在各种主流的浏览器平台上表现一致,但由于浏览器实现技术的差异以及对标准支持程度的不同,导致Web应用在不同的浏览器平台上运行时可能出现行为和页面展现方面的不一致,称为跨浏览器的不兼容问题。浏览器兼容性分为三类:行为不一致、结构不一致和内容不一致(S. Roy Choudhary, M. R. Prasad, and A. Orso. X-pert:Accurate identification of cross-browser issues in Web applications. InProceedings of the 2013 International Conference on Software Engineering,pages 702–711. IEEE Press, 2013.)。行为不一致是页面中元素的功能失效,例如,点击链接页面无法跳转,点击按钮页面没有反应。结构不一致是页面中元素在结构布局方面的问题。内容不一致分为文本内容不一致和可视内容不一致,其中,文本不一致是元素内部的文本不同,可视内容不一致是元素在可视化方面的不同。
为自动检测跨浏览器不兼容问题,目前工业界和学术界已经提出了很多的方法和工具(http://app.browserbite.com/)。常见的方法是,在页面抓取阶段,在不同的浏览器上对Web应用进行自动的探测,并抽取页面相关数据,包括DOM树信息、布局信息以及页面截图信息;在页面比较阶段,通过对收集的页面数据进行比较,以发现各种跨浏览器的不一致问题(S. R. Choudhary, M. R. Prasad, and A. Orso. Crosscheck: Combiningcrawling and differencing to better detect cross-browser incompatibilities inWeb applications. In Software Testing, Verification and Validation (ICST),2012 IEEE Fifth International Conference on, pages 171–180. IEEE, 2012.)。但当前方法仅考虑了用户交互事件,而忽略了浏览器内部事件,如随机数、日期、定时器等,无法保证在不同的浏览器上有相同的执行,导致检测结果产生大量的误报或漏报。
发明内容
本发明的目的:保证Web应用在不同的浏览器环境中有相同的执行,以提高检测结果的准确性。
本发明的原理:监测每个事件发生前后DOM节点数据变化,检测事件引起变化的DOM节点。
本发明技术解决方案:一种基于事件回放的浏览器兼容性分析方法,其特点在于实现步骤如下:
第一步,事件序列收集:捕获Web应用在参考浏览器访问时产生的各种非确定性事件,如点击、按键,和浏览器内部事件,如定时器、随机数的产生。
第二步,远程重放:根据用户选择的被测浏览器,通过远程控制器在不同的浏览器重放事件序列。
在被测浏览器平台上安装重放客户端,用以接收服务器的重放命令,给Web应用注入重放模块,并在浏览器中重放事件序列。在重放事件序列前,重写浏览器源码中的setInterval/setTimeout、XHR、random和date等相关函数。重写的setInterval/setTimeout函数会记录注册的回调函数,当重放定时器事件时,将会按顺序执行回调函数。对于XHR函数,直接从捕获日志里获取send/open函数的返回值和应答内容,而无需跟服务器进行交互。当Web应用调用Random和date构造函数时,直接从日志中返回相应的值。每到达一个新页面,注入的重放模块会向服务器请求新页面的录制日志。
第三步,页面数据收集:在重放事件时,收集当前页面的信息,包括变化的DOM节点信息、节点布局信息和页面截图信息。
收集当前的页面信息,如DOM节点信息、节点布局信息和页面截图。目前主流的Web2.0应用多采用Ajax技术与服务端进行通信,并且尽可能将计算在客户端完成,因此用户事件通常只会导致页面的局部信息发生更新。如果在每个事件发生时都采集所有的DOM节点和布局信息,就会收集到很多的冗余信息,这不仅会导致冗余的兼容性问题报告,还会消耗浏览器的内存资源。为了解决上述问题,在重放每个事件后,仅收集变化的DOM节点信息和布局信息。在重放负载事件后,extractDom函数收集所有的DOM信息,并调用getScreenshots函数对当前页面进行截图,接着观察DOM节点的变化。
然而,只能捕获DOM树中变化的节点,而不能捕获坐标变化的节点。在某些场景下,节点信息的变化可能导致其邻近节点的坐标变化,邻近节点包括父节点和兄弟节点。当一个新的课程添加到列表中,列表的高度会增加,也就是它的父节点的坐标受到了影响,而只捕获到新加入的节点(1个<tr>元素,2个<td>元素)。为了采集到所有坐标和信息变化的节点,调用extractCoordChangeNodes函数获取坐标变化的DOM节点。如果事件重放后DOM节点发生变化,则对当前页面进行截图。所有收集到的数据保存在列表中, 这些数据用于进行Web应用的跨浏览器兼容性检测。
为了计算得到坐标变化的节点,为每个节点添加唯一ID,并维护一个全局的映射表<ID,坐标>。对于每个变化的节点,先在图中更新坐标,然后调用computeAffectedParent函数从该节点向上找到一个坐标没有变化的祖先节点并保存。处理完每个节点后,调用findCommonParents函数对节点进行合并并保存。合并条件为当一个节点为另一个节点的祖先节点时,保存祖先节点。对每个节点再调用traverseChildren函数得到所有坐标变化的子节点并加入。在遍历子节点时,更新已遍历的节点坐标。该算法先向上查找父节点,再向下查找变化的子节点,是为了不仅能收集到坐标变化的父节点,也能收集到由于某一节点信息变动而影响了坐标的兄弟节点和子节点。
第四步,兼容性检测和错误报告:对采集到的数据进行浏览器兼容性检测,并生成兼容性问题报告。
(1)行为浏览器兼容性检测:为了检测行为的兼容性问题,对于重放的事件序列考虑以下三种情况:重放的页面数不同,例如,某个页面的最后一个事件失效,没有让应用跳转到下个页面,就会导致最终重放得到的页面数不同;对于同一个页面的事件序列成功重放的事件数目不同,例如,某个事件重放时出现错误,导致后续事件无法继续重放;重放事件产生的变化的DOM节点不同,即变化的DOM节点不能完全匹配。如果是负载事件,则比较整个DOM树的节点,如果是其他事件则只比较变化的节点。
(2)结构浏览器兼容性检测:比较了两个相邻图的差异,对于负载事件,首先调用getDOMTree函数得到DOM树后,调用extractAG函数为DOM树构造排列图。在比较两个排列图前,首先调用matchDOM函数进行匹配,匹配结果存储在映射表里,再调用compareAG函数对相匹配的节点的结构进行比较,得到结构浏览器兼容性。方法getCoordChangeNodes函数得到坐标变化的节点,getMutateNodes函数得到DOM树中变化的节点,updateAG函数更新排列图,并收集由于重放当前事件而引起结构变化的节点,存储在各自的排列图中。然后调用matchDOM函数进行匹配,并更新全局的匹配映射表。最后比较排列图中结构变化的节点,得到结构浏览器兼容性。
(3)内容浏览器兼容性检测:内容不一致包含可视内容的不一致和文本内容不一致。可视内容不一致指页面某个元素的外观不同,如一个元素的文本样式或背景的不同。根据元素坐标从页面的截图中得到元素图片,然后比较图片的相似性,相似性低的元素加入到浏览器兼容性列表中。文本内容浏览器兼容性表示某个元素在两个浏览器上的文本不同,对相匹配的文本节点进行文本值的比较,不相等即为文本内容不一致。
本发明与现有技术相比具有如下优点:在事件捕获阶段记录参考浏览器平台运行时产生的各种非确定性事件,并在重放阶段在测试浏览器平台中进行远程重放,通过在重放过程中采集页面信息,保证了检测结果的准确性。
附图说明
图1为方法执行流程图。
具体实施方式
以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:
采用代理服务器拦截Web应用的HTTP请求和应答,当返回消息的类型是html时插入捕获/重放库。此外,代理服务器还将缓存所有应答,保证在重放时访问相同的内容。
远程重放客户端接收服务器的指令,重放服务器指定的事件序列。重放客户端可以作为浏览器的扩展也可以作为一个守护进程。在重放过程中,不仅要收集变化的节点数据,包括坐标变化的节点,还要在每次页面变化时对页面进行截图。
实现了重放客户端,由重放客户端调用重放库中的方法重放事件,并根据重放结果确定页面是否发生变化,如果页面改变则调用getScreenshotAs函数获得页面截图。采用OpenCV来比较两个元素的图片的相似性,首先根据元素坐标从页面截图中得到元素的图片,然后转换为直方图,最后采用相关系数的方法比较两个元素的图片相似性。。

Claims (1)

1.一种基于事件回放的浏览器兼容性分析方法,方法特征在于实现步骤如下:
第一步,事件序列收集:捕获Web应用在参考浏览器平台运行时产生的各种非确定性事件,包括用户事件,如点击、按键,和浏览器内部事件,如定时器、随机数的产生;
第二步,远程重放:根据用户选择的被测浏览器平台,通过远程控制器在不同的浏览器平台重放事件序列;
第三步,页面数据收集:在重放事件时,收集当前页面的信息,包括变化的DOM节点信息、节点布局信息和页面截图信息;
第四步,兼容性检测和错误报告:对采集到的数据进行浏览器兼容性检测,并生成兼容性问题报告。
CN201811603132.8A 2018-12-26 2018-12-26 一种基于事件回放的浏览器兼容性分析方法 Pending CN109684220A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811603132.8A CN109684220A (zh) 2018-12-26 2018-12-26 一种基于事件回放的浏览器兼容性分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811603132.8A CN109684220A (zh) 2018-12-26 2018-12-26 一种基于事件回放的浏览器兼容性分析方法

Publications (1)

Publication Number Publication Date
CN109684220A true CN109684220A (zh) 2019-04-26

Family

ID=66189666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811603132.8A Pending CN109684220A (zh) 2018-12-26 2018-12-26 一种基于事件回放的浏览器兼容性分析方法

Country Status (1)

Country Link
CN (1) CN109684220A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797009A (zh) * 2020-06-22 2020-10-20 北京字节跳动网络技术有限公司 用于检测代码兼容性的方法、装置和电子设备
WO2021088724A1 (zh) * 2019-11-05 2021-05-14 深圳前海微众银行股份有限公司 一种测试方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468779A (zh) * 2015-12-16 2016-04-06 中国科学院软件研究所 一种面向浏览器兼容性检测的客户端Web应用捕获与重放系统及方法
CN106649805A (zh) * 2016-12-29 2017-05-10 中国科学院软件研究所 一种高效的Web应用跨浏览器布局兼容性检测系统及方法
CN107995191A (zh) * 2017-12-01 2018-05-04 江苏润和软件股份有限公司 一种基于自动化测试的云应用浏览器兼容性检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468779A (zh) * 2015-12-16 2016-04-06 中国科学院软件研究所 一种面向浏览器兼容性检测的客户端Web应用捕获与重放系统及方法
CN106649805A (zh) * 2016-12-29 2017-05-10 中国科学院软件研究所 一种高效的Web应用跨浏览器布局兼容性检测系统及方法
CN107995191A (zh) * 2017-12-01 2018-05-04 江苏润和软件股份有限公司 一种基于自动化测试的云应用浏览器兼容性检测方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021088724A1 (zh) * 2019-11-05 2021-05-14 深圳前海微众银行股份有限公司 一种测试方法及装置
CN111797009A (zh) * 2020-06-22 2020-10-20 北京字节跳动网络技术有限公司 用于检测代码兼容性的方法、装置和电子设备

Similar Documents

Publication Publication Date Title
CN105468779B (zh) 一种面向浏览器兼容性检测的客户端Web应用捕获与重放系统及方法
CN106021079B (zh) 一种基于用户频繁访问序列模型的Web应用性能测试方法
WO2021088724A1 (zh) 一种测试方法及装置
CN106656536B (zh) 一种用于处理服务调用信息的方法与设备
US9356842B2 (en) Method and system for browser based, non-intrusive measuring of end-user perceived performance of individual third party resource requests
CN106897215A (zh) 一种基于WebView网页加载性能及用户行为流数据采集的方法
CN105868256A (zh) 处理用户行为数据的方法和系统
CN107085549B (zh) 故障信息生成的方法和装置
JP2018165857A (ja) 分析装置、分析システム、分析方法および分析プログラム
CN112231130B (zh) 一种根据日志定位故障的方法、系统、设备及介质
US20200310952A1 (en) Comparable user interface object identifications
Choudhary et al. A cross-browser web application testing tool
CN111090593A (zh) 确定崩溃归属的方法、装置、电子设备及存储介质
CN109684220A (zh) 一种基于事件回放的浏览器兼容性分析方法
CN111708712A (zh) 用户行为测试用例的生成方法、流量回放方法及电子设备
Wu et al. Detect cross-browser issues for JavaScript-based Web applications based on record/replay
CN117499287A (zh) Web测试方法、装置、存储介质及代理服务器
CN109062784B (zh) 接口参数约束代码入口定位方法与系统
CN115509851A (zh) 页面监控方法、装置及设备
CN116010244A (zh) 自动化测试方法、装置、电子设备及存储介质
Li et al. Modeling web application for cross-browser compatibility testing
US9218418B2 (en) Search expression generation system
CN114385514A (zh) 一种检测网页元素的方法、设备及存储介质
US20140245159A1 (en) Transport script generation based on a user interface script
KR101589914B1 (ko) 실시간 웹 사이트 성능 측정 방법 및 시스템

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 215000 South Floor, Fuhua Building, No. 199 Chongwen Road, Suzhou Industrial Park, Jiangsu Province

Applicant after: Jiangsu Boyun Technology Co.,Ltd.

Address before: 215000 South Floor, Fuhua Building, No. 199 Chongwen Road, Suzhou Industrial Park, Jiangsu Province

Applicant before: SUZHOU BONA XUNDONG SOFTWARE Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190426