CN102511037A - 用于自动测试web应用的方法和系统 - Google Patents
用于自动测试web应用的方法和系统 Download PDFInfo
- Publication number
- CN102511037A CN102511037A CN2010800409437A CN201080040943A CN102511037A CN 102511037 A CN102511037 A CN 102511037A CN 2010800409437 A CN2010800409437 A CN 2010800409437A CN 201080040943 A CN201080040943 A CN 201080040943A CN 102511037 A CN102511037 A CN 102511037A
- Authority
- CN
- China
- Prior art keywords
- web
- test
- web application
- browser
- code
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000008859 change Effects 0.000 claims description 14
- 238000007689 inspection Methods 0.000 claims description 12
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 2
- XXUZFRDUEGQHOV-UHFFFAOYSA-J strontium ranelate Chemical compound [Sr+2].[Sr+2].[O-]C(=O)CN(CC([O-])=O)C=1SC(C([O-])=O)=C(CC([O-])=O)C=1C#N XXUZFRDUEGQHOV-UHFFFAOYSA-J 0.000 description 15
- 230000004044 response Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 241001275944 Misgurnus anguillicaudatus Species 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008570 general process Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 101100323865 Xenopus laevis arg1 gene Proteins 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
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/3692—Test management for test results analysis
-
- 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/3664—Environments for testing or debugging software
-
- 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/3696—Methods or tools to render software testable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于自动测试WEB浏览器内部运行的WEB应用的方法和系统。测试代码段被包括在WEB应用代码中。HTTP服务器向配备有测试代码的WEB应用提供测试服务。通过API接口,测试代码请求HTTP服务器对用户输入进行仿真并且将其发送给浏览器。HTTP服务器生成与该用户输入相对应的仿真系统事件(鼠标点击、键盘输入等),并且将其发送给浏览器。浏览器照常处理针对WEB应用的系统事件。以此方式,测试代码将检查WEB应用的数据结构(对象),并且WEB应用的整个环境也将被包括。当检查到WEB应用对对象的良好处理时,WEB应用测试代码可以请求HTTP服务器将对象(例如,JSON格式)存储在库中并且从库中获取对象。测试代码将会对WEB应用处理之前和之后的对象进行比较以检查正确执行。
Description
技术领域
本发明总体上涉及软件应用的开发,并且更具体地,涉及用于测试web应用的方法。
背景技术
Web应用的一大问题在于找出一种有效的方法用于web接口的测试自动化。该问题与利用web 2.0新技术(如AJAX或JavaScript框架,例如Dojo)而建立的web接口更为相关。Web 2.0应用的网页不仅仅是动态的而且是非常复杂的应用,它是多个面向对象语言DOM元素(DOM是文档对象模型,它是用于表示HMTL页面以及管理HMTL中对象的硬件和语言独立的模型)的合成的结果。每个DOM元素可以通过JavaScript(JavaScript是SUN微系统公司或其子公司在美国和其他国家的商标或注册商标)代码而动态构建,JavaScript代码与后端交互并且实现AJAX(异步JavaScript和XML)技术,以创建客户端侧web应用甚至应用CSS样式表以允许从客户端侧改变外观。而且,用于创建DOM元素的代码散布在多个点中,还可能由独立编写的(利用AJAX框架创建的)小部件(widget)生成以实现单个功能。
主要问题不仅仅在于实现用于单元测试套件的系统以测试单个功能、单小部件类,而且还在于测试由小部件生成的DOM元素与产生DOM元素的其他对方之间的真实交互。
用于测试web应用的现有技术工具仅基于网页或应用的“外部”外观,或者即使他们知道DOM元素,也将完全不顾应用的内部。反之,应用无法强制对这一重要区域的测试,因为它无法访问和驱动自身的“外部”行为,这种软件对于主控环境(例如,浏览器中运行的那些应用)具有强依赖性。自动地测试此类web应用是当今的一个挑战。
美国专利申请US2004/0025083A1描述了在程序中嵌入测试代码的一般性思想,使得该程序能够测试其功能。但是,尽管该发明的范围较宽,但是不能够使用该方法来解决完全在浏览器和主控浏览器的操作系统的上下文中对应用的内部进行测试这一问题。应用中依赖于环境差异的某些代码部分无法被测试;此外,应用中不仅依赖于此类差异而且还依赖于此类差异可能导致执行的不同代码路径的某些代码部分同样将无法测试。例如,web应用必须在所支持的诸如Internet Explorer(Internet Explorer是微软公司在美国和/或其他国家中的商标)、Firefox(Firefox是Mozilla Foundation的注册商标)、Opera(Opera是Opera Software ASA的商标或注册商标)等每个浏览器上独立地测试。然而,出于测试的目的,使测试代码忽略每个浏览器可能引起的差异并且仅仅考虑对软件功能的直接调用,这样做是不可靠的。
需要一种利用对web接口的页面中的用户输入进行仿真代码来配置接口代码的方法,以便在浏览器和主控浏览器的操作系统的上下文中测试应用的内部。
发明内容
因此,本发明的目的之一在于提供一种自动测试方法,其对web接口的页面中的用户输入进行仿真,并且在浏览器和主控该浏览器的操作系统的上下文中验证web应用的web接口内部数据结构。
根据权利要求1,该目的利用一种用于自动测试运行在测试计算机的web浏览器内部的web应用的方法来实现,该web应用配备(400)有测试代码,所述方法包括:
-通过web应用中定义的API,从该web应用中执行的测试代码向HTTP服务器发送(410)消息以请求该HTTP服务器对用户输入进行仿真,所述用户输入与该web应用中运行的测试代码相关;
-HTTP服务器接收消息(420),根据该消息通过至少一个系统事件对用户输入进行仿真,并且将其提供给该网络浏览器;
-Web浏览器处理(430)仿真的至少一个系统事件,该仿真的至少一个系统事件自身触发web应用中的一些代码的执行;
-Web应用中的测试代码通过检视包括Javascript和DOM对象的web应用内部数据结构来检查(440)由该至少一个系统事件对web应用中的一些代码的触发的结果的有效性。Web应用的该内部数据结构包括网页上可见的HTML元素以及内部计数器或其他可能的变量和对象。
该方法还允许通过在仿真用户输入之后对应用数据结构的检视来测试该应用的数据结构。该方法还允许通过将仿真用户输入已经发生之后的对象状态与已存储的模型对象状态进行比较来检查应用内部数据结构。
对象可以是HTML对象、DOM对象或Javascript对象。一种自动测试系统将包括HTTP服务器以及用于生成与所测试的系统输入相对应的仿真系统事件的代码。
为了全面地测试web应用,本发明的方法不仅包括编写一些测试代码并且将该测试代码嵌入到应用中,而且还给予web应用对“外部”环境的访问,包括重现用户与web应用的真实交互的能力。该方法允许对外部输入进行仿真,使得能够如同该外部输入来自人类用户或一些其他外部事件源那样接收该外部输入。以此方式,主控环境将也能够处理该事件并且更新主控环境自己的数据结构,这对应用的行为也具有直接影响。在没提出该系统的情况下,没有测试能够覆盖整个软件功能。
Web应用能够借助于外部服务从“外部”与其自身交互。该服务控制浏览器和外部系统(盘等),并且借助于与特殊编码的URL的HTTP连接来向web应用提供服务。Web应用转而使用所提供的服务从“外部”操纵和控制该web应用自己的内部状态,这通常无法利用目前的测试自动化系统实现。
下面的方法和系统通过对人类用户输入进行重现和仿真而克服了目前测试方法的限制,并且使用该仿真来验证其内部数据结构和算法。该方法从该网页本身内部的Javascript代码调用由用户输入生成的系统事件,并且产生web接口的改变(由此改变例如对象模型元素DOM元素)。一旦改变被反映在DOM元素上(通过用户事件请求),Javascript代码可以通过与预期值进行比较来检查该内部数据结构的状态。
本发明的方法提供以下优点:
-可以通过测试应用网页中的全部DOM元素来测试重现客户情景的DOM元素的一切。该技术方案允许将感兴趣的测试用例覆盖到其他类型的产品无法覆盖的高级示例部分上。
-可以在页面自己的内部和外部测试网页。
-一种基于DOM检查和/或通过JSON(用于Javascript对象标记,是用串来表示对象的简单格式)对象比较的检查验证点的方式。
-该技术方案不仅使用于DOJO框架,而且可以在用于生成网页DOM元素的全部技术上使用。
-可以在用于测试套件和应用的语言不同于Javascript时实现本发明的方法。语言只需要是浏览器可理解的。
相对于现有技术的自动测试产品和方法,特别是对于web应用的自动测试产品和方法,现有技术虽然提供了多种特征,但是最终测试结果是通过将应用的“输出”与已知为正确的某些模板进行比较来获得的。对于web应用,输出基本上是其产生或改变的HTML页面,或者等效地说,是其DOM表示。利用本发明的方法,web应用可以访问“外部”环境并且对真实行为(包括人类输入)进行仿真,这通过简单的代码配备是不可能的。只能够检视程序“外观”的工具不具有检视内部结构的能力。
附图说明
图1示出了可在其中实现本发明的技术方案的web应用的常见上下文;
图2示出了web应用的常见上下文中的优选实施方式的方法的实现;
图3是与根据优选实施方式的仿真事件交叉的web应用环境的示意图;
图4是根据优选实施方式的本发明方法的一般性流程图。
具体实施方式
图1示出了能够在其中实现本发明的技术方案的web应用的常见上下文。Web应用的常见上下文包括在用户工作站(105)的浏览器(110)中运行的web客户端应用(115)。浏览器使用用户的工作站的操作系统的文件系统(120)。如果web应用服务器是远程服务器,web客户端应用已通过网络从web应用服务器被下载。Web应用可以用Javascript编写。用户通过浏览器生成的网页与该应用交互。用户输入可以是在生成系统事件的网页字段中输入的数据(例如来自键盘或鼠标)。
图2示出了在web应用的常见上下文中的优选实施方式的方法的实现。以浏览器可理解的语言(例如JavaScript)编写的测试套件作为web应用(115)运行在测试主机(240)上。网络测试自动化系统(200)向运行在测试主机上的web应用(115)提供测试服务。测试服务包括三个子系统:用于接收命令的HTTP服务器(210),用于生成特定系统事件的系统事件生成器(215),以及用于在测试计算机是远程计算机时向运行测试套件的主机分派事件的远程事件分派器(225)。这些子系统可实现为软件程序。测试服务的子系统使用库(220)来下载/保存表示应用状态的串行化对象或其他数据(JSON可以是编码存储在该库中的串行化对象的一个实例)。
在测试主机中运行的web应用中,Javascript API支持Javascript测试代码的自引导(self-piloting)。用于Javascript API的自引导命令(235)允许来自浏览器(web应用)的Javascript代码与测试服务之间的通信。浏览器启动器(230)是可选的,并且用于基于测试主机的URL启动浏览器。当使用时,它从远程事件分派器(225)接收事件并且将事件传输给浏览器,远程事件分派器(225)本身从系统事件生成器(215)接收事件。当不存在浏览器启动器时,浏览器可以直接接收仿真系统事件,因为浏览器在web应用中的测试代码执行之前即被启动。浏览器(110)接收并且处理测试主机上的相同事件。在web应用内部,测试套件代码(包含html/Javascript/Dojo代码的网页)包含用于测试对象的代码,并且使用用于Javascript API的自引导命令(235)来检查验证点以及触发针对提供测试服务的HTTP服务器(210)的动作。
注意,包括测试自动化系统和测试服务器的组件的整个测试系统可以位于单个计算机上。在测试系统和测试服务器位于单个计算机上的情况中,不需要具有远程事件分派器(225),并且库是web应用本地的。
Javascript API建立与HTTP服务器的通信,以允许web应用发送事件命令。服务得到该命令,并且通过系统事件生成器生成由浏览器(其总是作为置顶窗口运行)捕捉的键盘或鼠标事件,事件和网页改变如同由用户自己创建的那样发生改变。此时,测试自动化代码继续在web应用内部执行自己。
基于网页对象检查(例如,DOM检查)的验证点的示例:
假设web接口提供按钮。当用户点击该按钮时显示新面板。在该示例中,测试自动化的Javascript代码应该是下面这样的:Javascript请求鼠标在上述按钮的元素上的点击。然后,服务通过Javascript API接收命令并且产生相关的系统事件。一旦接收到事件,在DOM中生成新的容器结构(<DIV>)以包含新面板(子DOM)。Javascript代码继而可以检查该DOM元素是否如预期那样被插入。
基于对象状态检查的示例验证点:
用于实现验证点的另一种方式是:在请求仿真系统事件之前保存对象(例如被线性化为JSON串),然后一旦接收仿真系统事件并且改变应被应用于DOM,便可以加载之前保存的JSON对象并且将其与改变的对象进行比较。假设web应用在网页中包括一个小部件,其在鼠标位于其上时改变背景颜色。假设,在主库上将该小部件对象串行化为主值(当鼠标位于该小部件之上时具有预期颜色的背景颜色)。在这种情况中,Javascript测试包括请求Javascript命令事件“鼠标在小部件之上”,继而,当该事件到达浏览器并且鼠标自动移动到该小部件之上时,Javascript测试请求服务对实际小部件状态与库中维护的小部件状态进行比较。这些测试套件中的每个测试套件生成以下动作:在动态页面上做出HTTP请求,保存JSON对象作为当前状态,生成事件命令,(由浏览器)捕获事件和页面改变,通过将结果与主值(模板)进行比较来验证DOM改变,将JSON对象与主值进行比较。每个测试套件生成浏览器与系统之间的任意类型的常见交互。
可以实现以下示例性测试:
●“预测”,(生成用于键入要搜索的字符串的第一字符的事件)。
●“字段确认”(生成全部键盘字符)。
●“保存页面”(生成用于访问浏览器菜单并且保存页面的事件)。
●“文件上传”(生成用于在浏览器弹出窗口上键入并且打开文件的事件)。
●“本地化”(生成访问浏览器菜单并且改变浏览器语言的事件)。
●“浏览器依赖”,生成用于测试事件在不同浏览器上的不同行为的相同键盘和鼠标事件。
●“可访问性测试用例”,使用一系列键盘事件(空格、回车)。
用于Javascript API的自引导命令在一个端口上被异步地发送到HTTP服务器,例如:
http://Servicehostname:port/?receiverhost=hostname&command=<name>&argl=valuel&.......&argN=valueN
某些基本API命令可以如下:
click(x,y)(点击(x,y))
doubleclick(x,y)(双击(x,y))
key(k)’特殊的键是(制表,回车,左,右,上,下)
pause(delay)(暂停(延迟))
fileload(filename)(文件上传(文件名))
filesave(filename)(文件保存(文件名))
用于基于JSON比较的验证点的一些API命令可以如下:
saveAsJSON(object,name),保存对象为JSON字串。
ObjectloadJSON(name),将JSON字串转化成对象。
checkJSON(object,object),比较两个JSON对象。
图3是与根据优选实施方式的仿真事件交叉的web 2.0应用环境的示意图。对于事件处理的学习允许理解与仅仅提出将代码嵌入到程序中的现有测试方法的差异。Web 2.0应用存活于容器(例如,web浏览器)中,该容器提供对关键组件的支持(例如,HTML绘制、文档的DOM表示,Javascript语言解释器和函数库、HTTP和HTTPS网络通信,等等)以及用于从系统接收实践(例如,响应于用户动作或输入)的机制。此类容器以及全部相关组件的实现和行为对于web 2.0应用而言至关重要:如果在测试期间没有考虑这种的复杂环境,则无法全面测试web 2.0应用。
从图3中的步骤编号2处开始(向系统的事件生成请求)。基本上这同样是用户动作的相同起始点。如图所示,在被分派到web 2.0应用之前,实践通过多个组件和代码层并由其处理。在这期间,它通常通过例如修改其数据结构等而在代码层和组件中“留下踪迹”。当事件最终分派并且由web应用处理之后,应用可以对事件做出响应,就如同它在真实世界情况中被“真实”触发一样,也即,web应用将发现其环境已经处理了该事件并且有机会对其做出反应。这在应用仿真完全靠它自己接收事件而忽略所有这些处理的情况下是不可能的。
在web应用只能测试其对一类“抽象”事件(它是未知的,并且不影响环境和web应用容器)的响应的情况下,完全代码覆盖是不可能的。相反,每个容器(例如,web浏览器)彼此不同,并且通常甚至与他自己的其他版本也是不同的,对于web应用尤其如此。因此,有必要在每个所支持的环境中测试web应用,并且在在环境完全被集成到测试情境中的情况下也肯定是不可能的。
图3是事件如何被生成以及被分派到软件应用的示例。在事件被处理的同时,存在无法由嵌入式代码单独重现的影响主机环境的步骤(步骤编号3,用于对事件进行仿真的事件处理;以及编号5,由图中的浏览器重现事件的事件)。
图4是根据优选实施方式的本发明方法的一般性流程图。该方法在一个主机上实现,或者在两个主机但是两个服务器上实现。一个服务器在其环境(web浏览器)中运行web应用,并且与web应用对接的一个测试服务器操作测试。用于自动测试web应用的方法包括用于在web应用代码内实现测试代码以测试web应用的第一步骤(400)。第二步骤(410)由一段测试代码执行,用于通过API向测试服务器发送包括命令的消息。在第三步骤(420)中,测试服务器接收消息,并且解释该命令以对web应用的页面中的用户输入进行仿真,或者以生成web应用的环境和web应用均可理解的系统事件。用户输入或系统事件与web应用中运行的测试代码相关。web浏览器(430)处理触发所测试的通常web应用执行的用户输入或系统事件。Web应用中的测试代码编程地或是通过将web应用内部数据结构的表示与已知模板进行比较来检视web应用内部数据结构,从而检查(440)web应用代码执行的结果的有效性。
该方法的某些特定步骤涉及基于HTML对象检查的验证点的示例。例如,假设web面板(它是网页的一部分)中的用户鼠标点击生成将由应用显示的新web面板,则步骤410将包括要求鼠标点击仿真,并且步骤430还将包括web应用在其常规代码执行(不包括测试代码执行)中生成与一个HTML对象(DOM对象)实例化相对应的新容器结构,该HTML对象实例化对应于将要显示的新网页。步骤440将包括测试代码检查与新网页相对应的对象已在web应用中被正确地实例化。
该方法的其他特定步骤涉及基于对象状态检查的验证点的示例。例如,检查用户对小部件的使用已正确地改变了HTML页面的背景颜色。来自web应用的测试代码的请求(410)可以包括要求保存该小部件对象的初始状态(例如,将小部件保存为库中的JSON字串),并且通过Javascript命令要求要求在被显示给用户并且包括此小部件的网页中对系统事件(例如,鼠标的小部件上移动)进行仿真。继而,在接收到仿真系统事件时,当浏览器执行仿真鼠标移动时,web应用执行相应功能,并且测试代码(440)捕获网页改变、向测试服务(410)发送从库中获取保存对象(JSON字串)的新请求、通过web应用API接收保存的对象,测试代码读取当前小部件状态并且通过将JSON对象与库中保存的对象进行比较来验证DOM改变。每个测试套件生成浏览器与系统之间的任意类型的常见交互。
归纳而言,用于自动测试web应用的方法是完整的,因为它测试web应用的内部结构(440)和web应用的外部环境(430)。
说明内部结构测试的一个示例是:如果假设web应用保持内部计数器以跟踪出错小部件的数目,使得如果该数目大于零则整个面板是无效的并且不能被处理。检查web应用对来自用户的无效输入的正确响应的测试可以包括3个测试:
1)相应的小部件改变背景颜色以便显示错误,
2)消息出现以通知用户,
3)内部计数器增加一个单位。第3)点涉及应用的内部数据结构。内部计数器仅存在于web应用中,不能通过测试外部输入来测试内部计数器,因为没有HTML元素或外部表示对应于该计数器。代码可以分析自身。HTML对象、DOM对象或Javascript对象具有一种数据结构,当从web应用的web接口看时它是外部,而当其包括web应用的内部数据(如上述计数器)时它是内部的。
示出web应用的外部环境测试的一个示例是:假设在主控web应用的计算机的操作系统中,在web应用之外发生了一些事情。该测试方法可以测试该应用如何响应于系统事件而做出反应。如果改变浏览器或者改变web应用执行于其上的主机中的操作系统,则行为是不同的。因此,内部结构可以响应于外部事件而被测试,就像现有技术方法的嵌入式测试代码一样;应用的内部结构可以仅可以响应于由测试代码本身而非由系统上下文仿真的内部输入而被测试。
Claims (13)
1.一种用于自动测试运行于测试计算机的web浏览器内部的web应用的方法,所述web应用配备(400)有测试代码,所述方法包括:
通过所述web应用中定义的API,从所述web应用中执行的所述测试代码向HTTP服务器发送(410)消息以要求所述HTTP服务器对用户输入进行仿真,所述用户输入与运行于所述web应用中的所述测试代码相关;
所述HTTP服务器接收所述消息(420),并且触发系统事件生成器(215)对与所述用户输入相对应的至少一个系统事件进行仿真,并且将仿真的至少一个系统事件提供给所述web浏览器;
所述web浏览器处理(430)所述仿真的至少一个系统事件,所述仿真的至少一个系统事件自身触发所述web应用中的代码的执行;
所述web应用中的所述测试代码通过检视web应用内部数据结构,来检查(440)所述至少一个系统事件对所述web应用中的代码的所述触发的结果的有效性。
2.根据权利要求1所述的方法,其中
所述测试代码的检查步骤(440)包括:检查所述web应用正确地生成与将由所述web应用显示的网页修改相对应的内部数据结构。
3.根据权利要求2所述的方法,其中所述仿真的至少一个系统事件是需要所述网页修改的鼠标点击。
4.根据权利要求1所述的方法,还包括:
所述发送的步骤(410)包括:所述测试代码存储网页中的内部对象数据结构或外部对象数据结构的初始状态,在所述消息中要求所述HTTP服务器将所述初始状态存储在库中并且对与所述网页中的所述对象相关的至少一个系统事件进行仿真;
所述测试代码的检查步骤(440)包括:检查所述web应用已改变所述网页中的所述内部对象数据结构或所述外部对象数据结构,在所述网页的改变之后捕获所述对象数据结构,通过所述web应用中定义的相同API在新消息中要求测试服务器从所述库中获取所述对象的所述初始状态,接收获取的初始对象状态,并且通过将初始内部数据结构与改变的内部数据结构进行比较来验证所述改变是否正确。
5.根据权利要求4所述的方法,其中所述仿真的至少一个系统事件是网页中在对象之上的鼠标移动,所述对象是小部件。
6.根据权利要求1到5任一项所述的方法,其中所述步骤在HTML对象、DOM对象或Javascript对象上执行。
7.根据权利要求6所述的方法,其中在所述发送的步骤和所述检查的步骤中,当所述对象是Javascript对象时,所述对象由所述HTTP服务器作为JSON串在所述库中进行存储和获取。
8.根据权利要求1到7任一项所述的方法,其中所述发送的步骤还包括:在所述HTTP服务器在远程的情况下,将所述至少一个系统事件从所述HTTP服务器分派至所述web应用在其上执行的服务器。
9.根据权利要求1到8任一项所述的方法,还包括:以所述浏览器可理解的语言来编码所述测试和所述web应用的初始步骤。
10.根据权利要求1到9任一项所述的方法,还包括:以Javascript来编码所述测试和所述web应用的初始步骤。
11.根据权利要求1到10任一项所述的方法,其中所述发送的步骤(410)和所述应用检查的步骤(440)还包括:通过引导应用来手动触发所述应用内部的所述测试代码的初始步骤。
12.根据权利要求1到10任一项所述的方法,其中所述发送的步骤(410)和所述应用检查的步骤(440)由所述web应用在启动之后的执行而被自动执行。
13.一种系统,包括适于执行根据权利要求1到12任一项所述的方法的装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2010/061577 WO2012019639A1 (en) | 2010-08-10 | 2010-08-10 | A method and system to automatically testing a web application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102511037A true CN102511037A (zh) | 2012-06-20 |
Family
ID=43402193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800409437A Pending CN102511037A (zh) | 2010-08-10 | 2010-08-10 | 用于自动测试web应用的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US20120174075A1 (zh) |
JP (1) | JP5437493B2 (zh) |
CN (1) | CN102511037A (zh) |
DE (1) | DE112010002916T5 (zh) |
GB (1) | GB2497018A (zh) |
WO (1) | WO2012019639A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810084A (zh) * | 2012-11-07 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 一种js代码的测试方法、装置和系统 |
CN103810089A (zh) * | 2012-11-12 | 2014-05-21 | Sap股份公司 | 自动测试基于姿态的应用 |
CN104391786A (zh) * | 2014-10-31 | 2015-03-04 | 任子行网络技术股份有限公司 | 网页自动化测试系统及其方法 |
CN104699602A (zh) * | 2013-12-06 | 2015-06-10 | 国际商业机器公司 | 用于检测影响的方法和计算机 |
CN105607993A (zh) * | 2015-09-30 | 2016-05-25 | 北京奇虎科技有限公司 | 一种对应用的用户界面ui进行测试的方法和装置 |
CN105630669A (zh) * | 2014-11-20 | 2016-06-01 | 埃森哲环球服务有限公司 | 基于web的应用的自动化测试 |
CN109643272A (zh) * | 2016-06-29 | 2019-04-16 | 新思科技有限公司 | 自动http用户流模拟器 |
CN109684192A (zh) * | 2018-08-21 | 2019-04-26 | 平安普惠企业管理有限公司 | 基于数据处理的本地测试方法、设备、存储介质及装置 |
CN110245086A (zh) * | 2019-06-19 | 2019-09-17 | 北京字节跳动网络技术有限公司 | 应用程序稳定性测试方法、装置及设备 |
CN111209204A (zh) * | 2020-01-06 | 2020-05-29 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN111356986A (zh) * | 2017-11-16 | 2020-06-30 | 西门子股份公司 | 用于相互地集成应用程序特别是Web应用程序的方法 |
CN112181802A (zh) * | 2020-08-21 | 2021-01-05 | 长沙市到家悠享网络科技有限公司 | 测试方法及装置 |
CN112394977A (zh) * | 2020-11-16 | 2021-02-23 | 京东数字科技控股股份有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2327022B1 (en) * | 2008-07-22 | 2015-09-16 | Webtrends | Method and system for web-site testing |
US10169221B2 (en) * | 2008-07-22 | 2019-01-01 | Accelerate Group Limited | Method and system for web-site testing |
US9575878B2 (en) * | 2009-03-16 | 2017-02-21 | International Business Machines Corporation | Data-driven testing without data configuration |
EP3734449B1 (en) | 2010-06-18 | 2023-07-12 | Sweetlabs, Inc. | Systems and methods for integration of an application runtime environment into a user computing environment |
US20130191814A1 (en) * | 2010-07-27 | 2013-07-25 | Hitachi, Ltd. | Test scenario generation method, test scenario generation system, and test scenario generation program |
US8806647B1 (en) | 2011-04-25 | 2014-08-12 | Twitter, Inc. | Behavioral scanning of mobile applications |
KR101691245B1 (ko) * | 2012-05-11 | 2017-01-09 | 삼성에스디에스 주식회사 | 웹 서비스 모니터링 시스템 및 방법 |
US8881108B2 (en) * | 2012-06-28 | 2014-11-04 | Sap Ag | Test program for HTTP-communicating service |
US8775917B2 (en) | 2012-08-09 | 2014-07-08 | Sweetlabs, Inc. | Systems and methods for alert management |
US9081757B2 (en) | 2012-08-28 | 2015-07-14 | Sweetlabs, Inc | Systems and methods for tracking and updating hosted applications |
US8775925B2 (en) | 2012-08-28 | 2014-07-08 | Sweetlabs, Inc. | Systems and methods for hosted applications |
US10332005B1 (en) * | 2012-09-25 | 2019-06-25 | Narus, Inc. | System and method for extracting signatures from controlled execution of applications and using them on traffic traces |
US9069735B2 (en) | 2012-10-15 | 2015-06-30 | Sweetlabs, Inc. | Systems and methods for integrated application platforms |
EP2951718A4 (en) | 2013-01-29 | 2016-08-31 | Hewlett Packard Entpr Dev Lp | ANALYSIS STRUCTURE FOR WEB APPLICATION |
GB2511047A (en) | 2013-02-20 | 2014-08-27 | Ibm | Providing context in functional testing of web services |
EP2959401A4 (en) * | 2013-02-25 | 2016-09-28 | Hewlett Packard Development Co | PRESENTATION OF USER INTERFACE ELEMENTS BASED ON RULES |
US20140310590A1 (en) * | 2013-03-13 | 2014-10-16 | Bby Solutions, Inc. | Presentation layer software development kit for creation of dynamic webpages |
US9047404B1 (en) * | 2013-03-13 | 2015-06-02 | Amazon Technologies, Inc. | Bridge to connect an extended development capability device to a target device |
US9424172B1 (en) | 2013-03-15 | 2016-08-23 | Twitter, Inc. | Web services comparison tool |
CN104077213B (zh) * | 2013-03-26 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 一种webkit单元测试方法及装置 |
US9104814B1 (en) * | 2013-05-03 | 2015-08-11 | Kabam, Inc. | System and method for integrated testing of a virtual space |
US10025674B2 (en) * | 2013-06-07 | 2018-07-17 | Microsoft Technology Licensing, Llc | Framework for running untrusted code |
US9372787B2 (en) * | 2013-07-15 | 2016-06-21 | Sap Se | System and method for automating testing |
KR20150029184A (ko) * | 2013-09-09 | 2015-03-18 | 삼성에스디에스 주식회사 | 애플리케이션을 테스트하는 기법 |
US9323649B2 (en) * | 2013-09-30 | 2016-04-26 | International Business Machines Corporation | Detecting error states when interacting with web applications |
US9262311B1 (en) * | 2013-12-03 | 2016-02-16 | Amazon Technologies, Inc. | Network page test system and methods |
JP6215033B2 (ja) * | 2013-12-17 | 2017-10-18 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | テスト制御装置、通信システム、テスト制御方法、及びテスト制御プログラム |
US9749440B2 (en) | 2013-12-31 | 2017-08-29 | Sweetlabs, Inc. | Systems and methods for hosted application marketplaces |
CN104881355A (zh) * | 2014-02-27 | 2015-09-02 | 国际商业机器公司 | 一种用于检测测试覆盖的方法和系统 |
US10019247B2 (en) | 2014-05-15 | 2018-07-10 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US10089098B2 (en) | 2014-05-15 | 2018-10-02 | Sweetlabs, Inc. | Systems and methods for application installation platforms |
US10182068B2 (en) * | 2014-11-26 | 2019-01-15 | Entit Software Llc | Determine vulnerability using runtime agent and network sniffer |
IN2015DE00812A (zh) * | 2015-03-24 | 2015-04-03 | Hcl Technologies Ltd | |
US9921945B2 (en) * | 2015-04-06 | 2018-03-20 | Adp, Llc | Automatic verification of JSON data |
WO2016201495A1 (en) | 2015-06-15 | 2016-12-22 | Lens10 Pty Ltd | A system and method for use in regression testing of electronic document hyperlinks |
US9720800B2 (en) | 2015-08-28 | 2017-08-01 | International Business Machines Corporation | Auto-generating representational state transfer (REST) services for quality assurance |
US11132287B2 (en) * | 2016-05-18 | 2021-09-28 | Dynatrace Llc | Synthetic test recorder installed inline with a web portal |
CN106326115A (zh) * | 2016-08-17 | 2017-01-11 | 北京奇虎科技有限公司 | 一种测试api的方法、装置和系统 |
CN107808097A (zh) | 2016-09-09 | 2018-03-16 | 安提特软件有限责任公司 | JavaScript 路径枚举 |
WO2018097344A1 (ko) * | 2016-11-23 | 2018-05-31 | 라인 가부시키가이샤 | 탐지 결과의 유효성을 검증하는 방법 및 시스템 |
US10961321B1 (en) | 2017-01-06 | 2021-03-30 | Siwa Corporation | Methods and compositions for treating pain associated with inflammation |
KR101796009B1 (ko) * | 2017-03-07 | 2017-12-01 | 주식회사 한글과컴퓨터 | 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법 |
CN106991048A (zh) * | 2017-03-31 | 2017-07-28 | 杭州迪普科技股份有限公司 | 网页测试方法和装置 |
US10599426B2 (en) * | 2018-03-05 | 2020-03-24 | Bank Of America Corporation | Automated validation tool |
US10467127B2 (en) * | 2018-03-23 | 2019-11-05 | Lendingclub Corporation | Unified UI/UX and API testing of web applications |
CN111414301B (zh) * | 2019-01-07 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 调试应用程序的方法及装置 |
US10929276B2 (en) * | 2019-06-14 | 2021-02-23 | Paypal, Inc. | Simulation computing services for testing application functionalities |
CN110727596A (zh) * | 2019-10-15 | 2020-01-24 | 北京弘远博学科技有限公司 | 一种app接口自动化测试方法 |
US11341317B2 (en) * | 2019-10-16 | 2022-05-24 | Oracle International Corporation | Supporting piecewise update of JSON document efficiently |
CN110990283A (zh) * | 2019-12-04 | 2020-04-10 | 中国直升机设计研究所 | 一种机载显控软件健壮性自动测试方法 |
CN111078207B (zh) * | 2019-12-09 | 2023-08-29 | 浪潮云信息技术股份公司 | 基于cypress框架跨操作系统实现自动化网页模拟操作的方法 |
US11176022B2 (en) | 2019-12-27 | 2021-11-16 | Bank Of America Corporation | Health diagnostics and analytics for object repositories |
US11307911B2 (en) * | 2020-05-29 | 2022-04-19 | Microsoft Technology Licensing, Llc | File upload modifications for client side applications |
CN112231213A (zh) * | 2020-10-16 | 2021-01-15 | 广州助蜂网络科技有限公司 | Web自动化测试方法、系统、存储介质及终端设备 |
CN112579442B (zh) * | 2020-12-04 | 2024-04-09 | 的卢技术有限公司 | Ar hud测试方法、系统、计算机设备和存储介质 |
US20240004624A1 (en) * | 2022-05-25 | 2024-01-04 | Bionic Stork Ltd. | Techniques for recording operations in an application utilizing external initialization engines |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351693A (ja) * | 2001-03-06 | 2002-12-06 | Hewlett Packard Co <Hp> | 遠隔コンピュータテスト |
US20060064399A1 (en) * | 2004-09-21 | 2006-03-23 | Giuseppe De Sio | Method and system for testing distributed software applications |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
WO2008126796A1 (ja) * | 2007-04-06 | 2008-10-23 | International Business Machines Corporation | サービス・プログラムを生成する技術 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003044318A (ja) * | 2001-08-02 | 2003-02-14 | Fujitsu Ltd | テスト支援プログラムおよびテスト支援方法 |
US20040025083A1 (en) | 2002-07-31 | 2004-02-05 | Murthi Nanja | Generating test code for software |
US20060150111A1 (en) * | 2004-12-30 | 2006-07-06 | Microsoft Corporation | Methods and apparatus for evaluating aspects of a web page |
US8205120B2 (en) * | 2007-12-21 | 2012-06-19 | Sap Ag | Intelligent test framework |
-
2010
- 2010-08-10 US US13/395,302 patent/US20120174075A1/en not_active Abandoned
- 2010-08-10 CN CN2010800409437A patent/CN102511037A/zh active Pending
- 2010-08-10 DE DE112010002916T patent/DE112010002916T5/de not_active Withdrawn
- 2010-08-10 WO PCT/EP2010/061577 patent/WO2012019639A1/en active Application Filing
- 2010-08-10 JP JP2012528291A patent/JP5437493B2/ja not_active Expired - Fee Related
- 2010-08-10 GB GB1302793.3A patent/GB2497018A/en not_active Withdrawn
-
2013
- 2013-02-20 US US13/771,271 patent/US20130219368A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002351693A (ja) * | 2001-03-06 | 2002-12-06 | Hewlett Packard Co <Hp> | 遠隔コンピュータテスト |
US20060064399A1 (en) * | 2004-09-21 | 2006-03-23 | Giuseppe De Sio | Method and system for testing distributed software applications |
WO2008126796A1 (ja) * | 2007-04-06 | 2008-10-23 | International Business Machines Corporation | サービス・プログラムを生成する技術 |
CN101217425A (zh) * | 2008-01-04 | 2008-07-09 | 中兴通讯股份有限公司 | Web测试的方法及装置 |
Non-Patent Citations (2)
Title |
---|
ALI MESBAH ET AL.: "Crawling AJAX by Inferring User Interface State Changes", 《EIGHTH INTERNATIONAL CONFERENCE ON WEB ENGINEERING》, 31 July 2008 (2008-07-31) * |
ALI MESBAH, ARIE VAN DEURSEN: "Invariant-Based Automatic Testing of AJAX User Interfaces", 《ICSE "09 PROCEEDINGS OF THE 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING 》, 16 May 2009 (2009-05-16) * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810084A (zh) * | 2012-11-07 | 2014-05-21 | 腾讯科技(深圳)有限公司 | 一种js代码的测试方法、装置和系统 |
CN103810089B (zh) * | 2012-11-12 | 2021-12-03 | Sap欧洲公司 | 自动测试基于姿态的应用 |
CN103810089A (zh) * | 2012-11-12 | 2014-05-21 | Sap股份公司 | 自动测试基于姿态的应用 |
CN104699602B (zh) * | 2013-12-06 | 2017-06-23 | 国际商业机器公司 | 用于检测影响的方法和计算机 |
CN104699602A (zh) * | 2013-12-06 | 2015-06-10 | 国际商业机器公司 | 用于检测影响的方法和计算机 |
CN104391786B (zh) * | 2014-10-31 | 2018-04-27 | 任子行网络技术股份有限公司 | 网页自动化测试系统及其方法 |
CN104391786A (zh) * | 2014-10-31 | 2015-03-04 | 任子行网络技术股份有限公司 | 网页自动化测试系统及其方法 |
CN105630669A (zh) * | 2014-11-20 | 2016-06-01 | 埃森哲环球服务有限公司 | 基于web的应用的自动化测试 |
CN105607993A (zh) * | 2015-09-30 | 2016-05-25 | 北京奇虎科技有限公司 | 一种对应用的用户界面ui进行测试的方法和装置 |
CN105607993B (zh) * | 2015-09-30 | 2018-04-20 | 北京奇虎科技有限公司 | 一种对应用的用户界面ui进行测试的方法和装置 |
CN109643272A (zh) * | 2016-06-29 | 2019-04-16 | 新思科技有限公司 | 自动http用户流模拟器 |
CN111356986B (zh) * | 2017-11-16 | 2023-12-05 | 西门子股份公司 | 用于相互地集成应用程序特别是Web应用程序的方法 |
US11755353B2 (en) | 2017-11-16 | 2023-09-12 | Siemens Aktiengesellschaft | Method for reciprocally integrating applications, in particular web applications |
CN111356986A (zh) * | 2017-11-16 | 2020-06-30 | 西门子股份公司 | 用于相互地集成应用程序特别是Web应用程序的方法 |
CN109684192A (zh) * | 2018-08-21 | 2019-04-26 | 平安普惠企业管理有限公司 | 基于数据处理的本地测试方法、设备、存储介质及装置 |
CN109684192B (zh) * | 2018-08-21 | 2024-03-01 | 天航长鹰(江苏)科技有限公司 | 基于数据处理的本地测试方法、设备、存储介质及装置 |
CN110245086B (zh) * | 2019-06-19 | 2023-05-16 | 北京字节跳动网络技术有限公司 | 应用程序稳定性测试方法、装置及设备 |
CN110245086A (zh) * | 2019-06-19 | 2019-09-17 | 北京字节跳动网络技术有限公司 | 应用程序稳定性测试方法、装置及设备 |
CN111209204A (zh) * | 2020-01-06 | 2020-05-29 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN111209204B (zh) * | 2020-01-06 | 2023-09-22 | 杭州涂鸦信息技术有限公司 | 一种基于JSON的web自动化测试方法及其系统和装置 |
CN112181802A (zh) * | 2020-08-21 | 2021-01-05 | 长沙市到家悠享网络科技有限公司 | 测试方法及装置 |
CN112394977A (zh) * | 2020-11-16 | 2021-02-23 | 京东数字科技控股股份有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
GB2497018A (en) | 2013-05-29 |
WO2012019639A1 (en) | 2012-02-16 |
JP5437493B2 (ja) | 2014-03-12 |
GB201302793D0 (en) | 2013-04-03 |
JP2013504139A (ja) | 2013-02-04 |
US20120174075A1 (en) | 2012-07-05 |
US20130219368A1 (en) | 2013-08-22 |
DE112010002916T5 (de) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102511037A (zh) | 用于自动测试web应用的方法和系统 | |
US9032067B2 (en) | Determining differences in an event-driven application accessed in different client-tier environments | |
US10977433B2 (en) | System and method for input data validation and conversion | |
JP5500259B2 (ja) | 動的なWebアプリケーションのクライアント層の検証 | |
EP2487595B1 (en) | Web service for automated cross-browser compatibility checking of web applications | |
JP5942750B2 (ja) | ビジュアル比較方法 | |
CN104956362B (zh) | 分析web应用程序的结构 | |
JP6036100B2 (ja) | ウェブ・ブラウザー画面の段階的な視覚的比較 | |
US8543983B2 (en) | Creating hierarchical message sequence charts for visualizing user-interactive applications | |
WO2019046764A1 (en) | SYSTEM AND METHOD FOR IDO DEVICE SIGNAL SIMULATION | |
US20120233239A1 (en) | Device Specific Handling of User Interface Components | |
EP3796155B1 (en) | Improving acquisition process of gui elements using user input | |
CN105095092A (zh) | 基于静态分析和动态运行的Web应用JavaScript代码原子性违反检测 | |
WO2014209263A1 (en) | Contextual-based localization based on manual testing | |
CN103377128A (zh) | 用于Web应用的竞争检测的方法和系统 | |
US11714625B2 (en) | Generating applications for versatile platform deployment | |
US20160034378A1 (en) | Method and system for testing page link addresses | |
US20180210819A1 (en) | System and method of controlling a web browser plug-in for testing analytics | |
US9547505B2 (en) | Adaptive contextual graphical representation of development entities | |
KR20170047605A (ko) | 솔루션의 테스트 자동화 시스템 및 방법 | |
Sensiate et al. | A mechanism for identifying dynamic components in rich internet applications | |
CN116521223A (zh) | 一种低代码平台中组件间的数据联动方法及相关设备 | |
TWI394079B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120620 |