测试方法及系统、操作端的制作方法

文档序号:6551297阅读:280来源:国知局
测试方法及系统、操作端的制作方法
【专利摘要】本发明提供一种测试方法及系统、操作端。本发明实施例只需要使用操作端的一个操作人员在一个浏览器即第一浏览器所展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动其他浏览器即第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人员在不同浏览器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确率高,从而提高了测试操作的效率和可靠性。
【专利说明】测试方法及系统、操作端 【【技术领域】】
[0001] 本发明涉及测试技术,尤其涉及一种测试方法及系统、操作端。 【【背景技术】】
[0002] 在软件测试过程例如,用户界面(User interface,UI)测试中,为了避免程序的风 险,需要利用设计的测试用例,自动运行测试操作。目前,有一些页面展示与页面交互的测 试操作,无法利用测试用例,自动运行测试操作。而是,需要操作人员在不同浏览器所展现 的待测试页面,手动执行多次相同的测试操作。
[0003] 然而,现有的测试操作的操作复杂,而且容易出错,从而导致了测试操作的效率和 可靠性的降低。 【
【发明内容】

[0004] 本发明的多个方面提供一种测试方法及系统、操作端,用以提高测试操作的效率 和可靠性。
[0005] 本发明的一方面,提供一种测试方法,包括:
[0006] 操作端采集输入设备在第一浏览器展现的待测试页面上的操作行为,所述操作行 为包括操作的页面元素信息和操作的行为信息;
[0007] 所述操作端根据所述操作行为,生成操作指令;
[0008] 所述操作端向至少一个测试端中每个测试端发送测试指示和所述操作指令,以使 得所述每个测试端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所述操 作指令。
[0009] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 向至少一个测试端中每个测试端发送测试指示和所述操作指令,包括:
[0010] 所述操作端通过分发服务器,向至少一个测试端中每个测试端发送测试指示和所 述操作指令。
[0011] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 通过分发服务器,向至少一个测试端中每个测试端发送测试指示和所述操作指令之前,还 包括:
[0012] 所述操作端向所述分发服务器发送触发信息;
[0013] 所述操作端接收所述分发服务器发送的所述测试指示,以使得所述用户确定所述 每个测试端,所述测试指示为所述分发服务器根据所述触发信息,为本次测试启动服务实 例,生成;
[0014] 所述操作端向所述分发服务器发送所述测试指示、所述待测试页面的标识信息和 所述每个测试端的标识信息,以使得所述分发服务器根据所述每个测试端的标识信息,向 所述每个测试端发送所述测试指示和所述待测试页面的标识信息,以使得所述每个测试端 驱动所述第二浏览器展现所述待测试页面。
[0015] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还 包括:
[0016] 代理服务器接收第一候选HTTP请求,所述第一候选HTTP请求为所述第一浏览器 根据所述操作行为的操作结果,生成;
[0017] 所述代理服务器接收第二候选HTTP请求,所述第二候选HTTP请求为所述第二浏 览器根据所述测试端执行所述操作指令的操作结果,生成;
[0018] 所述代理服务器向Web服务器发送所述第一候选HTTP请求,以及接收所述Web服 务器根据所述第一候选HTTP请求,发送的第一候选HTTP响应;所述代理服务器向Web服务 器发送所述第二候选HTTP请求,以及接收所述Web服务器根据所述第二候选HTTP请求,发 送的第二候选HTTP响应;所述代理服务器向所述第一浏览器发送所述第一候选HTTP响应, 向所述第二浏览器发送所述第二候选HTTP响应;或者
[0019] 所述代理服务器根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成目 标HTTP请求,向Web服务器发送所述目标HTTP请求,以及接收所述Web服务器根据所述目 标HTTP请求,发送的目标HTTP响应;所述代理服务器向所述第一浏览器和所述第二浏览 器,发送所述目标HTTP响应。
[0020] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 与所述第一浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所 述第一浏览器的内部。
[0021] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述每个测 试端与对应的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形 式,设置在所述第二浏览器的内部。
[0022] 本发明的另一方面,提供一种测试系统,包括操作端和至少一个测试端;其中,
[0023] 所述操作端,用于采集输入设备在第一浏览器展现的待测试页面上的操作行为, 所述操作行为包括操作的页面元素信息和操作的行为信息;根据所述操作行为,生成操作 指令;以及向所述至少一个测试端中每个测试端发送测试指示和所述操作指令;
[0024] 所述每个测试端,用于根据所述测试指示,在第二浏览器展现的所述待测试页面 上执行所述操作指令。
[0025] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述系统还 包括分发服务器;所述操作端,具体用于
[0026] 通过所述分发服务器,向所述每个测试端发送测试指示和所述操作指令。
[0027] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,
[0028] 所述操作端,还用于向所述分发服务器发送触发信息;
[0029] 所述分发服务器,还用于根据所述触发信息,为本次测试启动服务实例,以生成所 述本次测试的所述测试指示;向所述操作端发送所述测试指示,以使得所述用户确定所述 每个测试端;
[0030] 所述操作端,还用于向所述分发服务器发送所述测试指示、所述待测试页面的标 识信息和所述每个测试端的标识信息;
[0031] 所述分发服务器,还用于根据所述每个测试端的标识信息,向所述每个测试端发 送所述测试指示和所述待测试页面的标识信息;
[0032] 所述每个测试端,还用于驱动所述第二浏览器展现所述待测试页面。
[0033] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述系统还 包括代理服务器,用于
[0034] 接收第一候选HTTP请求,所述第一候选HTTP请求为所述第一浏览器根据所述操 作行为的操作结果,生成;接收第二候选HTTP请求,所述第二候选HTTP请求为所述第二浏 览器根据所述测试端执行所述操作指令的操作结果,生成;
[0035] 向Web服务器发送所述第一候选HTTP请求,以及接收所述Web服务器根据所述第 一候选HTTP请求,发送的第一候选HTTP响应;向Web服务器发送所述第二候选HTTP请求, 以及接收所述Web服务器根据所述第二候选HTTP请求,发送的第二候选HTTP响应;向所述 第一浏览器发送所述第一候选HTTP响应,向所述第二浏览器发送所述第二候选HTTP响应; 或者
[0036] 根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成目标HTTP请求;向 Web服务器发送所述目标HTTP请求;接收所述Web服务器根据所述目标HTTP请求,发送的 目标HTTP响应;向所述第一浏览器和所述第二浏览器,发送所述目标HTTP响应。
[0037] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 与所述第一浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所 述第一浏览器的内部。
[0038] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述每个测 试端与对应的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形 式,设置在所述第二浏览器的内部。
[0039] 本发明的另一方面,提供一种操作端,包括
[0040] 采集单元,用于采集输入设备在第一浏览器展现的待测试页面上的操作行为,所 述操作行为包括操作的页面元素信息和操作的行为信息;
[0041] 生成单元,用于根据所述操作行为,生成操作指令;
[0042] 发送单元,用于向至少一个测试端中每个测试端发送测试指示和所述操作指令, 以使得所述每个测试端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所 述操作指令。
[0043] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述发送单 元,具体用于
[0044] 通过分发服务器,向至少一个测试端中每个测试端发送测试指示和所述操作指 令。
[0045] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 还包括接收单元;其中,
[0046] 所述发送单元,还用于向所述分发服务器发送触发信息;
[0047] 所述接收单元,用于接收所述分发服务器发送的所述测试指示,以使得所述用户 确定所述每个测试端,所述测试指示为所述分发服务器根据所述触发信息,为本次测试启 动服务实例,生成;
[0048] 所述发送单元,还用于向所述分发服务器发送所述测试指示、所述待测试页面的 标识信息和所述每个测试端的标识信息,以使得所述分发服务器根据所述每个测试端的标 识信息,向所述每个测试端发送所述测试指示和所述待测试页面的标识信息,以使得所述 每个测试端驱动所述第二浏览器展现所述待测试页面。
[0049] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述操作端 与所述第一浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所 述第一浏览器的内部。
[0050] 如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述每个测 试端与对应的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形 式,设置在所述第二浏览器的内部。
[0051] 由上述技术方案可知,本发明实施例通过操作端采集输入设备在第一浏览器展现 的待测试页面上的操作行为,所述操作行为包括操作的页面元素信息和操作的行为信息, 进而,根据所述操作行为,生成操作指令,使得所述操作端能够向至少一个测试端中每个测 试端发送测试指示和所述操作指令,这样,所述每个测试端则可以根据所述测试指示,在第 二浏览器展现的所述待测试页面上执行所述操作指令,只需要使用操作端的一个操作人员 在一个浏览器即第一浏览器所展现的待测试页面上,手动执行一次测试操作,就可以实时 通过测试端驱动其他浏览器即第二浏览器所展现的待测试页面上自动执行相同的测试操 作,而无需操作人员在不同浏览器所展现的待测试页面,手动执行多次相同的测试操作,操 作简单,而且正确率高,从而提高了测试操作的效率和可靠性。
[0052] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,而且第二浏览器的种类没有数量 限制,因此,能够有效提高测试过程中浏览器的覆盖率。
[0053] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,因此,能够实时对比各个测试操 作的操作结果,从而实现了实时监控的目的。
[0054] 另外,采用本发明提供的技术方案,通过分发服务器为本次测试启动服务实例,以 生成所述本次测试的测试指示,使得每次测试都可以对应不同的测试指示,因此,分发服务 器则可以同时为多个操作端提供测试服务,能够有效提高测试操作的效率。 【【专利附图】

【附图说明】】
[0055] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述 中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附 图获得其他的附图。
[0056] 图1为本发明一实施例提供的测试方法的流程示意图;
[0057] 图2为本发明另一实施例提供的测试系统的结构示意图;
[0058] 图3为本发明另一实施例提供的测试系统的结构示意图;
[0059] 图4为本发明另一实施例提供的测试系统的结构示意图;
[0060] 图5为本发明另一实施例提供的操作端的结构示意图;
[0061] 图6为本发明另一实施例提供的操作端的结构示意图。 【【具体实施方式】】
[0062] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。
[0063] 需要说明的是,本发明实施例中所述的操作指令可以包括但不限于C语言代码编 译的程序、C++语言代码编译的程序或java语言代码编译的程序,其他任何可实现编译的 程序语言均在本发明保护范围之内,本发明对此并不做特别限定。
[0064] 另外,本文中术语"和/或",仅仅是一种描述关联对象的关联关系,表示可以存在 三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情 况。另外,本文中字符"/",一般表示前后关联对象是一种"或"的关系。
[0065] 万维网(World Wide Web, Web)页面可以包括由一个或者多个页面标签即超文本 标记语言(HyperText Markup Language, HTML)标签组成的一个显示区块,称为页面元素, 例如,文本、标签、超链接、按钮、输入框、下拉框等。在用户界面(User interface,UI)测试 中,需要对指定页面元素进行操作,以执行测试操作等。
[0066] 图1为本发明一实施例提供的测试方法的流程示意图,应用于测试系统中,该测 试系统可以包括操作端和至少一个测试端。如图1所示。
[0067] 101、操作端采集输入设备在第一浏览器展现的待测试页面上的操作行为,所述操 作行为包括操作的页面元素信息和操作的行为信息。
[0068] 102、所述操作端根据所述操作行为,生成操作指令。
[0069] 103、所述操作端向至少一个测试端中每个测试端发送测试指示和所述操作指令, 以使得所述每个测试端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所 述操作指令。
[0070] 可选地,在本实施例的一个可能的实现方式中,操作端与每个测试端之间的交互 可以采用基于多种套接字(Socket)协议的方式。例如,基于传输控制协议(Transmission Control Protocol, TCP)的标准Socket协议。或者,再例如,基于超文本传输协议 (HyperText Transfer Protocol,HTTP)的Web Socket协议,以达到在HTTP 下模拟基于TCP 的通信方式。这样,可以实现操作端与每个测试端之间,不间断的有状态的通信连接,从而 保证了顺序传输消息的可靠性。
[0071] 其中,第二浏览器与第一浏览器,为不同浏览器;第二浏览器的数量与测试端的数 量相同,且第二浏览器与测试端一一对应,所述每个测试端所对应的第二浏览器,为不同浏 Π/Γ PLP jAL-nlr 〇
[0072] 可以理解的是,所谓的不同浏览器,可以为在相同操作系统中运行的不同的浏览 器,或者还可以为在不同操作系统中运行的相同的浏览器,或者还可以为在不同操作系统 中运行的不同的浏览器,本实施例对此不进行特别限定。
[0073] 例如,第二浏览器为Wind〇ws7操作系统中运行的Firefox浏览器,第一浏览器为 WindowsS操作系统中运行的Firefox浏览器,二者为不同浏览器。
[0074] 或者,再例如,第二浏览器为Wind〇ws7操作系统中运行的IE浏览器,第一浏览器 为Wind 〇ws7操作系统中运行的Firefox浏览器,二者为不同浏览器。
[0075] 或者,再例如,一个测试端所对应的第二浏览器为Wind〇ws7操作系统中运行的IE 浏览器,另一个测试端所对应的第二浏览器为WindowsS操作系统中运行的IE浏览器,二者 为不同浏览器。
[0076] 需要说明的是,所述操作端与所述第一浏览器,可以独立运行在第一终端上;或 者,所述操作端还可以以软件开发工具包(Software Development Kit, SDK)形式或插件形 式,设置在所述第一浏览器的内部;本实施例对此不进行特别限定。
[0077] 需要说明的是,所述每个测试端与对应的所述第二浏览器,可以独立运行在第二 终端上;或者,所述测试端还可以以SDK形式或插件形式,设置在所述第二浏览器的内部; 本实施例对此不进行特别限定。
[0078] 可以理解的是,本发明所涉及的页面,可以是基于HTML编写的网页(Web Page), 也可以称为Web页面。
[0079] 这样,通过操作端采集输入设备在第一浏览器展现的待测试页面上的操作行为, 所述操作行为包括操作的页面元素信息和操作的行为信息,进而,根据所述操作行为,生成 操作指令,使得所述操作端能够向至少一个测试端中每个测试端发送测试指示和所述操作 指令,这样,所述每个测试端则可以根据所述测试指示,在第二浏览器展现的所述待测试页 面上执行所述操作指令,只需要使用操作端的一个操作人员在一个浏览器即第一浏览器所 展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动其他浏览器即 第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人员在不同浏览 器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确率高,从而提 高了测试操作的效率和可靠性。
[0080] 可选地,在本实施例的一个可能的实现方式中,操作端与每个测试端之间的交互 可以采用基于多种套接字(Socket)协议的方式。例如,基于传输控制协议(Transmission Control Protocol, TCP)的标准Socket协议。或者,再例如,基于超文本传输协议 (HyperText Transfer Protocol,HTTP)的Web Socket协议,以达到在HTTP 下模拟基于TCP 的通信方式。这样,可以实现操作端与每个测试端之间,不间断的有状态的通信连接,从而 保证了顺序传输消息的可靠性。
[0081] 可选地,在本实施例的一个可能的实现方式中,在101中,所述操作端具体可以通 过监听方式,采集输入设备例如键盘、鼠标或触摸屏等在第一浏览器展现的待测试页面上 的操作行为。其中,所述操作行为可以包括但不限于操作的页面元素信息和操作的行为信 息,例如,鼠标滚动、鼠标点击、鼠标经过、信息输入等。其中,键盘可以为物理键盘,或者还 可以虚拟键盘,本实施例对此不进行特别限定。
[0082] 具体地,所述操作端具体可以监听光标事件,以获得在第一浏览器展现的待测试 页面上的操作行为。
[0083] 如果所述输入设备为鼠标,那么,所述光标事件,可以称为鼠标事件,则可以包括 鼠标左键点击事件、鼠标右键点击事件或鼠标滚动事件。
[0084] 如果所述输入设备为键盘,那么,可以称为键盘事件,所述光标事件则可以包括回 车确认事件或菜单弹出事件。
[0085] 如果所述输入设备为触摸屏,那么,可以称为触摸屏事件,所述光标事件则可以包 括短时间触碰事件或长时间触碰事件。
[0086] 例如,可以在待测试页面中注入JavaScript代码的方式,以实现监听光标事件。
[0087] 或者,再例如,当进行跨页面操作时,即第一浏览器或第二浏览器当前所展现的页 面不是原始的待测试页面,而是一个新的页面,可以在新的页面中注入JavaScript代码的 方式,以实现监听光标事件。
[0088] 以JavaScript鼠标事件为例。通常,操作系统中都绑定有JavaScript鼠标事件, 当终端上发生鼠标操作行为时,就会触发操作系统生成相应的JavaScript鼠标事件,因 此,所述操作端可以对JavaScript鼠标事件进行监听。当监听到有JavaScript鼠标事件 被触发时,操作端则可以根据被触发的JavaScript鼠标事件、以及JavaScript鼠标事件与 鼠标操作行为的对应关系,确定与JavaScript鼠标事件对应的鼠标操作行为。例如,当单 击鼠标时,onClick事件会被触发,操作端则可以确定是鼠标单击行为;同时,MouseDown事 件也会被触发,可以从该MouseDown事件的参数类型中获得X值和y值,该X值和y值就是 鼠标点击位置。操作端则可以根据鼠标点击位置,获得当前页面上与该鼠标点击位置对应 的页面元素,则可以确定该页面元素的页面元素信息。这样,操作端就获得了鼠标在页面上 的操作行为,即操作的页面元素信息和操作的行为信息。
[0089] 可选地,在本实施例的一个可能的实现方式中,在102中,操作端具体可以将所采 集的操作行为翻译为一些列机器语言即操作指令,以模拟出所述操作行为。
[0090] 可选地,在本实施例的一个可能的实现方式中,本实施例所提供的测试方法所适 用的测试系统中,还可以进一步包括分发服务器。具体地,分发服务器可以为采用node, js语言、java语言、C++语言实现的服务器端,通过端口监听方式与操作端、每个测试 端,进行通信。具体地,分发服务器与操作端之间的交互、以及分发服务器与每个测试端 之间的交互可以采用基于多种套接字(Socket)协议的方式。例如,基于传输控制协议 (Transmission Control Protocol,TCP)的标准Socket协议。或者,再例如,基于超文本 传输协议(HyperText Transfer Protocol,HTTP)的 Web Socket 协议,以达到在 HTTP 下模 拟基于TCP的通信方式。这样,可以实现分发服务器与操作端之间、以及分发服务器与每个 测试端之间,不间断的有状态的通信连接,从而保证了顺序传输消息的可靠性。
[0091] 相应地,在103中,所述操作端具体可以通过分发服务器,向至少一个测试端中每 个测试端发送测试指示和所述操作指令。
[0092] 进一步地,在103之前,操作端可以触发操作端与分发服务器建立通信连接,开始 进行测试。例如,可以在待测试页面中注入JavaScript代码的方式,以实现触发操作。所 述分发服务器接收所述操作端发送的触发信息,进而根据所述触发信息,为本次测试启动 服务实例,以生成所述本次测试的所述测试指示,例如,实例ID(Case ID)、会话ID(Session ID)等。然后,所述分发服务器则可以向所述操作端发送所述测试指示,以使得所述用户确 定所述每个测试端。接着,所述分发服务器接收所述操作端发送的所述测试指示、所述待测 试页面的标识信息和所述每个测试端的标识信息,这样,所述分发服务器则可以根据所述 每个测试端的标识信息,向所述每个测试端发送所述测试指示和所述待测试页面的标识信 息,以使得所述每个测试端驱动所述第二浏览器展现所述待测试页面。
[0093] 例如,同一个操作端,不管进行页面内操作,还是进行跨页面操作,都属于本次测 试的范围之内,因此,分发服务器只需要为同一次测试启动一个服务实例,无需启动多个服 务实例,一次测试中的测试指示都相同。
[0094] 这样,通过分发服务器为本次测试启动服务实例,以生成所述本次测试的测试指 示,使得每次测试都可以对应不同的测试指示,因此,分发服务器则可以同时为多个操作端 提供测试服务,能够有效提高测试操作的效率。
[0095] 可选地,在本实施例的一个可能的实现方式中,本实施例所提供的测试方法所适 用的测试系统中,还可以进一步包括代理服务器。具体地,代理服务器具体可以接收第一候 选HTTP请求,所述第一候选HTTP请求为所述第一浏览器根据所述操作行为的操作结果,生 成;以及接收第二候选HTTP请求,所述第二候选HTTP请求为所述第二浏览器根据所述测 试端执行所述操作指令的操作结果,生成。然后,所述代理服务器则可以根据所述第一候选 HTTP请求和所述第二候选HTTP请求,生成目标HTTP请求,进而向Web服务器发送所述目标 HTTP请求。接着,所述代理服务器接收所述Web服务器根据所述目标HTTP请求,发送的目 标HTTP响应,所述代理服务器则可以向所述第一浏览器和所述第二浏览器,发送所述目标 HTTP响应。
[0096] 其中,由于第一浏览器根据其对应的操作端执行操作指令的操作结果,生成并发 送第一候选HTTP请求,以及多个第二浏览器实时根据各自对应的测试端执行相同的操作 指令的操作结果,生成并发送相同的第二候选HTTP请求,对于用于提交数据的HTTP请求来 说,例如,新建一个表单后提交等,势必会出现只有一个HTTP请求提交成功,例如,第一候 选HTTP请求或任意一个第二候选HTTP请求,而其他HTTP请求均提交失败。因此,代理服务 器需要根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成唯一的一个目标HTTP 请求。
[0097] 具体地,代理服务器具体可以对第一候选HTTP请求,以及每个测试端所对应的第 二浏览器发送的第二候选HTTP请求,利用预先配置的白名单对所提交的数据进行一致性 校验。例如,白名单可以包括部分字段如时间戳、浏览器的用户代理(User Agent,UA)等。 然后,所述代理服务器对通过一致性校验的HTTP请求进行融合处理,以生成目标HTTP请求 并发送给Web服务器,对没有通过一致性校验的HTTP请求进行告警处理。
[0098] 接着,代理服务器在进一步接收Web服务器根据所述目标HTTP请求返回的目标 HTTP响应之后,将目标HTTP响应复制若干份,分别向通过一致性校验的操作端和测试端发 送目标HTTP响应。
[0099] 对于一些简单的HTTP请求来说,例如,不涉及数据的提交的HTTP请求等,本实施 例所提供的测试方法所适用的测试系统中,无需包括代理服务器,操作端和每个测试端可 以分别直接与Web服务器进行通信。即第一浏览器向Web服务器发送第一候选HTTP请求 以及接收Web服务器根据第一候选HTTP请求返回的第一候选HTTP响应,第二浏览器向Web 服务器发送第二候选HTTP请求以及接收Web服务器根据第二候选HTTP请求返回的第二候 选HTTP响应。
[0100] 因此,为了能够处理所有的HTTP请求,代理服务器可以配置两种工作模式,一种 是透传模式,另一种是融合模式。
[0101] 定义对于一些简单的HTTP请求,代理服务器采用透传模式,进行处理。即在请求 阶段,直接将第一候选HTTP请求和若干个第二候选HTTP请求分别发送给Web服务器,不进 行任何处理;在响应阶段,直接将Web服务器根据第一候选HTTP请求返回的第一候选HTTP 响应,发送给操作端即操作端所对应的第一浏览器,直接将Web服务器根据第二候选HTTP 请求返回的第二候选HTTP响应,分部发送给每个测试端即测试端所对应的第二浏览器。
[0102] 定义对于用于提交数据的HTTP请求代理服务器采用融合模式,进行处理。即在请 求阶段,将第一候选HTTP请求和若干个第二候选HTTP请求进行融合处理,以生成目标HTTP 请求,发送给Web服务器;在响应阶段,将Web服务器根据目标HTTP请求返回的目标HTTP 响应,复制若干份,分别发送给操作端即操作端所对应的第一浏览器和每个测试端即测试 端所对应的第二浏览器。
[0103] 需要说明的是,本实施例中,测试系统所包括的操作端、测试端、分发服务器和代 理服务器可以部署在同一个终端上,或者也可以分别部署在不同终端上,或者也可以一部 分部署在一个终端上,另一部分部署在另一个终端上,在一部分部署在再一个终端上,本实 施例对此不进行特别限定。进一步地,如果测试端都部署在同一个终端上,具体可以利用虚 拟机技术实现,每一个测试端就可以为一个虚拟机的实例。
[0104] 一种较为优选的部署方式为,操作端部署在终端A上,分发服务器和代理服务器 部署在终端B上,每个测试端都分别部署在不同的终端上即终端队上,i为大于或等于1, 且小于或等于η的整数,η为测试端的数量。
[0105] 本实施例中,通过操作端采集输入设备在第一浏览器展现的待测试页面上的操作 行为,所述操作行为包括操作的页面元素信息和操作的行为信息,进而,根据所述操作行 为,生成操作指令,使得所述操作端能够向至少一个测试端中每个测试端发送测试指示和 所述操作指令,这样,所述每个测试端则可以根据所述测试指示,在第二浏览器展现的所述 待测试页面上执行所述操作指令,只需要使用操作端的一个操作人员在一个浏览器即第一 浏览器所展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动其他 浏览器即第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人员在 不同浏览器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确率 高,从而提高了测试操作的效率和可靠性。
[0106] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,而且第二浏览器的种类没有数量 限制,因此,能够有效提高测试过程中浏览器的覆盖率。
[0107] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,因此,能够实时对比各个测试操 作的操作结果,从而实现了实时监控的目的。
[0108] 另外,采用本发明提供的技术方案,通过分发服务器为本次测试启动服务实例,以 生成所述本次测试的测试指示,使得每次测试都可以对应不同的测试指示,因此,分发服务 器则可以同时为多个操作端提供测试服务,能够有效提高测试操作的效率。
[0109] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明 所必须的。
[0110] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见其他实施例的相关描述。
[0111] 图2为本发明另一实施例提供的测试系统的结构示意图,如图2所示。本实施例 的测试系统可以包括操作端21和至少一个测试端22^2?……22 n。其中,η为大于或等于 1的整数。其中,所述操作端21,用于采集输入设备在第一浏览器展现的待测试页面上的操 作行为,所述操作行为包括操作的页面元素信息和操作的行为信息;根据所述操作行为,生 成操作指令;以及向所述至少一个测试端22^2?……22 n中每个测试端22,发送测试指示 和所述操作指令其中,i为大于或等于1,且小于或等于η的整数;所述每个测试端22^用 于根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所述操作指令。
[0112] 其中,第二浏览器与第一浏览器,为不同浏览器;第二浏览器的数量与测试端的数 量相同,且第二浏览器与测试端一一对应,所述每个测试端22,所对应的第二浏览器,为不 同浏览器。
[0113] 可以理解的是,所谓的不同浏览器,可以为在相同操作系统中运行的不同的浏览 器,或者还可以为在不同操作系统中运行的相同的浏览器,或者还可以为在不同操作系统 中运行的不同的浏览器,本实施例对此不进行特别限定。
[0114] 例如,第二浏览器为Wind〇ws7操作系统中运行的Firefox浏览器,第一浏览器为 WindowsS操作系统中运行的Firefox浏览器,二者为不同浏览器。
[0115] 或者,再例如,第二浏览器为Wind〇ws7操作系统中运行的IE浏览器,第一浏览器 为Wind 〇ws7操作系统中运行的Firefox浏览器,二者为不同浏览器。
[0116] 或者,再例如,一个测试端所对应的第二浏览器为Wind〇ws7操作系统中运行的IE 浏览器,另一个测试端所对应的第二浏览器为WindowsS操作系统中运行的IE浏览器,二者 为不同浏览器。
[0117] 需要说明的是,所述操作端21与所述第一浏览器,可以独立运行在第一终端上; 或者,所述操作端21还可以以软件开发工具包(Software Development Kit, SDK)形式或 插件形式,设置在所述第一浏览器的内部;本实施例对此不进行特别限定。
[0118] 需要说明的是,所述每个测试端22i与对应的所述第二浏览器,可以独立运行在 第二终端上;或者,所述测试端还可以以SDK形式或插件形式,设置在所述第二浏览器的内 部;本实施例对此不进行特别限定。
[0119] 可以理解的是,本发明所涉及的页面,可以是基于HTML编与的网页(Web Page), 也可以称为Web页面。
[0120] 这样,通过操作端采集输入设备在第一浏览器展现的待测试页面上的操作行为, 所述操作行为包括操作的页面元素信息和操作的行为信息,进而,根据所述操作行为,生成 操作指令,使得所述操作端能够向至少一个测试端中每个测试端发送测试指示和所述操作 指令,这样,所述每个测试端则可以根据所述测试指示,在第二浏览器展现的所述待测试页 面上执行所述操作指令,只需要使用操作端的一个操作人员在一个浏览器即第一浏览器所 展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动其他浏览器即 第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人员在不同浏览 器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确率高,从而提 高了测试操作的效率和可靠性。
[0121] 可选地,在本实施例的一个可能的实现方式中,操作端21与每个测试端22ii 间的交互可以采用基于多种套接字(Socket)协议的方式。例如,基于传输控制协议 (Transmission Control Protocol,TCP)的标准Socket协议。或者,再例如,基于超文本 传输协议(HyperText Transfer Protocol,HTTP)的 Web Socket 协议,以达到在 HTTP 下模 拟基于TCP的通信方式。这样,可以实现操作端与每个测试端之间,不间断的有状态的通信 连接,从而保证了顺序传输消息的可靠性。
[0122] 可选地,在本实施例的一个可能的实现方式中,如图3所示,本实施例提供的测 试系统还可以进一步包括分发服务器31。具体地,分发服务器31可以为采用node, js语 言、java语言、C++语言实现的服务器端,通过端口监听方式与操作端21、每个测试端22p 进行通信。具体地,分发服务器与操作端21之间的交互、以及分发服务器与每个测试端 之间的交互可以采用基于多种套接字(Socket)协议的方式。例如,基于传输控制协议 (Transmission Control Protocol,TCP)的标准Socket协议。或者,再例如,基于超文本 传输协议(HyperText Transfer Protocol,HTTP)的 Web Socket 协议,以达到在 HTTP 下模 拟基于TCP的通信方式。这样,可以实现分发服务器与操作端之间、以及分发服务器与每个 测试端之间,不间断的有状态的通信连接,从而保证了顺序传输消息的可靠性。
[0123] 相应地,所述操作端21,具体可以用于通过所述分发服务器,向所述每个测试端 22i发送测试指示和所述操作指令。
[0124] 进一步地,所述操作端21,还可以进一步用于向所述分发服务器31发送触发信 息。所述分发服务器31,还可以进一步用于根据所述触发信息,为本次测试启动服务实例, 以生成所述本次测试的所述测试指示;向所述操作端21发送所述测试指示,以使得所述用 户确定所述每个测试端22i。所述操作端21,还可以进一步用于向所述分发服务器31发送 所述测试指示、所述待测试页面的标识信息和所述每个测试端22,的标识信息。所述分发服 务器31,还可以进一步用于根据所述每个测试端22i的标识信息,向所述每个测试端22i发 送所述测试指示和所述待测试页面的标识信息。所述每个测试端22,,还可以进一步用于驱 动所述第二浏览器展现所述待测试页面。
[0125] 例如,同一个操作端21,不管进行页面内操作,还是进行跨页面操作,都属于本次 测试的范围之内,因此,分发服务器31只需要为同一次测试启动一个服务实例,无需启动 多个服务实例,一次测试中的测试指示都相同。
[0126] 这样,通过分发服务器为本次测试启动服务实例,以生成所述本次测试的测试指 示,使得每次测试都可以对应不同的测试指示,因此,分发服务器则可以同时为多个操作端 提供测试服务,能够有效提高测试操作的效率。
[0127] 可选地,在本实施例的一个可能的实现方式中,如图4所示,本实施例提供的测试 系统还可以进一步包括代理服务器41。
[0128] 具体地,具体可以用于接收第一候选HTTP请求,所述第一候选HTTP请求为所述 第一浏览器根据所述操作行为的操作结果,生成;接收第二候选HTTP请求,所述第二候选 HTTP请求为所述第二浏览器根据所述测试端执行所述操作指令的操作结果,生成;以及根 据所述第一候选HTTP请求和所述第二候选HTTP请求,生成目标HTTP请求;向Web服务器 发送所述目标HTTP请求;接收所述Web服务器根据所述目标HTTP请求,发送的目标HTTP 响应;向所述第一浏览器和所述第二浏览器,发送所述目标HTTP响应
[0129] 其中,由于第一浏览器根据其对应的操作端21执行操作指令的操作结果,生成并 发送第一候选HTTP请求,以及多个第二浏览器实时根据各自对应的测试端执行相同的操 作指令的操作结果,生成并发送相同的第二候选HTTP请求,对于用于提交数据的HTTP请求 来说,例如,新建一个表单后提交等,势必会出现只有一个HTTP请求提交成功,例如,第一 候选HTTP请求或任意一个第二候选HTTP请求,而其他HTTP请求均提交失败。因此,代理 服务器41需要根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成唯一的一个目 标HTTP请求。
[0130] 具体地,代理服务器41具体可以对第一候选HTTP请求,以及每个测试端22i所对 应的第二浏览器发送的第二候选HTTP请求,利用预先配置的白名单对所提交的数据进行 一致性校验。例如,白名单可以包括部分字段如时间戳、浏览器的用户代理(User Agent, UA)等。然后,所述代理服务器41对通过一致性校验的HTTP请求进行融合处理,以生成目 标HTTP请求并发送给Web服务器,对没有通过一致性校验的HTTP请求进行告警处理。
[0131] 接着,代理服务器41在进一步接收Web服务器根据所述目标HTTP请求返回的目 标HTTP响应之后,将目标HTTP响应复制若干份,分别向通过一致性校验的操作端21和测 试端发送目标HTTP响应。
[0132] 对于一些简单的HTTP请求来说,例如,不涉及数据的提交的HTTP请求等,本实施 例所提供的测试方法所适用的测试系统中,无需包括代理服务器41,操作端21和每个测试 端22i可以分别直接与Web服务器进行通信。即第一浏览器向Web服务器发送第一候选 HTTP请求以及接收Web服务器根据第一候选HTTP请求返回的第一候选HTTP响应,第二浏 览器向Web服务器发送第二候选HTTP请求以及接收Web服务器根据第二候选HTTP请求返 回的第二候选HTTP响应。
[0133] 因此,为了能够处理所有的HTTP请求,代理服务器41可以配置两种工作模式,一 种是透传模式,另一种是融合模式。
[0134] 定义对于一些简单的HTTP请求,代理服务器41采用透传模式,进行处理。即在请 求阶段,直接将第一候选HTTP请求和若干个第二候选HTTP请求分别发送给Web服务器, 不进行任何处理;在响应阶段,直接将Web服务器根据第一候选HTTP请求返回的第一候选 HTTP响应,发送给操作端即操作端所对应的第一浏览器,直接将Web服务器根据第二候选 HTTP请求返回的第二候选HTTP响应,分部发送给每个测试端22,即测试端所对应的第二浏 Π/Γ PLP jAL-nlr 〇
[0135] 定义对于用于提交数据的HTTP请求代理服务器41采用融合模式,进行处理。即 在请求阶段,将第一候选HTTP请求和若干个第二候选HTTP请求进行融合处理,以生成目标 HTTP请求,发送给Web服务器;在响应阶段,将Web服务器根据目标HTTP请求返回的目标 HTTP响应,复制若干份,分别发送给操作端即操作端所对应的第一浏览器和每个测试端22i 即测试端所对应的第二浏览器。
[0136] 需要说明的是,本实施例中,测试系统所包括的操作端21、至少一个测试端22^ 2?……22 n、分发服务器31和代理服务器41可以部署在同一个终端上,或者也可以分别部 署在不同终端上,或者也可以一部分部署在一个终端上,另一部分部署在另一个终端上,在 一部分部署在再一个终端上,本实施例对此不进行特别限定。进一步地,如果测试端都部署 在同一个终端上,具体可以利用虚拟机技术实现,每一个测试端就可以为一个虚拟机的实 例。
[0137] -种较为优选的部署方式为,操作端21部署在终端A上,分发服务器31和代理服 务器41部署在终端B上,每个测试端22i都分别部署在不同的终端上即终端Ni上,i为大 于或等于1,且小于或等于η的整数,η为测试端的数量。
[0138] 需要说明的是,图1对应的实施例中操作端的功能,均可以由本实施例提供的测 试系统中操作端21实现;图1对应的实施例中至少一个测试端的功能,均可以由本实施例 提供的测试系统中至少一个测试端22^2?……22 n实现;图1对应的实施例中分发服务器 的功能,均可以由本实施例提供的测试系统中分发服务器31实现;图1对应的实施例中分 发服务器的功能,均可以由本实施例提供的测试系统中代理服务器41实现。详细描述可以 参见图1对应的实施例中的相关内容,此处不再赘述。
[0139] 本实施例中,通过操作端采集输入设备在第一浏览器展现的待测试页面上的操作 行为,所述操作行为包括操作的页面元素信息和操作的行为信息,进而,根据所述操作行 为,生成操作指令,使得所述操作端能够向至少一个测试端中每个测试端发送测试指示和 所述操作指令,这样,所述每个测试端则可以根据所述测试指示,在第二浏览器展现的所述 待测试页面上执行所述操作指令,只需要使用操作端的一个操作人员在一个浏览器即第一 浏览器所展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动其他 浏览器即第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人员在 不同浏览器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确率 高,从而提高了测试操作的效率和可靠性。
[0140] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,而且第二浏览器的种类没有数量 限制,因此,能够有效提高测试过程中浏览器的覆盖率。
[0141] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,因此,能够实时对比各个测试操 作的操作结果,从而实现了实时监控的目的。
[0142] 另外,采用本发明提供的技术方案,通过分发服务器为本次测试启动服务实例,以 生成所述本次测试的测试指示,使得每次测试都可以对应不同的测试指示,因此,分发服务 器则可以同时为多个操作端提供测试服务,能够有效提高测试操作的效率。
[0143] 图5为本发明另一实施例提供的操作端的结构示意图,如图5所示。本实施例的操 作端可以包括采集单元51、生成单元52和发送单元53。其中,采集单元51,用于采集输入 设备在第一浏览器展现的待测试页面上的操作行为,所述操作行为包括操作的页面元素信 息和操作的行为信息;生成单元52,用于根据所述操作行为,生成操作指令;发送单元53, 用于向至少一个测试端中每个测试端发送测试指示和所述操作指令,以使得所述每个测试 端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所述操作指令。
[0144] 其中,第二浏览器与第一浏览器,为不同浏览器;第二浏览器的数量与测试端的数 量相同,且第二浏览器与测试端一一对应,所述每个测试端所对应的第二浏览器,为不同浏 Π/Γ PLP jAL-nlr 〇
[0145] 可以理解的是,所谓的不同浏览器,可以为在相同操作系统中运行的不同的浏览 器,或者还可以为在不同操作系统中运行的相同的浏览器,或者还可以为在不同操作系统 中运行的不同的浏览器,本实施例对此不进行特别限定。
[0146] 需要说明的是,所述操作端与所述第一浏览器,可以独立运行在第一终端上;或 者,所述操作端还可以以软件开发工具包(Software Development Kit, SDK)形式或插件形 式,设置在所述第一浏览器的内部;本实施例对此不进行特别限定。
[0147] 需要说明的是,所述每个测试端与对应的所述第二浏览器,可以独立运行在第二 终端上;或者,所述测试端还可以以SDK形式或插件形式,设置在所述第二浏览器的内部; 本实施例对此不进行特别限定。
[0148] 可选地,在本实施例的一个可能的实现方式中,所述发送单元53,具体可以用于通 过分发服务器,向至少一个测试端中每个测试端发送测试指示和所述操作指令。
[0149] 可选地,在本实施例的一个可能的实现方式中,如图6所示,本实施例所提供的操 作端还可以进一步包括接收单元61。其中,所述发送单元53,还可以进一步用于向所述分 发服务器发送触发信息。所述接收单元61,用于接收所述分发服务器发送的所述测试指 示,以使得所述用户确定所述每个测试端,所述测试指示为所述分发服务器根据所述触发 信息,为本次测试启动服务实例,生成。相应地,所述发送单元53,则还可以进一步用于向所 述分发服务器发送所述测试指示、所述待测试页面的标识信息和所述每个测试端的标识信 息,以使得所述分发服务器根据所述每个测试端的标识信息,向所述每个测试端发送所述 测试指示和所述待测试页面的标识信息,以使得所述每个测试端驱动所述第二浏览器展现 所述待测试页面。
[0150] 需要说明的是,图1对应的实施例中操作端的功能,均可以由本实施例提供的测 试系统所提供的操作端实现。详细描述可以参见图1对应的实施例中的相关内容,此处不 再赘述。
[0151] 这样,通过采集单元采集输入设备在第一浏览器展现的待测试页面上的操作行 为,所述操作行为包括操作的页面元素信息和操作的行为信息,进而,由生成单元根据所述 操作行为,生成操作指令,使得发送单元能够向至少一个测试端中每个测试端发送测试指 示和所述操作指令,这样,所述每个测试端则可以根据所述测试指示,在第二浏览器展现的 所述待测试页面上执行所述操作指令,只需要使用操作端的一个操作人员在一个浏览器即 第一浏览器所展现的待测试页面上,手动执行一次测试操作,就可以实时通过测试端驱动 其他浏览器即第二浏览器所展现的待测试页面上自动执行相同的测试操作,而无需操作人 员在不同浏览器所展现的待测试页面,手动执行多次相同的测试操作,操作简单,而且正确 率高,从而提高了测试操作的效率和可靠性。
[0152] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,而且第二浏览器的种类没有数量 限制,因此,能够有效提高测试过程中浏览器的覆盖率。
[0153] 另外,采用本发明提供的技术方案,由于实时通过测试端驱动其他浏览器即第二 浏览器所展现的待测试页面上自动执行相同的测试操作,因此,能够实时对比各个测试操 作的操作结果,从而实现了实时监控的目的。
[0154] 另外,采用本发明提供的技术方案,通过分发服务器为本次测试启动服务实例,以 生成所述本次测试的测试指示,使得每次测试都可以对应不同的测试指示,因此,分发服务 器则可以同时为多个操作端提供测试服务,能够有效提高测试操作的效率。
[0155] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统, 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0156] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或页面 组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间 接耦合或通信连接,可以是电性,机械或其它的形式。
[0157] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0158] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0159] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存 储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一个计算 机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发 明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器 (Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘 等各种可以存储程序代码的介质。
[0160] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
【权利要求】
1. 一种测试方法,其特征在于,包括: 操作端采集输入设备在第一浏览器展现的待测试页面上的操作行为,所述操作行为包 括操作的页面元素信息和操作的行为信息; 所述操作端根据所述操作行为,生成操作指令; 所述操作端向至少一个测试端中每个测试端发送测试指示和所述操作指令,以使得所 述每个测试端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所述操作指 令。
2. 根据权利要求1所述的方法,其特征在于,所述操作端向至少一个测试端中每个测 试端发送测试指示和所述操作指令,包括: 所述操作端通过分发服务器,向至少一个测试端中每个测试端发送测试指示和所述操 作指令。
3. 根据权利要求2所述的方法,其特征在于,所述操作端通过分发服务器,向至少一个 测试端中每个测试端发送测试指示和所述操作指令之前,还包括: 所述操作端向所述分发服务器发送触发信息; 所述操作端接收所述分发服务器发送的所述测试指示,以使得所述用户确定所述每个 测试端,所述测试指示为所述分发服务器根据所述触发信息,为本次测试启动服务实例,生 成; 所述操作端向所述分发服务器发送所述测试指示、所述待测试页面的标识信息和所述 每个测试端的标识信息,以使得所述分发服务器根据所述每个测试端的标识信息,向所述 每个测试端发送所述测试指示和所述待测试页面的标识信息,以使得所述每个测试端驱动 所述第二浏览器展现所述待测试页面。
4. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 代理服务器接收第一候选HTTP请求,所述第一候选HTTP请求为所述第一浏览器根据 所述操作行为的操作结果,生成; 所述代理服务器接收第二候选HTTP请求,所述第二候选HTTP请求为所述第二浏览器 根据所述测试端执行所述操作指令的操作结果,生成; 所述代理服务器向Web服务器发送所述第一候选HTTP请求,以及接收所述Web服务器 根据所述第一候选HTTP请求,发送的第一候选HTTP响应;所述代理服务器向Web服务器发 送所述第二候选HTTP请求,以及接收所述Web服务器根据所述第二候选HTTP请求,发送的 第二候选HTTP响应;所述代理服务器向所述第一浏览器发送所述第一候选HTTP响应,向所 述第二浏览器发送所述第二候选HTTP响应;或者 所述代理服务器根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成目标 HTTP请求,向Web服务器发送所述目标HTTP请求,以及接收所述Web服务器根据所述目标 HTTP请求,发送的目标HTTP响应;所述代理服务器向所述第一浏览器和所述第二浏览器, 发送所述目标HTTP响应。
5. 根据权利要求1?4任一权利要求所述的方法,其特征在于,所述操作端与所述第一 浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所述第一浏览 器的内部。
6. 根据权利要求1?4任一权利要求所述的方法,其特征在于,所述每个测试端与对应 的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形式,设置在所 述第二浏览器的内部。
7. -种测试系统,其特征在于,包括操作端和至少一个测试端;其中, 所述操作端,用于采集输入设备在第一浏览器展现的待测试页面上的操作行为,所述 操作行为包括操作的页面元素信息和操作的行为信息;根据所述操作行为,生成操作指令; 以及向所述至少一个测试端中每个测试端发送测试指示和所述操作指令; 所述每个测试端,用于根据所述测试指示,在第二浏览器展现的所述待测试页面上执 行所述操作指令。
8. 根据权利要求7所述的系统,其特征在于,所述系统还包括分发服务器;所述操作 端,具体用于 通过所述分发服务器,向所述每个测试端发送测试指示和所述操作指令。
9. 根据权利要求8所述的系统,其特征在于, 所述操作端,还用于向所述分发服务器发送触发信息; 所述分发服务器,还用于根据所述触发信息,为本次测试启动服务实例,以生成所述本 次测试的所述测试指示;向所述操作端发送所述测试指示,以使得所述用户确定所述每个 测试端; 所述操作端,还用于向所述分发服务器发送所述测试指示、所述待测试页面的标识信 息和所述每个测试端的标识信息; 所述分发服务器,还用于根据所述每个测试端的标识信息,向所述每个测试端发送所 述测试指示和所述待测试页面的标识信息; 所述每个测试端,还用于驱动所述第二浏览器展现所述待测试页面。
10. 根据权利要求7所述的系统,其特征在于,所述系统还包括代理服务器,用于 接收第一候选HTTP请求,所述第一候选HTTP请求为所述第一浏览器根据所述操作行 为的操作结果,生成;接收第二候选HTTP请求,所述第二候选HTTP请求为所述第二浏览器 根据所述测试端执行所述操作指令的操作结果,生成; 向Web服务器发送所述第一候选HTTP请求,以及接收所述Web服务器根据所述第一候 选HTTP请求,发送的第一候选HTTP响应;向Web服务器发送所述第二候选HTTP请求,以及 接收所述Web服务器根据所述第二候选HTTP请求,发送的第二候选HTTP响应;向所述第一 浏览器发送所述第一候选HTTP响应,向所述第二浏览器发送所述第二候选HTTP响应;或者 根据所述第一候选HTTP请求和所述第二候选HTTP请求,生成目标HTTP请求;向Web 服务器发送所述目标HTTP请求;接收所述Web服务器根据所述目标HTTP请求,发送的目标 HTTP响应;向所述第一浏览器和所述第二浏览器,发送所述目标HTTP响应。
11. 根据权利要求7?10任一权利要求所述的系统,其特征在于,所述操作端与所述第 一浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所述第一浏 览器的内部。
12. 根据权利要求7?10任一权利要求所述的系统,其特征在于,所述每个测试端与对 应的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形式,设置在 所述第二浏览器的内部。
13. -种操作端,其特征在于, 采集单元,用于采集输入设备在第一浏览器展现的待测试页面上的操作行为,所述操 作行为包括操作的页面元素信息和操作的行为信息; 生成单元,用于根据所述操作行为,生成操作指令; 发送单元,用于向至少一个测试端中每个测试端发送测试指示和所述操作指令,以使 得所述每个测试端根据所述测试指示,在第二浏览器展现的所述待测试页面上执行所述操 作指令。
14. 根据权利要求13所述的操作端,其特征在于,所述发送单元,具体用于 通过分发服务器,向至少一个测试端中每个测试端发送测试指示和所述操作指令。
15. 根据权利要求14所述的操作端,其特征在于,所述操作端还包括接收单元;其中, 所述发送单元,还用于向所述分发服务器发送触发信息; 所述接收单元,用于接收所述分发服务器发送的所述测试指示,以使得所述用户确定 所述每个测试端,所述测试指示为所述分发服务器根据所述触发信息,为本次测试启动服 务实例,生成; 所述发送单元,还用于向所述分发服务器发送所述测试指示、所述待测试页面的标识 信息和所述每个测试端的标识信息,以使得所述分发服务器根据所述每个测试端的标识信 息,向所述每个测试端发送所述测试指示和所述待测试页面的标识信息,以使得所述每个 测试端驱动所述第二浏览器展现所述待测试页面。
16. 根据权利要求13?15任一权利要求所述的操作端,其特征在于,所述操作端与所 述第一浏览器,独立运行在第一终端上;所述操作端以SDK形式或插件形式,设置在所述第 一浏览器的内部。
17. 根据权利要求13?15任一权利要求所述的操作端,其特征在于,所述每个测试端 与对应的所述第二浏览器,独立运行在第二终端上;所述测试端以SDK形式或插件形式,设 置在所述第二浏览器的内部。
【文档编号】G06F11/36GK104102578SQ201410301283
【公开日】2014年10月15日 申请日期:2014年6月27日 优先权日:2014年6月27日
【发明者】张立理, 李义冬, 沈彬, 梁丹 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1