CN103309800A - 一种网页自动化测试方法和系统 - Google Patents
一种网页自动化测试方法和系统 Download PDFInfo
- Publication number
- CN103309800A CN103309800A CN2012100683076A CN201210068307A CN103309800A CN 103309800 A CN103309800 A CN 103309800A CN 2012100683076 A CN2012100683076 A CN 2012100683076A CN 201210068307 A CN201210068307 A CN 201210068307A CN 103309800 A CN103309800 A CN 103309800A
- Authority
- CN
- China
- Prior art keywords
- test case
- environment
- page
- agent script
- test
- 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.)
- Granted
Links
Images
Abstract
本发明实施方式提出一种网页自动化测试方法和系统。方法包括:加载被测页面中的代理脚本,该代理脚本枚举被测页面瓜哇脚本(JS)环境中的JS对象;将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中;测试用例根据该测试用例JS环境触发被测页面的页面动作以执行测试逻辑。应用本发明实施方式之后,能够避开元素匹配的工作量,极大地提高前台测试的效率,并由此降低测试成本。
Description
技术领域
本发明实施方式涉及自动化测试技术领域,更具体地,涉及一种网页(WEB)自动化测试方法和系统。
背景技术
随着软件规模不断扩大以及复杂度的日益繁琐,采用手工测试软件已经不能适应要求。对于人工而言,采用电子自动化测试技术能更好地保证测试的准确度,而且能够极大提高测试效率和加快软件开发速度。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
在WEB自动化测试过程中,目前常见的做法是用户接口(UI,UserInterface)驱动方式,即自动去WEB页面上找到指定的元素,并设置元素的属性,然后触发相关的事件,以指导页面自动地执行预定的操作。UI驱动方式也是自动化模拟手工操作页面的基本要求。
然而,在UI驱动方式中,需要了解元素的标识(ID)或名字(name)或其它属性,否则就无法找到元素。随着互联网上WEB应用越来越复杂,越来越多的控件使用瓜哇脚本(JS)进行封装,而元素的ID、name甚至属性都存在随机性,因此元素定位的工作量和难度大大提高,这就降低了测试的效率,使得利用UI驱动方式执行WEB自动化测试碰到了瓶颈。
发明内容
本发明实施方式提出一种网页自动化测试方法,以提高测试效率。
本发明实施方式提出一种网页自动化测试系统,以提高测试效率。
本发明实施方式的具体方案如下:
一种网页自动化测试方法,该方法包括:
加载被测页面中的代理脚本,所述代理脚本枚举该被测页面瓜哇脚本(JS)环境中的JS对象;
将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中;
测试用例根据所述测试用例JS环境触发该被测页面的页面动作以执行测试逻辑。
一种网页自动化测试系统,该系统包括测试用例单元、测试用例JS环境单元和被测页面,被测页面包括用于在加载后枚举该被测页面JS环境中JS对象的代理脚本;其中:
测试用例JS环境单元,用于将由该被测页面中代理脚本所枚举出的JS对象映射到测试用例JS环境中;
测试用例单元,用于根据所述测试用例JS环境触发被测页面的页面动作以执行测试逻辑。
从上述技术方案可以看出,在本发明实施方式中,首先加载被测页面中的代理脚本,代理脚本枚举该被测页面瓜哇脚本(JS)环境中的JS对象;然后将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中;测试用例再根据该测试用例JS环境触发该被测页面的页面动作以执行测试逻辑。由此可见,应用本发明实施方式之后,测试用例运行环境中已经映射有测试页面的JS对象,可以测试用例可以直接使用这些JS对象,从而能够避开元素匹配的工作量,极大地提高前台测试的效率,并由此显著降低测试成本。
附图说明
图1为根据本发明实施方式的网页自动化测试方法流程图;
图2为根据本发明实施方式的网页自动化测试系统结构图;
图3为根据本发明实施方式的网页自动化测试方法的示范性流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
在本发明实施方式中,优选使用瓜哇脚本(JS)语言编写测试用例,通过将测试页面上的JS对象无缝集成到测试用例环境中,使得测试页面上的这些JS对象可以直接在测试用例中使用,从而节省元素定位的工作量,实现JS驱动以弥补UI驱动方式的不足,并提高测试效率。
图1为根据本发明实施方式的网页自动化测试方法流程图。
如图1所示,该方法包括:
步骤101:加载被测页面中的代理脚本,代理脚本枚举该被测页面瓜哇脚本(JS)环境中的JS对象。
步骤102:将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中。
在这里,可以首先通过组件对象模型COM访问代理脚本,然后再将该代理脚本所枚举出的JS对象链接到测试用例JS环境中,以实现将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中。
步骤103:测试用例根据测试用例JS环境触发该被测页面的页面动作以执行测试逻辑。
其中:测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
在该方法中,可以预先打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载嵌入其中的代理脚本。优选地,测试用例可以调用应用程序编程接口(API)在该网页浏览器中打开被测页面。
优选的,代理脚本为JS代理脚本,而且JS对象为全局对象,包括函数和变量,等等。
基于上述说明,图2为根据本发明实施方式的网页自动化测试系统结构图。
如图2所示,该系统包括测试用例单元201、测试用例JS环境单元202和被测页面203,被测页面203包括嵌入其中的代理脚本2031,代理脚本2031在加载后,可以枚举该被测页面JS环境中JS对象的代理脚本2031;其中:
测试用例JS环境单元202,用于将由该被测页面203中代理脚本2031所枚举出的JS对象映射到测试用例JS环境中;
测试用例单元201,用于根据该测试用例JS环境触发被测页面的页面动作以执行测试逻辑。
在上述系统中,测试用例JS环境单元202可以通过组件对象模型(COM)访问代理脚本2031,并将该代理脚本2031所枚举出的JS对象链接到测试用例JS环境中。
测试用例JS环境单元202还可以打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载其中的代理脚本。测试用例JS环境单元202进一步还可以调用应用程序编程接口(API)在该网页浏览器中打开所述被测页面。
更具体地,测试用例JS环境单元202用于提供前台自动化测试用例的运行环境,并且能和网页浏览器(优选为IE浏览器)中的代理脚本2031(优选为JS脚本)宿主对接,将网页浏览器中的JS全局变量映射到自己的JS环境中来,从而提供一个JS全局变量的超集,等到环境准备完成之后,再加载测试用例运行。
代理脚本2031优选在网页浏览器打开的测试页面中自动运行,用于枚举当前测试页面中的JS全局对象,以供测试用例JS环境使用。
测试用例优选是由用户使用JS语言编写的前台测试用例,它可以调用测试页面的JS对象,而且优选可以将UI驱动和JS驱动相结合,模拟页面手工操作,完成自动化测试任务。
结合图1所述方法流程图和图2所示系统结构图,在本发明实施方式中,用户首先编写通过访问JS对象来实现自动化测试的测试用例,然后网页自动化测试系统加载并执行这些测试用例。
网页自动化测试系统加载并执行这些测试用例的具体实现过程可以包括:
首先,该系统打开网页浏览器,对网页浏览器进行初始化,使得浏览器在页面加载时,可以加载利用JS语言编写的代理脚本,然后该系统建立本地JS环境(即测试用例执行的JS环境),并且载入测试用例运行。
接着,测试用例中的JS开始执行,测试用例通过调用API在浏览器中打开被测页面。当浏览器打开被测页面后,根据系统的设置,将自动加载该利用JS编写的代理脚本,然后系统等待测试页面初始化。
然后,浏览器开始初始化和页面渲染,代理脚本负责枚举出当前页面中所有的JS对象。等到初始化和页面渲染完成后,系统将得到通知,并透过COM技术,访问代理脚本,并将代理脚本枚举出的JS对象,全部链接到本地的JS环境中来(即测试用例执行的JS环境)。至此实现了前台测试用例的执行环境,完成了初始化,测试用例就可以正常向下运行,而不会上报“访问的JS未定义”的错误。
测试用例中的JS继续执行,由于页面JS对象已经被链接到本地JS环境中了,因此可以正常调用。测试用例可以触发webObject.method()类似的调用,通过页面JS对象调用,触发页面动作,完成测试逻辑。
基于上述详细分析,图3为根据本发明实施方式的网页自动化测试方法的示范性流程图。
如图3所示,该方法包括:
步骤301:测试用例执行之前,先由测试用例JS环境单元进行准备工作。
步骤302:测试用例JS环境单元启动网页浏览器,打开被测页面。
步骤303:网页浏览器在被测页面打开之后,加载嵌入其中的代理脚本。
步骤304:被测页面中的代理脚本枚举出当前页面JS环境中所有的JS全局变量。
步骤305:用例JS环境单元从代理脚本中取出所有的JS全局变量,然后映射到自己的JS环境中。
步骤306:执行测试用例,此时测试用例的运行环境中已经将测试页面的JS全局变量都映射到用例JS环境中,因此可以直接使用这些JS全局变量。
综上所述,在本发明实施方式中,首先加载被测页面中的代理脚本,代理脚本枚举该被测页面瓜哇脚本(JS)环境中的JS对象;然后将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中;测试用例再根据该测试用例JS环境触发该被测页面的页面动作以执行测试逻辑。由此可见,应用本发明实施方式之后,测试用例运行环境中已经映射有测试页面的JS对象,可以直接使用这些JS对象,因此能够避开元素匹配的工作量,极大地提高前台测试的效率,并由此降低测试成本。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种网页自动化测试方法,其特征在于,该方法包括:
加载被测页面中的代理脚本,所述代理脚本枚举该被测页面瓜哇脚本JS环境中的JS对象;
将由该代理脚本所枚举出的JS对象映射到测试用例JS环境中;
测试用例根据所述测试用例JS环境触发该被测页面的页面动作以执行测试逻辑。
2.根据权利要求1所述的网页自动化测试方法,其特征在于,所述将由该代理脚本枚举出的JS对象映射到测试用例JS环境中包括:
通过组件对象模型COM访问所述代理脚本;
将该代理脚本所枚举出的JS对象链接到测试用例JS环境中。
3.根据权利要求1所述的网页自动化测试方法,其特征在于,该方法进一步包括:
打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载嵌入其中的所述代理脚本。
4.根据权利要求3所述的网页自动化测试方法,其特征在于,该方法进一步包括:
测试用例调用应用程序编程接口API在该网页浏览器中打开所述被测页面。
5.根据权利要求1-4中任一项所述的网页自动化测试方法,其特征在于,所述代理脚本为JS代理脚本,所述JS对象包括函数和变量。
6.一种网页自动化测试系统,其特征在于,该系统包括测试用例单元、测试用例JS环境单元和被测页面,被测页面包括用于在加载后枚举该被测页面JS环境中JS对象的代理脚本;其中:
测试用例JS环境单元,用于将由该被测页面中代理脚本所枚举出的JS对象映射到测试用例JS环境中;
测试用例单元,用于根据所述测试用例JS环境触发被测页面的页面动作以执行测试逻辑。
7.根据权利要求6所述的网页自动化测试系统,其特征在于,
所述测试用例JS环境单元,用于通过组件对象模型COM访问所述代理脚本,并将该代理脚本所枚举出的JS对象链接到测试用例JS环境中。
8.根据权利要求6所述的网页自动化测试系统,其特征在于,
所述测试用例JS环境单元,用于打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载其中的代理脚本。
9.根据权利要求8所述的网页自动化测试系统,其特征在于,
所述测试用例JS环境单元,进一步用于调用应用程序编程接口API在该网页浏览器中打开所述被测页面。
10.根据权利要求8所述的网页自动化测试系统,其特征在于,所述代理脚本为JS代理脚本,所述JS对象包括函数和变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210068307.6A CN103309800B (zh) | 2012-03-15 | 2012-03-15 | 一种网页自动化测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210068307.6A CN103309800B (zh) | 2012-03-15 | 2012-03-15 | 一种网页自动化测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103309800A true CN103309800A (zh) | 2013-09-18 |
CN103309800B CN103309800B (zh) | 2016-04-13 |
Family
ID=49135047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210068307.6A Active CN103309800B (zh) | 2012-03-15 | 2012-03-15 | 一种网页自动化测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103309800B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130305096A1 (en) * | 2012-05-11 | 2013-11-14 | Samsung Sds Co., Ltd. | System and method for monitoring web service |
CN103678120A (zh) * | 2013-11-12 | 2014-03-26 | 北京京东尚科信息技术有限公司 | 基于建模的web应用自动化测试方法 |
CN103984624A (zh) * | 2014-04-29 | 2014-08-13 | 北京京东尚科信息技术有限公司 | 一种网页自动化测试方法及系统 |
CN104133689A (zh) * | 2014-08-12 | 2014-11-05 | 浪潮电子信息产业股份有限公司 | 网页应用自动化测试脚本的生成方法 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN106776317A (zh) * | 2016-12-15 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 测试方法及装置 |
CN107729249A (zh) * | 2017-10-18 | 2018-02-23 | 北京奇虎科技有限公司 | 浏览器兼容性测试方法、装置、系统及电子设备 |
CN110347577A (zh) * | 2018-04-04 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种页面测试方法、装置及其设备 |
CN112817699A (zh) * | 2021-02-23 | 2021-05-18 | 汇链通供应链科技(上海)有限公司 | 一种批量部署的自动化性能测试方法及终端装置 |
CN112860561A (zh) * | 2021-02-23 | 2021-05-28 | 汇链通供应链科技(上海)有限公司 | 一种自动化性能测试方法及终端装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791037A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 一种实现Web服务自动化测试的方法 |
US20100174952A1 (en) * | 2004-03-31 | 2010-07-08 | Paul Anastas | Methods and apparatus for collecting and displaying performance metrics from a web site |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
-
2012
- 2012-03-15 CN CN201210068307.6A patent/CN103309800B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100174952A1 (en) * | 2004-03-31 | 2010-07-08 | Paul Anastas | Methods and apparatus for collecting and displaying performance metrics from a web site |
CN1791037A (zh) * | 2005-12-26 | 2006-06-21 | 北京航空航天大学 | 一种实现Web服务自动化测试的方法 |
CN101882105A (zh) * | 2010-06-01 | 2010-11-10 | 华南理工大学 | 一种测试Web网页并发环境下响应时间的方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130305096A1 (en) * | 2012-05-11 | 2013-11-14 | Samsung Sds Co., Ltd. | System and method for monitoring web service |
US9229844B2 (en) * | 2012-05-11 | 2016-01-05 | Samsung Sds Co., Ltd. | System and method for monitoring web service |
CN103678120A (zh) * | 2013-11-12 | 2014-03-26 | 北京京东尚科信息技术有限公司 | 基于建模的web应用自动化测试方法 |
CN103678120B (zh) * | 2013-11-12 | 2016-07-06 | 北京京东尚科信息技术有限公司 | 基于建模的web应用自动化测试方法 |
CN103984624A (zh) * | 2014-04-29 | 2014-08-13 | 北京京东尚科信息技术有限公司 | 一种网页自动化测试方法及系统 |
CN104133689A (zh) * | 2014-08-12 | 2014-11-05 | 浪潮电子信息产业股份有限公司 | 网页应用自动化测试脚本的生成方法 |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN105808417B (zh) * | 2014-12-29 | 2019-02-26 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
CN106776317A (zh) * | 2016-12-15 | 2017-05-31 | 百度在线网络技术(北京)有限公司 | 测试方法及装置 |
CN107729249A (zh) * | 2017-10-18 | 2018-02-23 | 北京奇虎科技有限公司 | 浏览器兼容性测试方法、装置、系统及电子设备 |
CN110347577A (zh) * | 2018-04-04 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种页面测试方法、装置及其设备 |
CN110347577B (zh) * | 2018-04-04 | 2024-04-09 | 阿里巴巴集团控股有限公司 | 一种页面测试方法、装置及其设备 |
CN112817699A (zh) * | 2021-02-23 | 2021-05-18 | 汇链通供应链科技(上海)有限公司 | 一种批量部署的自动化性能测试方法及终端装置 |
CN112860561A (zh) * | 2021-02-23 | 2021-05-28 | 汇链通供应链科技(上海)有限公司 | 一种自动化性能测试方法及终端装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103309800B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103309800B (zh) | 一种网页自动化测试方法和系统 | |
JP4950454B2 (ja) | テスト自動化のスタック階層化 | |
US11010283B2 (en) | Mock-based unit test(s) for an end-to-end test of a code snippet | |
EP3134810B1 (en) | Dependency-driven co-specialization of specialized classes | |
CN102402427B (zh) | 一种Java应用程序的更新方法及装置 | |
EP1582985A2 (en) | Test case inheritance controlled via attributes | |
EP3035191A1 (en) | Identifying source code used to build executable files | |
CN101739333A (zh) | 应用程序的调试方法、调试工具及调试装置 | |
US8291386B2 (en) | System and process for debugging object-oriented programming code | |
US9824000B1 (en) | Testing calling code dynamically with random error injection based on user-specified configuration | |
CN105117346A (zh) | 虚拟化平台的分布式系统自动化测试方法及系统 | |
CN102866944A (zh) | 一种压力测试系统及方法 | |
US10540150B2 (en) | Composable context menus | |
CN103793249A (zh) | 一种Java虚拟机中类库的多线程预加载方法 | |
Zhang et al. | Environmental modeling for automated cloud application testing | |
CN114818565A (zh) | 基于python的仿真环境管理平台、方法、设备及介质 | |
US8397217B2 (en) | Integrating templates into tests | |
CN104850476A (zh) | 跨平台接口自动化测试方法及系统 | |
CN102004662A (zh) | 嵌入式可裁剪式虚拟机 | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
CN111580409B (zh) | 面向实时嵌入式系统的故障仿真测试方法 | |
US20110184902A1 (en) | business rule integration with engineering applications | |
CN102063308B (zh) | 一种用于地震勘探资料处理流程控制的方法 | |
Zhang et al. | Verifying cooperative software: a SMT-based bounded model checking approach for deterministic scheduler | |
CN103631704A (zh) | 通信设备的自动化测试系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |