CN103309800B - 一种网页自动化测试方法和*** - Google Patents

一种网页自动化测试方法和*** Download PDF

Info

Publication number
CN103309800B
CN103309800B CN201210068307.6A CN201210068307A CN103309800B CN 103309800 B CN103309800 B CN 103309800B CN 201210068307 A CN201210068307 A CN 201210068307A CN 103309800 B CN103309800 B CN 103309800B
Authority
CN
China
Prior art keywords
test case
environment
agent script
page
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.)
Active
Application number
CN201210068307.6A
Other languages
English (en)
Other versions
CN103309800A (zh
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201210068307.6A priority Critical patent/CN103309800B/zh
Publication of CN103309800A publication Critical patent/CN103309800A/zh
Application granted granted Critical
Publication of CN103309800B publication Critical patent/CN103309800B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

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环境触发该被测页面的页面动作以执行测试逻辑。
其中:测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。测试用例目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
在该方法中,可以预先打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载嵌入其中的代理脚本。优选地,测试用例可以调用应用程序编程接口(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对象映射到测试用例JS环境中包括:
通过组件对象模型COM访问所述代理脚本;
将该代理脚本所枚举出的JS对象链接到测试用例JS环境中。
8.根据权利要求6所述的网页自动化测试***,其特征在于,
所述测试用例JS环境单元,用于打开网页浏览器,并对该网页浏览器执行初始化,以使得该网页浏览器在加载被测页面时能够加载其中的代理脚本。
9.根据权利要求8所述的网页自动化测试***,其特征在于,
所述测试用例JS环境单元,进一步用于调用应用程序编程接口API在该网页浏览器中打开所述被测页面。
10.根据权利要求8所述的网页自动化测试***,其特征在于,所述代理脚本为JS代理脚本,所述JS对象包括函数和变量。
CN201210068307.6A 2012-03-15 2012-03-15 一种网页自动化测试方法和*** Active CN103309800B (zh)

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 CN103309800A (zh) 2013-09-18
CN103309800B true 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)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691245B1 (ko) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 웹 서비스 모니터링 시스템 및 방법
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 浪潮电子信息产业股份有限公司 网页应用自动化测试脚本的生成方法
CN105808417B (zh) * 2014-12-29 2019-02-26 平安科技(深圳)有限公司 自动化测试方法及代理服务器
CN106776317A (zh) * 2016-12-15 2017-05-31 百度在线网络技术(北京)有限公司 测试方法及装置
CN107729249A (zh) * 2017-10-18 2018-02-23 北京奇虎科技有限公司 浏览器兼容性测试方法、装置、***及电子设备
CN109992496A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 一种用于自动化测试的数据处理方法和装置
CN110347577B (zh) * 2018-04-04 2024-04-09 阿里巴巴集团控股有限公司 一种页面测试方法、装置及其设备
CN112860561B (zh) * 2021-02-23 2022-05-27 汇链通产业供应链数字科技(厦门)有限公司 一种自动化性能测试方法及终端装置
CN112817699B (zh) * 2021-02-23 2023-07-18 汇链通产业供应链数字科技(厦门)有限公司 一种批量部署的自动化性能测试方法及终端装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法
CN101882105A (zh) * 2010-06-01 2010-11-10 华南理工大学 一种测试Web网页并发环境下响应时间的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685273B1 (en) * 2004-03-31 2010-03-23 Compuware Corporation Methods and apparatus for collecting and displaying performance metrics from a web site

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1791037A (zh) * 2005-12-26 2006-06-21 北京航空航天大学 一种实现Web服务自动化测试的方法
CN101882105A (zh) * 2010-06-01 2010-11-10 华南理工大学 一种测试Web网页并发环境下响应时间的方法

Also Published As

Publication number Publication date
CN103309800A (zh) 2013-09-18

Similar Documents

Publication Publication Date Title
CN103309800B (zh) 一种网页自动化测试方法和***
CN108027722B (zh) 在编译和部署中动态更新应用
CN101739333B (zh) 应用程序的调试方法、调试工具及调试装置
US8799875B2 (en) Streamlining unit testing through hot code swapping
US9946628B2 (en) Embedding and executing trace functions in code to gather trace data
CN105204913A (zh) 一种在Android操作***上运行Linux应用程序的方法及***
CN107562969B (zh) 航空发动机控制***软件的集成方法和装置
CN104657247A (zh) 基于jtag调试方式实现通用型故障注入***和故障注入方法
CN101706750B (zh) 一种基于嵌入式模拟器的测试桩获取方法
US9824000B1 (en) Testing calling code dynamically with random error injection based on user-specified configuration
CN105117346A (zh) 虚拟化平台的分布式***自动化测试方法及***
Zhang et al. Environmental modeling for automated cloud application testing
CN104657263A (zh) 基于jtag调试方式实现通用型目标码覆盖率测试***和测试方法
CN103631708A (zh) 程序测试方法及程序测试装置
CN103186463B (zh) 确定软件的测试范围的方法和***
CN107861875B (zh) 一种混合移动应用的模拟方法及***
CN104850476A (zh) 跨平台接口自动化测试方法及***
CN111580409B (zh) 面向实时嵌入式***的故障仿真测试方法
CN105027089B (zh) 内核功能性检查器
CN113127329B (zh) 脚本调试方法、装置及计算机存储介质
CN102331961A (zh) 并行模拟多个处理器的方法及***、调度器
CN109144849A (zh) 一种嵌入式软件调测方法
CN103631704A (zh) 通信设备的自动化测试***及方法
CN110990252B (zh) 一种嵌入式飞控软件测试质量和效率的测试方法
CN114385258A (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