CN106776318A - 一种测试脚本录制方法及系统 - Google Patents
一种测试脚本录制方法及系统 Download PDFInfo
- Publication number
- CN106776318A CN106776318A CN201611160520.4A CN201611160520A CN106776318A CN 106776318 A CN106776318 A CN 106776318A CN 201611160520 A CN201611160520 A CN 201611160520A CN 106776318 A CN106776318 A CN 106776318A
- Authority
- CN
- China
- Prior art keywords
- browser
- test script
- server
- http
- console
- 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
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/3684—Test management for test design, e.g. generating new test cases
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
本发明公开了一种测试脚本录制方法及系统,测试脚本录制方法适于测试脚本录制系统中执行,该方法包括:第一浏览器通过控制台发起测试脚本的启动录制操作;录制器响应启动录制操作,启动第二浏览器;第二浏览器根据待测URL地址,向URL地址指向的被测服务器发送http请求信息;代理服务器截获第二浏览器与被测服务器之间的http信息并将其转发至录制服务器,http信息包括http请求信息和http响应信息;录制服务器将http请求信息转换为http请求对象,将http请求对象推送到第一浏览器,并将http请求对象作为测试脚本数据发送至数据库服务器保存;数据库服务器将测试脚本数据以第一脚本存储格式进行保存。
Description
技术领域
本发明涉及软件测试领域,特别涉及一种测试脚本录制方法及系统。
背景技术
随着互联网技术的不断发展,越来越多的网络软件开始投入到使用中。而在软件的开发过程中,测试工作在其整个开发的生命周期中占有举足轻重的地位。软件测试是指通过测试软件的各项功能以发现其中存在的缺陷的过程,软件自动化测试作为软件测试技术的一个分支,是在传统的代码调试和黑盒手工测试的基础上新兴的一种测试技术。而压力测试作为软件自动化测试的一种,是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行被测软件,来测试被测软件的性能、可靠性、稳定性。
有统计表明,在现阶段的所有软件测试开销中,约60%用在测试脚本的编写、编译、执行和配置管理上,还有约40%用在测试用例的生成和检查测试结果。对压力测试而言,测试脚本的质量很大程度上决定了测试的质量,而获取好的测试脚本往往费时费力,需要有比较高的技术要求和比较大的工作量。
发明内容
为此,本发明提供一种测试脚本录制的方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种测试脚本录制方法,适于在测试脚本录制系统中执行,该系统包括客户端、代理服务器、录制服务器和数据库服务器,客户端中驻留有第一浏览器、第二浏览器和录制器,第一浏览器包括控制台,该方法包括如下步骤:第一浏览器通过控制台发起测试脚本的启动录制操作;录制器响应启动录制操作,启动第二浏览器;第二浏览器根据待测URL地址,向URL地址指向的被测服务器发送http请求信息;代理服务器截获第二浏览器与被测服务器之间的http信息并将其转发至录制服务器,http信息包括http请求信息和http响应信息;录制服务器将http信息转换为http对象,将http对象推送到第一浏览器,并将http对象作为测试脚本数据发送至数据库服务器保存;数据库服务器将测试脚本数据以第一脚本存储格式进行保存。
可选地,在根据本发明的测试脚本录制方法中,录制器响应启动录制操作,启动第二浏览器包括:录制器响应启动录制操作,向第二浏览器中添加启用代理服务器的启动参数;启动第二浏览器。
可选地,在根据本发明的测试脚本录制方法中,还包括:第一浏览器通过控制台发起测试脚本的停止录制操作;录制器响应停止录制操作,关闭第二浏览器。
可选地,在根据本发明的测试脚本录制方法中,系统还包括控制台服务器,方法还包括:第一浏览器通过控制台发起测试脚本的调试操作;控制台响应调试操作,指示控制台服务器根据脚本标识,从数据库服务器获取脚本标识对应的测试脚本数据;控制台服务器将测试脚本数据推送至第一浏览器以便调试。
可选地,在根据本发明的测试脚本录制方法中,系统还包括文件服务器,方法还包括:控制台服务器将测试脚本数据转换为测试脚本文件,以第二脚本存储格式保存至文件服务器。
可选地,在根据本发明的测试脚本录制方法中,第一脚本存储格式为Json格式,第二脚本存储格式为XML格式。
根据本发明的又一个方面,提供一种测试脚本录制系统,包括客户端、代理服务器、录制服务器和数据库服务器。其中,客户端包括第一浏览器、录制器和第二浏览器,第一浏览器包括控制台,其中,第一浏览器适于通过控制台发起测试脚本的启动录制操作,录制器适于响应启动录制操作,启动第二浏览器,第二浏览器适于根据待测URL地址,向URL地址指向的被测服务器发送http请求信息;代理服务器适于截获第二浏览器与被测服务器之间的http信息并将其转发至录制服务器,http信息包括http请求信息和http响应信息;录制服务器适于将http信息转换为http对象,将http对象推送到第一浏览器,并将http对象作为测试脚本数据发送至数据库服务器保存;数据库服务器适于以第一脚本存储格式将测试脚本数据进行保存。
可选地,在根据本发明的测试脚本录制系统中,录制器进一步适于响应启动录制操作,向第二浏览器中添加启用代理服务器的启动参数;启动第二浏览器。
可选地,在根据本发明的测试脚本录制系统中,第一浏览器还适于通过控制台发起测试脚本的停止录制操作;录制器还适于响应停止录制操作,关闭第二浏览器。
可选地,在根据本发明的测试脚本录制系统中,还包括控制台服务器,其中,第一浏览器还适于通过控制台发起测试脚本的调试操作;控制台适于响应调试操作,指示控制台服务器根据脚本标识,从数据库服务器获取脚本标识对应的测试脚本数据;控制台服务器适于将测试脚本数据推送至第一浏览器以便调试。
可选地,在根据本发明的测试脚本录制系统中,还包括文件服务器,其中,控制台服务器还适于将测试脚本数据转换为第二脚本存储格式的测试脚本文件,并将测试脚本文件发送至文件服务器;文件服务器适于保存测试脚本文件。
可选地,在根据本发明的测试脚本录制系统中,第一脚本存储格式为Json格式,第二脚本存储格式为XML格式。
根据本发明的测试脚本录制的技术方案,第一浏览器发起测试脚本的启动录制操作,录制器响应该操作启动第二浏览器,第二浏览器根据待测URL地址,向被测服务器发送http请求信息,代理服务器截获第二浏览器与被测服务器之间的http信息并转发至录制服务器,录制服务器将http信息转换为http对象后推送到第一浏览器,并将http对象作为测试脚本数据存储至数据库服务器中。在后期进行调试时,控制台指示控制台服务器将从数据库服务器获取的测试脚本数据存储至文件服务器,以备测试使用。上述技术方案中,通过录制服务器实现了直接在云端录制测试脚本,由于云端的服务器具有更好的处理机制与存储容量,一方面保证了录制过程的网络通信状态,另一方面也便于实时处理录制的测试脚本。而且,利用代理服务器抓获到的http信息不仅包括http请求信息,还包括http响应信息,进一步提高了测试脚本的准确性,以便后期进行测试脚本编辑时进行参数化或关联操作。同时,录制服务器将http对象推送到第一浏览器中,在第一浏览器的控制台脚本界面上可实时展示测试脚本的录制进度和内容,具有更好的数据实时性。当测试人员需要进行压力测试时,可直接向文件服务器发出测试脚本数据的下载请求,无需额外录制测试脚本,方便快捷。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明的一个实施例的测试脚本录制系统100的示意图;
图2示出了根据本发明的一个实施例的测试脚本录制方法200的流程图;
图3示出了根据本发明的一个实施例的测试脚本录制系统300的模块示意图;
图4示出了根据本发明的又一个实施例的测试脚本录制系统400的模块示意图;以及
图5示出了根据本发明的又一个实施例的测试脚本录制系统500的模块示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的测试脚本录制系统100的示意图。如图1所示,测试脚本录制系统100包括客户端110、代理服务器120、录制服务器130和数据库服务器140,其中客户端110一般为PC机,还可以为智能手机或平板电脑等,但不限于此,数量也不做任何限制。具体来说,客户端110中驻留有第一浏览器、第二浏览器和录制器(图中未示出),第一浏览器包括控制台,客户端110中的第一浏览器通过控制台发起测试脚本的启动录制操作,录制器响应启动录制操作,启动第二浏览器,第二浏览器根据待测URL地址,向URL地址指向的被测服务器(图中未示出)发送http请求信息。由于启用了代理服务,此时代理服务器120截获第二浏览器发送至被测服务器的http请求信息,并将该http请求信息继续发送至被测服务器,而被测服务器接收到http请求信息后,会对该http请求信息进行相应地响应,从而获取http响应信息并发送给第二浏览器。代理服务器120截获被测服务器发送至第二浏览器的http响应信息,这时代理服务器120截获到的http信息包括与待测URL地址对应的http请求信息和http响应信息,将http信息转发至录制服务器130。录制服务器130将从代理服务器120接收到的http信息转换为http对象,将http对象推送到客户端110的第一浏览器中以实时展示录制的测试脚本,并将http对象作为测试脚本数据发送至数据库服务器140保存,而数据库服务器140将测试脚本数据以第一脚本存储格式进行保存。通过本测试脚本录制系统100,抓获到的http信息不仅包括http请求信息,还包括http响应信息,提高了测试脚本的准确性,以便后期进行测试脚本编辑时进行参数化或关联操作。同时,录制服务器将http对象推送到第一浏览器中,在第一浏览器的控制台脚本界面上可实时展示测试脚本的录制进度和内容,具有更好的数据实时性。
图2示出了根据本发明一个实施例的测试脚本录制方法200的流程图。测试脚本录制方法200适于在测试脚本录制系统(例如图1所示的测试脚本录制系统100)中执行。如图2所示,方法200始于步骤S20。在步骤S210中,第一浏览器通过控制台发起测试脚本的启动录制操作。根据本发明的一个实施例,第一浏览器中的控制台界面上可以设置一个录制按钮,当测试人员点击这个录制按钮时,第一浏览器通过控制台发起测试脚本的启动录制操作。第一浏览器通过控制台发起测试脚本的启动录制操作的关键代码如下所示:
随后,进入步骤S220,录制器响应步骤S210中发起的启动录制操作,启动第二浏览器。首先,录制器响应该启动录制操作,向第二浏览器中添加启用代理服务器120的启动参数。根据本发明的一个实施例,录制器响应启动录制操作后,将第二浏览器中的启用代理服务器120的代理端口默认设置为4455,并添加启动参数-proxy-server=xx.xx.xx.xx,xx.xx.xx.xx表示该代理服务器120对应的IP地址,该IP地址可以为外网的IP地址,即代理服务不局限于局域网内,而可以扩展到广域网中。随后,启动第二浏览器,实现了指定第二浏览器网络访问时指向代理服务器120,由代理服务器120作为中间桥梁为第二浏览器和被测服务器进行消息转发。启动第二浏览器的关键代码如下所示:
当第二浏览器启动后,会在客户端110的界面中弹出,此时测试人员可以向第二浏览器中的地址栏里输入待测URL地址。进而,在步骤S230中,第二浏览器根据待测URL地址,向URL地址指向的被测服务器发送http请求信息。在根据本发明的一个实施例中,待测URL地址为https://www.baidu.com,即为百度首页的URL地址,第二浏览器向百度首页的URL地址指向的被测服务器发送http请求信息,该http请求信息中包括待测URL地址“https://www.baidu.com”上的http请求报文头和http请求报文体,具体包括如GET方法、POST方法、JS代码、CSS代码和PNG图片等内容。
接下来,在步骤S240中,代理服务器120截获第二浏览器与被测服务器之间的http信息并将其转发至录制服务器130,http信息包括http请求信息和http响应信息。根据本发明的一个实施例,由于代理服务已启用,则代理服务器120会将第二浏览器与被测服务器之间的http信息都进行截获。比如,第二浏览器向被测服务器发送百度首页的URL地址对应的http请求信息,此时代理服务器120截获该http请求信息,代替第二浏览器将该http请求信息发送至被测服务器,而被测服务器对该http请求信息进行相应地响应后,向第二浏览器发送百度首页的URL地址对应的http响应信息,代理服务器120同样截获这一http响应信息并将其发送至第二浏览器,再将上述百度首页的URL地址对应的http请求信息和http响应信息作为http信息转发至录制服务器130。代理服务器120转发http信息至录制服务器130的关键代码如下所示:
需要说明的是,当第二浏览器接收到上述百度首页的URL地址对应的http响应信息后,在其界面上显示百度首页,此时若测试人员在百度首页中进行下一步操作,如点击“新闻”这一选项,则此时待测URL地址为百度新闻的ULR地址“http://news.baidu.com/”,则再一次执行步骤S230,第二浏览器向百度新闻的ULR地址指向的被测服务器发送http请求信息,进而执行步骤S240,代理服务器120截获第二浏览器与被测服务器之间的、与百度新闻的ULR地址“http://news.baidu.com/”相关的http信息。换言之,测试人员通过对第二浏览器中当前网页的操作而获得的新网页,可相当于直接输入一个新的URL地址而获得的新网页,因此第二浏览器实际上即是通过上述不同的待测URL地址来向其指向的被测服务器发送http请求信息。
录制服务器130接收到代理服务器120转发的http信息后,进入步骤S250,录制服务器130将http信息进行解析,将其转换为http对象,将http对象推送到第一浏览器,并将http对象作为测试脚本数据发送至数据库服务器140保存。根据本发明的一个实施例,http对象可以为HttpRequestHdr对象,下面给出HttpRequestHdr对象中数据的一个示例:
private LinkedBlockingQueue<String>fileNameQueue;
private static final String HTTP="http";
private static final String HTTPS="https";
private static final String PROXY_CONNECTION="proxy-connection";
public static final String CONTENT_TYPE="content-type";
public static final String CONTENT_LENGTH="content-length";
public static final String USER_AGENT="User-Agent";
public static final String REFERER="referer";
private static final String IF_MODIFIED_SINCE="If-Modified-Since";
private static final String DEFAULT_CHARSET="UTF-8";
public String userAgent="";
public String id;
public String pid;
private String method="";
private String paramHttps="";
private String url="";
private String version="";
private byte[]rawPostData;
private final Map<String,TPHeader>tpHeaders=new HashMap();
private String firstLine="";
private String referer="";
private byte[]data;
private String boundaryString=null;
录制服务器130将http信息转换为http对象后,将http对象通过WebSocket传输技术推送到第一浏览器,第一浏览器的控制台界面会实时显示该http对象对应的、与百度首页相关的测试脚本内容。录制服务器130将http对象推送到第一浏览器进行实时展示的关键代码如下:
录制服务器130将上述http对象通过WebSocket推送到第一浏览器后,将该http对象作为测试脚本数据发送至数据库服务器140保存以实现测试脚本的持久化。最后,在步骤S260中,数据库服务器140将测试脚本数据以第一脚本存储格式进行保存。其中,第一脚本存储格式为Json格式。每个测试脚本数据均具有对应的脚本标识,以便可通过脚本标识从数据库服务器140中查找该脚本标识对应的测试脚本数据。根据本发明的一个实施例,数据库服务器140包括mogoBD列式数据库,测试脚本数据以Json格式存储于该mogoBD列式数据库中,下面给出了一个mogoBD列式数据库中存储的测试脚本数据的部分示例:
在根据本发明的又一个实施例中,当需要停止录制测试脚本时,第一浏览器通过控制台发起测试脚本的停止录制操作,录制器响应该停止录制操作,关闭第二浏览器。根据该实施方式,第一浏览器中的控制台界面上设置有一个录制按钮,当测试脚本在录制时,测试人员点击这个录制按钮,第一浏览器通过控制台发起测试脚本的停止录制操作,而录制器响应这一停止录制操作,关闭第二浏览器结束录制。
根据本发明的又一个实施例,测试脚本录制系统100还包括控制台服务器(图1中未示出),当需要对测试脚本进行调试时,第一浏览器通过控制台发起测试脚本的调试操作,控制台响应该调试操作,指示控制台服务器根据脚本标识,从数据库服务器140获取该脚本标识对应的测试脚本数据,控制台服务器将测试脚本数据推送至第一浏览器以便调试。根据该实施方式,测试人员在第一浏览器中通过控制台发起测试脚本的调试操作,此时测试人员是通过脚本名称来选择要发起调试操作的测试脚本的。在步骤S230中我们可知,待测URL地址为百度首页的URL地址,当第二浏览器根据该待测URL地址向其指向的被测服务器发送http请求时,在第一浏览器的控制台中已经预先设置了相应的脚本名称,如可设置为“百度首页脚本”,而在数据库服务器140中,与这个脚本名称相对应地存在一个脚本标识。当测试人员需要调试测试脚本时,通过在控制台中选择“百度首页脚本”这个脚本名称,以发起对应的测试脚本的调试操作。控制台响应该调试操作,指示控制台服务器基于该脚本名称获得对应的脚本标识,根据脚本标识从数据库服务器140中获取该脚本标识对应的测试脚本数据,最后控制台服务器将测试脚本数据推送至第一浏览器以便调试。
根据本发明的又一个实施例,测试脚本录制系统100还包括文件服务器(图1中未示出),当控制台服务器将测试脚本数据转换为测试脚本文件后,以第二脚本存储格式保存至文件服务器,其中,第二脚本存储格式为XML格式。根据该实施方式,控制台服务器将百度首页对应的测试脚本数据从Json格式转换为XML格式,并将其发送至文件服务器中进行保存。脚本测试文件的示例如下所示:
<HttpPageConfig goon="true"id="11"name="3D Nest Player"index="11"
pid="4"mainRequestId="5">
<clazz>HttpPageConfig</clazz>
<configs>
<HttpActionConfig goon="true"id="5"name="engine.3dnest.cn"index="12"
pid="11">
<clazz>HttpActionConfig</clazz>
<configs/>
<postConfigs/>
<exeArea>2</exeArea>
<domain>engine.3dnest.cn</domain>
<port>80</port>
<protocol>http</protocol>
<path>/view/</path>
<method>GET</method>
<followRedirects>false</followRedirects>
<useKeepAlive>true</useKeepAlive>
<version>HTTP/1.1</version>
……
</TPHeaderConfig>
<TPHeaderConfig goon="true"index="3172">
<clazz>TPHeaderConfig</clazz>
<configs/>
<postConfigs/>
<name>User-Agent</name>
<value>Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36
(KHTML,like Gecko)Chrome/49.0.2623.110 Safari/537.36</value>
</TPHeaderConfig>
</tpHeaderConfigs>
<contentType>html</contentType>
</HttpActionConfig>
进一步地,控制台服务器可以将与百度首页相关的所有测试脚本文件合并为一个完整的XML格式文件,将其保存到文件服务器中。当测试人员要进行压力测试时,直接向文件服务器请求下载上述完整的XML格式的脚本测试文件,而此时文件服务器会先和数据库服务器140进行测试脚本的同步操作,避免新的测试脚本文件没有及时更新到文件服务器中,再将测试人员所请求的测试脚本文件下发以便进行压力测试。
图3示出了根据本发明的一个实施例的测试脚本录制系统300的模块示意图。如图3所示,测试脚本录制系统300包括客户端310、代理服务器320、录制服务器330和数据库服务器340。
客户端310包括第一浏览器311、录制器312和第二浏览器313,第一浏览器311包括控制台(图中未示出),录制器312分别与第一浏览器311和第二浏览器313相连。第一浏览器311适于通过控制台发起测试脚本的启动录制操作,录制器312适于响应启动录制操作,启动第二浏览器313,第二浏览器适于根据待测URL地址,向URL地址指向的被测服务器700发送http请求信息。其中,录制器312进一步适于响应启动录制操作,向第二浏览器313中添加启用代理服务器320的启动参数,启动第二浏览器313。第一浏览器311还适于通过控制台发起测试脚本的停止录制操作,录制器312还适于响应停止录制操作,关闭第二浏览器313。
代理服务器320分别与客户端310和录制服务器330相连,进一步地,代理服务器320与客户端310中的第二浏览器313相连,适于截获第二浏览器313与被测服务器700之间的http信息并将其转发至录制服务器330,http信息包括http请求信息和http响应信息。
录制服务器330分别与客户端310和数据库服务器340相连,进一步地,录制服务器300与客户端310中的第一浏览器311相连,适于将代理服务器320转发的http信息转换为http对象,将http对象推送到第一浏览器311,并将http对象作为测试脚本数据发送至数据库服务器340保存。
数据库服务器340适于以第一脚本存储格式将测试脚本数据进行保存。其中,第一脚本存储格式为Json格式。
图4示出了根据本发明的一个实施例的测试脚本录制系统400的模块示意图。测试脚本录制系统400的客户端410、代理服务器420、录制服务器430、数据库服务器440以及客户端410中驻留的第一浏览器411、录制器412和第二浏览器413,分别与图3中测试脚本录制系统300的客户端310、代理服务器320、录制服务器330、数据库服务器340以及客户端310中驻留的第一浏览器311、录制器312和第二浏览器313一一对应,是一致的,还新增了分别与客户端410和数据库服务器440相连的控制台服务器450,进一步地,控制台服务器450与客户端410中的第一浏览器411相连。
在测试脚本录制系统400中,第一浏览器411还适于通过控制台发起测试脚本的调试操作,控制台适于响应调试操作,指示控制台服务器450根据脚本标识,从数据库服务器440获取该脚本标识对应的测试脚本数据,控制台服务器450适于将测试脚本数据推送至第一浏览器411以便调试。
图5示出了根据本发明的一个实施例的测试脚本录制系统500的模块示意图。测试脚本录制系统500的客户端510、代理服务器520、录制服务器530、数据库服务器540、控制台服务器550以及客户端510中驻留的第一浏览器511、录制器512和第二浏览器513,分别与图4中测试脚本录制系统400的客户端410、代理服务器420、录制服务器430、数据库服务器440、控制台服务器450以及客户端410中驻留的第一浏览器411、录制器412和第二浏览器413一一对应,是一致的,还新增了与控制台服务器550相连的文件服务器560。
在测试脚本录制系统500中,控制台服务器550还适于将测试脚本数据转换为第二脚本存储格式的测试脚本文件,并将测试脚本文件发送至文件服务器560,文件服务器560适于保存测试脚本文件。其中,第二脚本存储格式为XML格式。
关于测试脚本录制的具体步骤以及实施例,在基于图2的描述中已经详细公开,此处不再赘述。
现有的测试脚本录制方法多采用抓包工具获得脚本信息,在网络不稳定的情况下很容易出现丢包现象,导致获取的信息不全,而且往往费时费力,需要有比较高的技术要求和比较大的工作量。根据本发明的测试脚本录制的技术方案,第一浏览器发起测试脚本的启动录制操作,录制器响应该操作启动第二浏览器,第二浏览器根据待测URL地址,向被测服务器发送http请求信息,代理服务器截获第二浏览器与被测服务器之间的http信息并转发至录制服务器,录制服务器将http信息转换为http对象后推送到第一浏览器,并将http对象作为测试脚本数据存储至数据库服务器中。在后期进行调试时,控制台指示控制台服务器将从数据库服务器获取的测试脚本数据存储至文件服务器,以备测试使用。上述技术方案中,通过录制服务器实现了直接在云端录制测试脚本,由于云端的服务器具有更好的处理机制与存储容量,一方面保证了录制过程的网络通信状态,另一方面也便于实时处理录制的测试脚本。而且,利用代理服务器抓获到的http信息不仅包括http请求信息,还包括http响应信息,进一步提高了测试脚本的准确性,以便后期进行测试脚本编辑时进行参数化或关联操作。同时,录制服务器将http对象推送到第一浏览器中,在第一浏览器的控制台脚本界面上可实时展示测试脚本的录制进度和内容,具有更好的数据实时性。当测试人员需要进行压力测试时,可直接向文件服务器发出测试脚本数据的下载请求,无需额外录制测试脚本,方便快捷。
B11.如B10所述的系统,还包括文件服务器,其中:
控制台服务器还适于将所述测试脚本数据转换为第二脚本存储格式的测试脚本文件,并将所述测试脚本文件发送至所述文件服务器;
文件服务器适于保存所述测试脚本文件。
B12.如B11所述的系统,其中,所述第一脚本存储格式为Json格式,所述第二脚本存储格式包括XML格式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种测试脚本录制方法,适于在测试脚本录制系统中执行,所述系统包括客户端、代理服务器、录制服务器和数据库服务器,所述客户端中驻留有第一浏览器、第二浏览器和录制器,所述第一浏览器包括控制台,所述方法包括:
第一浏览器通过所述控制台发起测试脚本的启动录制操作;
录制器响应所述启动录制操作,启动所述第二浏览器;
第二浏览器根据待测URL地址,向所述URL地址指向的被测服务器发送http请求信息;
代理服务器截获所述第二浏览器与所述被测服务器之间的http信息并将其转发至录制服务器,所述http信息包括http请求信息和http响应信息;
录制服务器将所述http信息转换为http对象,将所述http对象推送到所述第一浏览器,并将所述http对象作为测试脚本数据发送至所述数据库服务器保存;
数据库服务器将所述测试脚本数据以第一脚本存储格式进行保存。
2.如权利要求1所述的方法,所述录制器响应所述启动录制操作,启动所述第二浏览器包括:
录制器响应所述启动录制操作,向所述第二浏览器中添加启用所述代理服务器的启动参数;
启动所述第二浏览器。
3.如权利要求1或2所述的方法,还包括:
第一浏览器通过所述控制台发起测试脚本的停止录制操作;
录制器响应所述停止录制操作,关闭所述第二浏览器。
4.如权利要求1-3中任一项所述的方法,其中,所述系统还包括控制台服务器,所述方法还包括:
第一浏览器通过所述控制台发起测试脚本的调试操作;
控制台响应所述调试操作,指示控制台服务器根据脚本标识,从所述数据库服务器获取所述脚本标识对应的测试脚本数据;
控制台服务器将所述测试脚本数据推送至所述第一浏览器以便调试。
5.如权利要求4所述的方法,其中,所述系统还包括文件服务器,所述方法还包括:
控制台服务器将所述测试脚本数据转换为测试脚本文件,以第二脚本存储格式保存至文件服务器。
6.如权利要求5所述的方法,其中,所述第一脚本存储格式为Json格式,所述第二脚本存储格式为XML格式。
7.一种测试脚本录制系统,包括:
客户端,所述客户端包括第一浏览器、录制器和第二浏览器,所述第一浏览器包括控制台,其中,第一浏览器适于通过所述控制台发起测试脚本的启动录制操作,录制器适于响应所述启动录制操作,启动所述第二浏览器,第二浏览器适于根据待测URL地址,向所述URL地址指向的被测服务器发送http请求信息;
代理服务器,适于截获所述第二浏览器与所述被测服务器之间的http信息并将其转发至录制服务器,所述http信息包括http请求信息和http响应信息;
录制服务器,适于将所述http信息转换为http对象,将所述http对象推送到所述第一浏览器,并将所述http对象作为测试脚本数据发送至所述数据库服务器保存;
数据库服务器,适于以第一脚本存储格式将所述测试脚本数据进行保存。
8.如权利要求7所述的系统,所述录制器进一步适于:
响应所述启动录制操作,向所述第二浏览器中添加启用所述代理服务器的启动参数;
启动所述第二浏览器。
9.如权利要求7或8所述的系统,其中:
第一浏览器还适于通过所述控制台发起测试脚本的停止录制操作;
录制器还适于响应所述停止录制操作,关闭所述第二浏览器。
10.如权利要求7-9中任一项所述的系统,还包括控制台服务器,其中:
第一浏览器还适于通过所述控制台发起测试脚本的调试操作;
控制台适于响应所述调试操作,指示控制台服务器根据脚本标识,从所述数据库服务器获取所述脚本标识对应的测试脚本数据;
控制台服务器适于将所述测试脚本数据推送至所述第一浏览器以便调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611160520.4A CN106776318A (zh) | 2016-12-15 | 2016-12-15 | 一种测试脚本录制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611160520.4A CN106776318A (zh) | 2016-12-15 | 2016-12-15 | 一种测试脚本录制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106776318A true CN106776318A (zh) | 2017-05-31 |
Family
ID=58887562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611160520.4A Pending CN106776318A (zh) | 2016-12-15 | 2016-12-15 | 一种测试脚本录制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776318A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992698A (zh) * | 2019-04-11 | 2019-07-09 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN110533969A (zh) * | 2019-08-05 | 2019-12-03 | 深圳市编玩边学教育科技有限公司 | 一种编程教学端及系统 |
CN111190660A (zh) * | 2019-12-31 | 2020-05-22 | 中国南方电网有限责任公司 | 一种基于双向链表模型优化流程自动化的方法及系统 |
CN112860542A (zh) * | 2021-01-20 | 2021-05-28 | 北京神州数字科技有限公司 | 一种ui自动化测试方法 |
CN113127369A (zh) * | 2021-05-11 | 2021-07-16 | 武汉迎风聚智科技有限公司 | 一种执行脚本的处理方法以及装置 |
CN113515453A (zh) * | 2021-06-24 | 2021-10-19 | 航天中认软件测评科技(北京)有限责任公司 | 网页测试系统 |
CN114741325A (zh) * | 2022-06-13 | 2022-07-12 | 武汉迎风聚智科技有限公司 | 一种应用系统测试用的测试脚本的录制方法以及装置 |
CN115426407A (zh) * | 2022-08-30 | 2022-12-02 | 北京捷科智诚科技有限公司 | 服务端代理脚本录制方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885878A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种生成浏览器测试脚本的方法及装置 |
CN103885877A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种http的模拟浏览器测试脚本生成方法及装置 |
-
2016
- 2016-12-15 CN CN201611160520.4A patent/CN106776318A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885878A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种生成浏览器测试脚本的方法及装置 |
CN103885877A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种http的模拟浏览器测试脚本生成方法及装置 |
Non-Patent Citations (5)
Title |
---|
ALICE: ""loadrunner xml脚本和json脚本"", 《ITEYE博客》 * |
李枚毅: "《软件测试的工具使用和实验指导》", 31 May 2016 * |
柳松: ""loadrunner性能测试——第一步 录制脚本"", 《CSDN博客》 * |
此岸花开: ""Loadrunner代理录制设置"", 《博客园》 * |
江永道: ""jmeter之录制控制器与代理的使用"", 《测试窝》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992698A (zh) * | 2019-04-11 | 2019-07-09 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN110533969A (zh) * | 2019-08-05 | 2019-12-03 | 深圳市编玩边学教育科技有限公司 | 一种编程教学端及系统 |
CN110533969B (zh) * | 2019-08-05 | 2022-03-29 | 深圳市编玩边学教育科技有限公司 | 一种编程教学端及系统 |
CN111190660A (zh) * | 2019-12-31 | 2020-05-22 | 中国南方电网有限责任公司 | 一种基于双向链表模型优化流程自动化的方法及系统 |
CN111190660B (zh) * | 2019-12-31 | 2023-12-01 | 中国南方电网有限责任公司 | 一种基于双向链表模型优化流程自动化的方法及系统 |
CN112860542A (zh) * | 2021-01-20 | 2021-05-28 | 北京神州数字科技有限公司 | 一种ui自动化测试方法 |
CN113127369A (zh) * | 2021-05-11 | 2021-07-16 | 武汉迎风聚智科技有限公司 | 一种执行脚本的处理方法以及装置 |
CN113515453A (zh) * | 2021-06-24 | 2021-10-19 | 航天中认软件测评科技(北京)有限责任公司 | 网页测试系统 |
CN114741325A (zh) * | 2022-06-13 | 2022-07-12 | 武汉迎风聚智科技有限公司 | 一种应用系统测试用的测试脚本的录制方法以及装置 |
CN115426407A (zh) * | 2022-08-30 | 2022-12-02 | 北京捷科智诚科技有限公司 | 服务端代理脚本录制方法和系统 |
CN115426407B (zh) * | 2022-08-30 | 2024-06-07 | 北京捷科智诚科技有限公司 | 服务端代理脚本录制方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776318A (zh) | 一种测试脚本录制方法及系统 | |
US7962547B2 (en) | Method for server-side logging of client browser state through markup language | |
CN106021079B (zh) | 一种基于用户频繁访问序列模型的Web应用性能测试方法 | |
US7877681B2 (en) | Automatic context management for web applications with client side code execution | |
US8327271B2 (en) | Method and system for testing websites | |
US9652364B1 (en) | Cloud service for mobile testing and debugging | |
US20060101404A1 (en) | Automated system for tresting a web application | |
CN111522922A (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
US9003235B2 (en) | Indicating coverage of web application testing | |
US7987243B2 (en) | Method for media discovery | |
CN107918575B (zh) | 一种页面状态的监控方法及装置 | |
CN106294094A (zh) | 游戏服务器的测试方法、客户端、服务器及系统 | |
CN106603296A (zh) | 日志的处理方法及装置 | |
US9558307B1 (en) | System and method for providing a scalable server-implemented regression query environment for remote testing and analysis of a chip-design model | |
CN111177623A (zh) | 信息处理方法及装置 | |
CN108306918B (zh) | 一种基于程序动态分析的网站访问信息自动获取方法 | |
CN111694550A (zh) | 一种页面显示控制方法、装置及系统 | |
CN111881043A (zh) | 页面测试方法、装置、存储介质和处理器 | |
CN116414607A (zh) | 应用程序的故障排查方法及装置 | |
CN104407979A (zh) | 脚本检测方法和装置 | |
AT&T | ||
CN116340156A (zh) | 应用程序的Web页面测试方法、装置、设备和介质 | |
CN114840275A (zh) | 接口管理方法、系统、计算机设备和存储介质 | |
CN114185858A (zh) | 一种日志的采集方法、装置、计算机设备和存储介质 | |
CN116974905A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191209 Address after: 610000 No.11, 29th floor, building 3, No.88, Jitai 5th Road, China Hi tech Zone, Chengdu, Sichuan Province Applicant after: Sichuan Ruixiang Technology Co., Ltd. Address before: 100191 Beijing, Haidian District West Road, No. 66, Zhongguancun Dongsheng science and Technology Park, building A-5, floor three or four Applicant before: BEIJING ONEAPM COMMUNICATION TECHNOLOGY CO., LTD. |
|
TA01 | Transfer of patent application right | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |