CN107508720A - 一种自动化测试方法及装置 - Google Patents
一种自动化测试方法及装置 Download PDFInfo
- Publication number
- CN107508720A CN107508720A CN201710614399.6A CN201710614399A CN107508720A CN 107508720 A CN107508720 A CN 107508720A CN 201710614399 A CN201710614399 A CN 201710614399A CN 107508720 A CN107508720 A CN 107508720A
- Authority
- CN
- China
- Prior art keywords
- web
- response message
- test
- message
- request message
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- 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]
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Abstract
本发明提供一种自动化测试方法及装置,方法包括:网页WEB测试端接收待测试WEB系统发送的第一应答消息,第一应答消息为待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;WEB测试端保存第一应答消息,并接收WEB客户端发送的第二请求消息,第二请求消息是WEB客户端根据WEB测试端发送的第一应答消息确定的;WEB测试端从第一应答消息以及第二请求消息中确定存在匹配关系的请求参数和页面元素;WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。由于生成的回放测试脚本文件与WEB待测试系统存在于同一个浏览器会话中,自动化脚本不需要任何翻译即可直接执行。且生成的回放测试脚本是基于浏览器语言的,简化了编程的过程。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化测试方法及装置。
背景技术
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。
在自动化测试领域中,传统的自动化测试脚本的开发一般有两种方法。第一种方法是通过手工运行一次测试,同时使用自动化测试工具的录制功能,把所进行的操作记录下来,生成测试脚本。这种技术生成的脚本回放成功率比较低,后期维护也比较困难。第二种方法是编写测试框架,对测试需要的基础操作提供接口供调用,测试人员根据用例操作需求,手工编写调用接口的自动化测试脚本,这种方法对测试人员的代码水平要求很高。
例如,现有技术中主要使用selenium产品来进行自动化测试,由于selenium测试框架使用的语言较难,且selenium需要调用驱动来调用浏览器进行测试,当浏览器升级后,会出现驱动与浏览器不匹配的现象,从而影响测试。
综上所述,现有技术中不能提供一种编译简单、兼容性高的测试方法。
发明内容
本发明提供一种自动化测试方法及装置,用于解决现有技术中不能提供一种编译简单、兼容性高的测试方法的问题。
本发明实施例提供一种自动化测试方法,包括:网页WEB测试端接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;
所述WEB测试端保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
本发明实施例中,WEB测试端在WEB客户端与WEB待测试系统之间,用于转发以及保存WEB测试端与WEB待测试系统之间传输的请求消息以及应答消息,并根据第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素,以及根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件;由于生成的回放测试脚本文件与WEB待测试系统存在于同一个浏览器会话中,自动化脚本不需要任何翻译即可直接执行,相比于其他自动化方法省去了调用驱动并转换的优势,大幅提升了性能。且生成的回放测试脚本是基于浏览器语言的,与现有技术相比,简化了编程的过程。
进一步地,所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素,包括:
所述WEB测试端解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
所述WEB测试端在所述第一应答消息中确定所述属性键对应的页面元素;
所述WEB测试端根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
本发明实施例中,WEB测试端根据第二请求消息以及第一应答消息中的对应关系,生成了回放测试脚本文件,由于WEB测试端是直接根据两次保存的消息确定回归测试脚本文件的,省去了编程的过程,降低了编译难度。
进一步地,所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件后,还包括:
所述WEB测试端将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
本发明实施例中,WEB测试端在接收到第二请求后,还需要将第二请求发送给待测试WEB系统,以使待测试WEB系统在接收到第二请求后,确定对应的第二应答消息,WEB测试端能够根据第二应答消息确定脚本编写阶段的页面内容,以便WEB测试端能够进行比对。
进一步地,所述WEB测试端接收待测试WEB系统发送的第二应答消息后,还包括:
所述WEB测试端启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;
所述WEB测试端接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;
所述WEB测试端接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;
所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果。
本发明实施例中,在测试回放阶段,WEB测试端会自动拉起浏览器,并向待测试WEB系统发送第一请求消息,在获得待测试WEB系统发送的第一应答消息后,插入生成的回放测试脚本,并发送给WEB客户端,以使WEB客户端进行渲染并提交给WEB测试端,WEB测试端再转发给待测试WEB系统,根据待测试WEB系统给的响应消息以及第二应答消息确定自动化测试是否成功;在本发明实施例中,不需要进行代码编译,只需要将回归测试脚本插入就可以完成测试回放,减少了测试工作量。
进一步地,所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果,包括:
所述WEB测试端根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
所述WEB测试端根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
本发明实施例中,WEB测试端能够根据第二应答消息以及第四应答消息生成的网络页面确定测试结果,若网络页面一致,则认为测试结果通过。
进一步的,所述WEB测试端在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息,包括:
所述WEB测试端确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
所述WEB测试端将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
本发明实施例中,由于需要将回放测试脚本文件中的内容准确插入到第一应答消息中,所以需要插入头部标签体内或者正文标签体内。
本发明提供一种自动化测试装置,包括:
收发单元,用于接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
确定单元,用于从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
脚本生成单元,用于根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
本发明实施例中,根据第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素,以及根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件;由于生成的回放测试脚本文件与WEB待测试系统存在于同一个浏览器会话中,自动化脚本不需要任何翻译即可直接执行,相比于其他自动化方法省去了调用驱动并转换的优势,大幅提升了性能。且生成的回放测试脚本是基于浏览器语言的,与现有技术相比,简化了编程的过程。
进一步地,所述确定单元具体用于:
解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
在所述第一应答消息中确定所述属性键对应的页面元素;
根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
进一步地,所述收发单元还用于:
将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
进一步地,所述装置还包括:
测试单元,用于启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;根据所述第四应答消息以及所述第二应答消息确定测试结果。
进一步地,所述测试单元具体用于:
根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
进一步地,所述测试单元具体用于:
确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
本发明还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一所述的方法。
本发明还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一所述方法。
本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行权利要求上述任一所述方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种自动化测试系统的结构示意图;
图2为本发明实施例提供的一种自动化测试方法的流程示意图;
图3为本发明实施例提供的一种自动化测试方法的流程示意图;
图4为本发明实施例提供的一种自动化测试装置的结构示意图;
图5为本发明实施例提供的一种自动化测试方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种自动化测试系统,如图1所示,包括:
WEB测试端100,待测试WEB系统200以及WEB客户端300,WEB测试端100位于待测试WEB系统200与WEB客户端300之间,用于保存WEB客户端300与待测试WEB系统200之间的传输报文。
可选的,在本发明实施例中,WEB测试端100为WEB代理服务器,也就是说,只要将WEB代理服务器配置正确,即可实现WEB测试端100的功能。
在本发明实施例中,自动化测试分为两个阶段,第一阶段为测试代码生成阶段,第二阶段为回归测试阶段,下面就分两个阶段分别来介绍。
在测试代码生成阶段,测试人员开始发起测试,WEB客户端300接受测试人员在WEB客户端300上输入的第一请求消息,WEB客户端300将第一请求消息发送给WEB测试端100。
WEB测试端100在接收到第一请求消息后,将第一请求消息进行保存,并解析第一请求消息,可选的,在本发明实施例中,第一请求消息为HTTP请求报文,HTTP请求报文中包括请求方法、请求头以及请求正文等内容,WEB测试端100在解析出HTTP请求的目的地址后,将第一请求消息发送给目的地址,即待测试WEB系统200。
待测试WEB系统200在接收到第一请求信息后,根据第一请求信息确定第一应答消息,并将第一应答消息发送给WEB测试端100,可选的,在本发明实施例中,第一应答消息为网页消息,即第一应答消息中包括超文本标记语言HTML,层叠样式表CSS以及直译式脚本语言javascript。
WEB测试端100在接收到第一应答消息后,保存第一应答消息,并将第一应答消息转发给WEB客户端300。
WEB客户端300在接收到第一应答消息后,对第一应答消息进行渲染展示,即将第一应答消息生成对应的网页展现给待测试人员,待测试人员根据第一应答消息生成第二请求消息。
可选的,在本发明实施例中,第二请求消息是待测试人员在第一应答消息生成的对应页面中输入相应的内容后确定的,例如,第一请求消息中是待测试人员请求待测试WEB系统200返回登录页面,则第一应答消息中包括两个主要部分,一个是登录名,一个是登录密码。
测试人员在WEB客户端300收到第一应答消息后,在对应的位置填入用户名以及密码信息,生成了第二请求消息。
WEB客户端300将第二请求消息发送给WEB测试端100,WEB测试端100确定第二请求消息以及第一应答消息中存在匹配关系的请求参数和页面元素,并根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
可选的,在本发明实施例中,WEB测试端100解析第二请求消息,获取请求参数的属性键以及所述属性键对应的属性键值;WEB测试端100在第一应答消息中确定属性键对应的页面元素;WEB测试端100根据属性键对应的页面元素以及属性键对应的属性键值生成回放测试脚本文件。
可选的,在本发明实施例中,第二请求消息为HTTP请求,请求参数为WEB测试端100解析出的HTTP请求中的参数,确定参数的属性键,以及属性键对应的属性键值。
例如,在本发明实施例中,WEB测试端100接收到的第二请求消息如下:
//HTTP请求头内容
POST http://172.17.138.108:8080/login HTTP/1.1
Connection:keep-alive
Content-Length:137
User-Agent:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/55.0.2883.87Safari/537.36
Content-Type:application/x-www-form-urlencoded
Accept:*/*
Accept-Encoding:gzip,deflate
Accept-Language:zh-CN,zh;q=0.8
//HTTP请求体内容
name=admin&password=123456
从上述第二请求消息中,WEB测试端100解析请求参数的为:
URL=http://172.17.138.108:8080/login
name=admin
password=123456
WEB测试端100确定属性键为“name”以及“password”,属性键“name”对应的属性键值为“admin”,属性键“password”对应的属性键值为“123456”。
WEB测试端100在第二请求消息中确定与属性键对应的页面元素,例如,在本发明实施例中,第一应答消息为:
<html>
<head>……</head>
<body>
<form name="formA"id="formA"method="POST"action="login.action">
<input type="text"name="name"value=""/>
<input type="text"name="password"value=""/>
<input type="submit"name="sub"value="提交"/>
</form>
</body>
</html>
WEB测试端100根据属性键“name”在第一应答消息中对应的页面元素为“inputtype="text"name="name"value=""/”,属性键“password在第一应答消息中对应的页面元素为“input type="text"name="password"value=""/”。
WEB测试端100根据属性键对应的页面元素以及属性键对应的属性键值生成回放测试脚本文件为:
<script>
If(document.ready){
document.getElementById("name").value=admin
document.getElementById("password").value=123456
document.getElementById("formA").submit();
}
</script>
WEB测试端100在确定了回放测试脚本文件后,保存回放测试脚本文件,并且将第二请求消息发送给待测试WEB系统200,待测试WEB系统200根据第二请求消息确定了第二应答消息,待测试WEB系统200将第二应答消息发送给WEB测试端100,WEB测试端100将第二应答消息发送给WEB客户端300,WEB客户端300将第二应答消息展现给待测试人员,若待测试人员确定第二应答消息符合预期,则确定不再更改回放测试脚本文件。
在回归测试阶段,WEB测试端100启动WEB客户端300,并且将保存的第一请求消息发送给WEB客户端300,也就是说,WEB客户端300进行启动,且WEB客户端300在接收到第一请求消息后重新向WEB测试端100发送第一请求消息,WEB测试端100在解析第一请求消息后,确定目的地址,即待测试WEB系统200的地址,WEB测试端100将第一请求消息发送给待测试WEB系统200;待测试WEB系统200根据第一请求消息确定第一应答消息,并将第一应答消息发送给WEB测试端100。
WEB测试端100在获取到第一应答消息后,调用已保存的回放测试脚本文件,在第一应答消息中插入回放测试脚本文件后得到第三应答消息,WEB测试端100将第三应答消息发送给WEB客户端300,WEB客户端300加载第三应答消息,即第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入回放测试脚本中的与页面元素对应的请求参数,并确定第三请求消息。
例如,在本发明实施例中,WEB客户端300会在渲染完成第一应答消息后自动执行回放测试脚本文件,即若第一应答消息为待测试WEB系统200返回的登录界面,包括登录名以及登录密码,则WEB客户端300会自动根据回放测试脚本文件在登录名出填入对应的值,在登录密码中填入对应的值,并自动点击提交。
可选的,在本发明实施例中,需要正确的在第一应答消息中插入回放测试脚本文件,所以在本发明实施例中,WEB测试端100首先确定第一应答消息的头部标签提或者正文标签提,例如下文表示的是第一应答消息的一部分:
<html>
<head>……</head>
<body>
//
//
<form name="formA"id="formA"method="POST"action="login.action">
<input type="text"name="name"value=""/>
<input type="text"name="password"value=""/>
<input type="submit"name="sub"value="提交"/>
</form>
</body>
<head>……</head>表示的是头部标签体,<body>……</body>表示的是正文标签体,WEB客户端100需要将回放测试脚本文件插入头部标签体内或者正文标签体内,形成第三应答消息。
例如,第三应答消息如下文所示:
<html>
<head>……</head>
<body>
//插入的自动化JS代码,原本此处应为空
<script>
If(document.ready){
document.getElementById("name").value=admin
document.getElementById("password").value=123456
document.getElementById("formA").submit();
}
</script>
//原网页的代码
<form name="formA"id="formA"method="POST"action="login.action">
<input type="text"name="name"value=""/>
<input type="text"name="password"value=""/>
<input type="submit"name="sub"value="提交"/>
</form>
</body>
WEB客户端300在提交后,即向WEB测试端100发送了第三请求消息,WEB测试端100在接收到第三请求消息后,向待测试WEB系统200转发第三请求消息,待测试WEB系统200在接到第三请求消息后,根据第三请求消息得到第四应答消息,并将第四应答消息发送给WEB测试端100。
WEB测试端100根据第四应答消息以及第二应答消息确定测试结果。可选的,在本发明实施例中,WEB测试端100根据第二应答消息确定第一网络页面,WEB测试端100根据第四应答消息确定第二网络页面,WEB测试端100根据第一网络页面以及第二网络页面确定测试结果。
例如,在本发明实施例中,若第一网络页面与第二网络页面中的内容完全一致,则认为测试结果正确。
为了更好的解释本发明实施例,下面通过具体的实施场景描述本发明实施例提供的一种自动化测试的流程中的回放测试脚本文件的流程,WEB客户端为WEB浏览器,WEB测试端为WEB代理服务器,具体的流程如图2所示:
步骤201,WEB客户端接收待测试人员的第一请求消息;
步骤202,WEB客户端将所述第一请求消息发送给WEB测试端,第一请求消息为HTTP请求;
步骤203,WEB测试端保存第一请求消息,并解析第一请求消息,解析出的第一请求消息中的目的地址为http://172.17.138.108:8080;第一请求消息的正文为登录请求;
步骤204,WEB测试端连接目的地址,并向目的地址即待测试WEB系统发送第一请求消息;
步骤205,待测试WEB系统根据第一请求消息中的登录请求,确定了登录页面;
步骤206,待测试WEB系统将登录页面作为第一应答消息发送给WEB测试端;
步骤207,WEB测试端保存第一应答消息;
步骤208,WEB测试端将第一应答消息发送给WEB客户端;
步骤209,WEB客户端加载第一应答消息,即显示登录界面,登录界面中包括登录名以及密码两个部分;
步骤210,WEB客户端接收待测试人员输入的用户名admin以及密码123456,生成第二请求消息;
步骤211,WEB客户端将第二请求消息发送给WEB测试端;
步骤212,WEB测试端保存第二请求消息,并根据第二请求消息与第一应答消息的对应关系,确定回放测试脚本文件;
步骤213,WEB测试端保将第二请求消息发送给待测试WEB系统;
步骤214,待测试WEB系统根据第二请求消息确定第二应答消息,第二应答消息为登录成功页面;
步骤215,待测试WEB系统将第二应答消息发送给WEB测试端;
步骤216,WEB测试端保存第二应答消息;
步骤217,WEB测试端将第二应答消息发送给WEB客户端。
下面通过具体的实施场景描述本发明实施例提供的一种自动化测试的流程中的回归测试的流程,WEB客户端为WEB浏览器,WEB测试端为WEB代理服务器,具体的流程如图3所示:
步骤301,WEB测试端向WEB客户端发送启动指令,并将第一请求消息发送给WEB客户端;
步骤302,WEB客户端启动,重新向WEB测试端发送第一请求消息;
步骤303,WEB测试端将第一请求消息发送给待测试WEB系统;
步骤304,待测试WEB系统根据第一请求消息确定第一应答消息;
步骤305,待测试WEB系统将第一应答消息发送给WEB测试端;
步骤306,WEB测试端将回放测试脚本文件插入到第一应答消息中的头部标签体内或者正文标签体内,形成所述第三应答消息;
步骤307,WEB测试端将第三应答消息发送给WEB客户端;
步骤308,WEB客户端执行将回放测试脚本文件插入到第一应答消息中的过程,并生成第四请求消息;
步骤309,WEB客户端将第四请求消息发送给WEB测试端;
步骤310,WEB测试端将第四请求消息发送给待测试WEB系统;
步骤311,待测试WEB系统根据第四请求消息生成第四应答消息;
步骤312,待测试WEB系统将第四应答消息发送给WEB测试端;
步骤313,WEB测试端根据第四应答消息以及第二应答消息确定测试结果;
步骤314,WEB测试端将测试结果发送给WEB客户端。
基于同样的构思,本发明还提供一种自动化测试装置,如图4所示,包括:
收发单元401,用于接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
确定单元402,用于从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
脚本生成单元403,用于根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
进一步地,所述确定单元402具体用于:
解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
在所述第一应答消息中确定所述属性键对应的页面元素;
根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
进一步地,所述收发单元401还用于:
将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
进一步地,所述装置还404包括:
测试单元,用于启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;根据所述第四应答消息以及所述第二应答消息确定测试结果。
进一步地,所述测试单元404具体用于:
根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
进一步地,所述测试单元404具体用于:
确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
本发明还提供一种自动化测试方法,如图5所示,包括:
步骤501,网页WEB测试端接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;
步骤502,所述WEB测试端保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
步骤503,所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
步骤504,所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
进一步地,所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素,包括:
所述WEB测试端解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
所述WEB测试端在所述第一应答消息中确定所述属性键对应的页面元素;
所述WEB测试端根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
进一步地,所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件后,还包括:
所述WEB测试端将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
进一步地,所述WEB测试端接收待测试WEB系统发送的第二应答消息后,还包括:
所述WEB测试端启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;
所述WEB测试端接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;
所述WEB测试端接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;
所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果。
进一步地,所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果,包括:
所述WEB测试端根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
所述WEB测试端根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
进一步地,所述WEB测试端在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息,包括:
所述WEB测试端确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
所述WEB测试端将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种自动化测试方法,其特征在于,包括:
网页WEB测试端接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;
所述WEB测试端保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
2.根据权利要求1所述的方法,其特征在于,所述WEB测试端从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素,包括:
所述WEB测试端解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
所述WEB测试端在所述第一应答消息中确定所述属性键对应的页面元素;
所述WEB测试端根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
3.根据权利要求1所述的方法,其特征在于,所述WEB测试端根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件后,还包括:
所述WEB测试端将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
4.根据权利要求3所述的方法,其特征在于,所述WEB测试端接收待测试WEB系统发送的第二应答消息后,还包括:
所述WEB测试端启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;
所述WEB测试端接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;
所述WEB测试端接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;
所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果。
5.根据权利要求4所述的方法,其特征在于,所述WEB测试端根据所述第四应答消息以及所述第二应答消息确定测试结果,包括:
所述WEB测试端根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
所述WEB测试端根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
6.根据权利要求4所述的方法,其特征在于,所述WEB测试端在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息,包括:
所述WEB测试端确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
所述WEB测试端将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
7.一种自动化测试装置,其特征在于,包括:
收发单元,用于接收待测试WEB系统发送的第一应答消息,所述第一应答消息为所述待测试WEB系统对WEB客户端发送的第一请求消息的响应消息;保存所述第一应答消息,并接收所述WEB客户端发送的第二请求消息,所述第二请求消息是所述WEB客户端根据所述WEB测试端发送的所述第一应答消息确定的;
确定单元,用于从所述第一应答消息以及所述第二请求消息中确定存在匹配关系的请求参数和页面元素;
脚本生成单元,用于根据存在匹配关系的请求参数和页面元素生成回放测试脚本文件。
8.根据权利要求7所述的装置,其特征在于,所述确定单元具体用于:
解析所述第二请求消息,获取所述请求参数的属性键以及所述属性键对应的属性键值;
在所述第一应答消息中确定所述属性键对应的页面元素;
根据所述属性键对应的页面元素以及所述属性键对应的属性键值生成回放测试脚本文件。
9.根据权利要求7所述的装置,其特征在于,所述收发单元还用于:
将所述第二请求消息发送给所述待测试WEB系统,并接收待测试WEB系统发送的第二应答消息,所述第二应答消息为所述待测试WEB系统根据所述第二请求消息确定的。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
测试单元,用于启动所述WEB客户端,并向所述WEB客户端发送所述第一请求消息;接收所述待测试WEB系统返回的所述第一应答消息,并在所述第一应答消息中插入所述回放测试脚本文件得到第三应答消息;所述第三应答消息用于指示所述WEB客户端在所述第一应答消息的页面元素中插入所述回放测试脚本中的与所述页面元素对应的请求参数,得到第三请求消息;接收所述待测试WEB系统返回的第四应答消息,所述第四应答消息是所述待测试WEB系统根据所述第三请求消息确定的;根据所述第四应答消息以及所述第二应答消息确定测试结果。
11.根据权利要求10所述的装置,其特征在于,所述测试单元具体用于:
根据所述第二应答消息生成第一浏览器页面,所述WEB测试端根据所述第四应答消息生成所述第二网络页面;
根据所述第一浏览器页面以及所述第二浏览器页面确定所述测试结果。
12.根据权利要求10所述的装置,其特征在于,所述测试单元具体用于:
确定所述第一应答消息的头部标签体或者正文标签体,所述头部标签体或者正文标签体为完整的头部标签内容或者正文标签内容;
将所述回放测试脚本文件插入所述头部标签体内或者所述正文标签体内,形成所述第三应答消息。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6任一所述的方法。
14.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行权利要求1~6任一所述方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行权利要求1~6任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710614399.6A CN107508720B (zh) | 2017-07-25 | 2017-07-25 | 一种自动化测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710614399.6A CN107508720B (zh) | 2017-07-25 | 2017-07-25 | 一种自动化测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107508720A true CN107508720A (zh) | 2017-12-22 |
CN107508720B CN107508720B (zh) | 2021-08-27 |
Family
ID=60689560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710614399.6A Active CN107508720B (zh) | 2017-07-25 | 2017-07-25 | 一种自动化测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107508720B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144865A (zh) * | 2018-08-14 | 2019-01-04 | 深圳壹账通智能科技有限公司 | 前端测试的方法、装置、计算机设备和存储介质 |
CN109254912A (zh) * | 2018-08-13 | 2019-01-22 | 北京金堤科技有限公司 | 一种自动化测试的方法及装置 |
CN110377813A (zh) * | 2019-07-30 | 2019-10-25 | 广州吉信网络科技开发有限公司 | 一种selenium支持自定义请求头的方法、电子设备和介质 |
CN110399305A (zh) * | 2019-07-31 | 2019-11-01 | 中国工商银行股份有限公司 | Btt模块的测试方法及装置 |
CN110597733A (zh) * | 2019-09-23 | 2019-12-20 | 神州数码融信软件有限公司 | 自动化前端稳定性测试方法、装置及存储介质 |
CN111159008A (zh) * | 2018-11-08 | 2020-05-15 | 阿里巴巴集团控股有限公司 | 测试方法和装置以及电子设备 |
CN111831530A (zh) * | 2019-04-15 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 测试方法和装置 |
CN112363931A (zh) * | 2020-11-11 | 2021-02-12 | 武汉虹旭信息技术有限责任公司 | Web系统测试方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114953A (zh) * | 2007-07-03 | 2008-01-30 | 中兴通讯股份有限公司 | 一种宽带接入服务器自动化测试的方法 |
US7334219B2 (en) * | 2002-09-30 | 2008-02-19 | Ensco, Inc. | Method and system for object level software testing |
CN101135989A (zh) * | 2006-08-31 | 2008-03-05 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试的方法和装置 |
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web系统的自动化渗透性测试系统和方法 |
CN102495798A (zh) * | 2011-12-01 | 2012-06-13 | 盛科网络(苏州)有限公司 | 自动化回归测试方法及系统 |
US20150149828A1 (en) * | 2013-11-26 | 2015-05-28 | Anunta Technology Management Services Ltd. | Management of cloud-based application delivery |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
-
2017
- 2017-07-25 CN CN201710614399.6A patent/CN107508720B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7334219B2 (en) * | 2002-09-30 | 2008-02-19 | Ensco, Inc. | Method and system for object level software testing |
CN101135989A (zh) * | 2006-08-31 | 2008-03-05 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试的方法和装置 |
CN101114953A (zh) * | 2007-07-03 | 2008-01-30 | 中兴通讯股份有限公司 | 一种宽带接入服务器自动化测试的方法 |
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web系统的自动化渗透性测试系统和方法 |
CN102495798A (zh) * | 2011-12-01 | 2012-06-13 | 盛科网络(苏州)有限公司 | 自动化回归测试方法及系统 |
US20150149828A1 (en) * | 2013-11-26 | 2015-05-28 | Anunta Technology Management Services Ltd. | Management of cloud-based application delivery |
CN105808417A (zh) * | 2014-12-29 | 2016-07-27 | 平安科技(深圳)有限公司 | 自动化测试方法及代理服务器 |
Non-Patent Citations (2)
Title |
---|
FROLIN S. OCARIZA JR: "AutoFLox: An Automatic Fault Localizer for Client-Side JavaScript", 《IEEE》 * |
黄祖源: "基于电力行业移动端APP的自动化性能测试平台", 《信息化建设》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109254912A (zh) * | 2018-08-13 | 2019-01-22 | 北京金堤科技有限公司 | 一种自动化测试的方法及装置 |
CN109144865A (zh) * | 2018-08-14 | 2019-01-04 | 深圳壹账通智能科技有限公司 | 前端测试的方法、装置、计算机设备和存储介质 |
CN111159008A (zh) * | 2018-11-08 | 2020-05-15 | 阿里巴巴集团控股有限公司 | 测试方法和装置以及电子设备 |
CN111159008B (zh) * | 2018-11-08 | 2023-05-05 | 阿里巴巴集团控股有限公司 | 测试方法和装置以及电子设备 |
CN111831530A (zh) * | 2019-04-15 | 2020-10-27 | 北京字节跳动网络技术有限公司 | 测试方法和装置 |
CN110377813A (zh) * | 2019-07-30 | 2019-10-25 | 广州吉信网络科技开发有限公司 | 一种selenium支持自定义请求头的方法、电子设备和介质 |
CN110399305A (zh) * | 2019-07-31 | 2019-11-01 | 中国工商银行股份有限公司 | Btt模块的测试方法及装置 |
CN110399305B (zh) * | 2019-07-31 | 2023-12-08 | 中国工商银行股份有限公司 | Btt模块的测试方法及装置 |
CN110597733A (zh) * | 2019-09-23 | 2019-12-20 | 神州数码融信软件有限公司 | 自动化前端稳定性测试方法、装置及存储介质 |
CN112363931A (zh) * | 2020-11-11 | 2021-02-12 | 武汉虹旭信息技术有限责任公司 | Web系统测试方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107508720B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107508720A (zh) | 一种自动化测试方法及装置 | |
CN106155891B (zh) | 接口测试方法、接口描述数据库生成方法及装置 | |
CN105099811B (zh) | 一种接口测试方法和装置 | |
US8745641B1 (en) | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface | |
CN103593173B (zh) | 一种应用程序的一体化开发系统、方法及装置 | |
CN104636254B (zh) | 生成测试用例的方法和装置、测试方法和设备 | |
CN108647141B (zh) | 自动测试方法、装置、计算机可读介质及电子设备 | |
CN109446071A (zh) | 接口测试方法、接口测试装置、电子设备及存储介质 | |
CN107704398A (zh) | 自动化测试方法及装置、存储介质、电子设备 | |
JP4849929B2 (ja) | シナリオ作成プログラム | |
CN108804305A (zh) | 一种自动化测试的方法及装置 | |
CN107797911A (zh) | 用于测试http接口的方法和装置 | |
CN104468655B (zh) | 对反向代理软件进行测试的方法及系统 | |
CN106294094A (zh) | 游戏服务器的测试方法、客户端、服务器及系统 | |
US20190087180A1 (en) | Identifying equivalent javascript events | |
CN104268082A (zh) | 浏览器的压力测试方法和装置 | |
CN104239206B (zh) | 网页测试方法和装置 | |
CN103902446A (zh) | 一种网络服务器自动化测试的方法和装置 | |
CN110321154A (zh) | 一种微服务的接口信息展示方法、装置及电子设备 | |
WO2021104387A1 (zh) | 一种自动识别有效数据采集模块的方法和系统 | |
CN106649342A (zh) | 数据采集平台中数据处理的方法及装置 | |
CN108632361A (zh) | 一种网页上线方法、服务器、系统和存储介质 | |
CN103647775B (zh) | 一种在网页中进行登录的方法和装置 | |
CN109242561B (zh) | 抽奖模型构建方法、抽奖活动管理方法、装置和计算设备 | |
CN108153667A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |