CN108153667B - 自动化测试方法、装置及系统 - Google Patents

自动化测试方法、装置及系统 Download PDF

Info

Publication number
CN108153667B
CN108153667B CN201611111781.7A CN201611111781A CN108153667B CN 108153667 B CN108153667 B CN 108153667B CN 201611111781 A CN201611111781 A CN 201611111781A CN 108153667 B CN108153667 B CN 108153667B
Authority
CN
China
Prior art keywords
chrome
test
tested program
console
test case
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611111781.7A
Other languages
English (en)
Other versions
CN108153667A (zh
Inventor
孟飞阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
3600 Technology Group Co ltd
Original Assignee
3600 Technology Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 3600 Technology Group Co ltd filed Critical 3600 Technology Group Co ltd
Priority to CN201611111781.7A priority Critical patent/CN108153667B/zh
Publication of CN108153667A publication Critical patent/CN108153667A/zh
Application granted granted Critical
Publication of CN108153667B publication Critical patent/CN108153667B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Abstract

本发明提供了一种自动化测试方法、装置及系统,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码。该方法包括,当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口,其中,远程调试接口能够与外部的chrome控制台进行通信;通过远程调试接口将测试请求发送至chrome控制台,并接收chrome控制台根据测试请求返回的测试用例;将测试用例作用到被测程序以执行被测程序,从而实现对被测程序的自动化测试。本发明实施例可以实现利用不同于被测程序的脚本语言编写的测试用例对该被测程序进行自动化测试。

Description

自动化测试方法、装置及系统
技术领域
本发明涉及软件测试技术领域,特别是涉及一种自动化测试方法、装置及系统。
背景技术
软件测试是利用测试工具按照测试方案和测试用例对产品进行功能和性能测试,对测试出现的问题进行分析和评估,以确保开发的产品适合需求。在对软件产品进行自动化测试的过程中,通常需要测试人员掌握脚本语言,然后按照脚本语言的语法要求进行测试脚本的编码与调试。自动化测试作为软件测试的重要组成部分,不仅使软件测试节省了大量人力、时间或硬件资源,还提高了软件测试的效率。
现有的应用软件大多数都是基于Chrome内核,并且采用C++语言编写应用软件的显示界面,而对于一些基于JS(JavaScript,直译式脚本语言)、VBS(Visual Basic,可视化BASIC语言)或者其他脚本语言的自动化测试工具,无法直接对具有C++语言编写的显示界面的应用软件中的被测程序进行自动化测试,从而不利于自动化测试工具的多方应用。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的自动化测试方法、装置及系统。
依据本发明的一方面,提供了一种自动化测试方法,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述方法包括:
当接收到对所述被测程序进行测试的测试请求时,开启所述chrome内核上的远程调试接口,其中,所述远程调试接口能够与外部的chrome控制台进行通信;
通过所述远程调试接口将所述测试请求发送至所述chrome控制台,并接收所述chrome控制台根据所述测试请求返回的测试用例;
将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试。
可选地,所述指定语言与编写所述测试用例的语言不同;
将所述测试用例作用到所述被测程序以执行所述被测程序,包括:
由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序。
可选地,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写。
可选地,所述方法还包括:
通过所述远程调试接口接收所述chrome控制台传送的JavaScript脚本语言的相关函数信息,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
可选地,对所述被测程序进行自动化测试,包括:
对所述被测程序的页面中一个或多个功能进行流程验证。
可选地,所述方法还包括:
在对所述被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证后,通过所述远程调试接口向所述chrome控制台提交该功能的流程验证结果。
可选地,在实现对所述被测程序的自动化测试之后,所述方法还包括:
通过所述远程调试接口向所述chrome控制台发送已完成测试的提示信息。
可选地,所述被测程序位于一个或多个终端。
可选地,所述远程调试接口包括远程HTTP接口。
依据本发明的另一方面,还提供了一种自动化测试方法,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述方法包括:
开启chrome控制台,由所述chrome控制台接收从外部的chrome内核上的远程调试接口发送的对所述被测程序进行测试的测试请求;
由所述chrome控制台获取对所述被测程序进行测试的测试用例,并将所述测试用例传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试。
可选地,由所述chrome控制台获取对所述被测程序进行测试的测试用例,包括:
由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;
由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台。
可选地,由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,包括:
由所述驱动程序根据所述测试请求,采用JavaScript脚本语言编写对所述被测程序进行测试的测试用例。
可选地,所述方法还包括:
由所述chrome控制台将JavaScript脚本语言的相关函数信息传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
可选地,所述chrome控制台位于基于chrome内核的浏览器。
可选地,所述开启chrome控制台,包括:
由所述驱动程序开启所述基于chrome内核的浏览器,进而调起所述浏览器的chrome控制台。
依据本发明的另一方面,还提供了一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述装置包括:
开启模块,适于当接收到对所述被测程序进行测试的测试请求时,开启所述chrome内核上的远程调试接口,其中,所述远程调试接口能够与外部的chrome控制台进行通信;
请求发送模块,适于通过所述远程调试接口将所述测试请求发送至所述chrome控制台;
测试用例接收模块,适于接收所述chrome控制台根据所述测试请求返回的测试用例;
测试模块,适于将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试。
可选地,所述指定语言与编写所述测试用例的语言不同;
所述测试模块还适于:由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序。
可选地,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写。
可选地,所述测试用例接收模块还适于:
通过所述远程调试接口接收所述chrome控制台传送的JavaScript脚本语言的相关函数信息,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
可选地,所述测试模块还适于:
对所述被测程序的页面中一个或多个功能进行流程验证。
可选地,所述装置还包括验证结果提交模块,适于:
在对所述被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证后,通过所述远程调试接口向所述chrome控制台提交该功能的流程验证结果。
可选地,所述装置还包括提示信息发送模块,适于:
在所述测试模块实现对所述被测程序的自动化测试之后,通过所述远程调试接口向所述chrome控制台发送已完成测试的提示信息。
可选地,所述被测程序位于一个或多个终端。
可选地,所述远程调试接口包括远程HTTP接口。
依据本发明的另一方面,还提供了一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述装置包括:
请求接收模块,适于开启chrome控制台,由所述chrome控制台接收从外部的chrome内核上的远程调试接口发送的对所述被测程序进行测试的测试请求;
测试用例获取模块,适于由所述chrome控制台获取对所述被测程序进行测试的测试用例;
测试用例发送模块,适于将所述测试用例传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试。
可选地,所述测试用例获取模块还适于:
由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;
由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台。
可选地,所述测试用例获取模块还适于:
由所述驱动程序根据所述测试请求,采用JavaScript脚本语言编写对所述被测程序进行测试的测试用例。
可选地,所述测试用例发送模块还适于:
由所述chrome控制台将JavaScript脚本语言的相关函数信息传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
可选地,所述chrome控制台位于基于chrome内核的浏览器。
可选地,所述请求接收模块还适于:
由所述驱动程序开启所述基于chrome内核的浏览器,进而调起所述浏览器的chrome控制台。
依据本发明再一方面,还提供了一种自动化测试系统,包括:包含有被测程序的自动化测试装置和包含有驱动程序以及chrome控制台的自动化测试装置。
在本发明实施例中,当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口(该远程调试接口能够与外部的chrome控制台进行通信),通过此远程调试接口将测试请求发送至chrome控制台,发送完测试请求之后,接收chrome控制台根据测试请求返回的测试用例,并将测试用例作用到被测程序上以执行被测程序,从而实现对被测程序的自动化测试。由此可见,虽然被测程序外层嵌套显示界面与测试用例是基于不同的脚本语言编写的,在相关的技术中无法绕过嵌套的显示界面获取测试用例对被测程序进行测试,然而本发明提供的自动化测试方案能够通过chrome内核上远程调试接口将被测程序的测试请求发送至chrome控制台,并依然通过远程调试接口接收chrome控制台根据测试请求返回的测试用例,其没有与被测程序的外层显示界面产生交互,而是通过chrome内核上的远程调试接口发送测试请求和接收测试用例,实现利用不同于被测程序的脚本语言编写的测试用例对该被测程序进行自动化测试。
进一步的,本发明实施例还能够通过远程调试接口向chrome控制台发送已完成测试的提示信息,从而可以由chrome控制台根据提示信息作出快速响应,如返回后续测试需要用到的测试用例或者是再次返回当前测试用例,从而可以对被测程序进行高效地自动化测试。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的自动化测试方法的流程示意图;
图2是根据本发明另一个实施例的自动化测试方法的流程示意图;
图3是根据本发明一个实施例的结合基于chrome内核的客户端和chrome控制台的自动化测试方法的流程示意图;
图4是根据本发明一个实施例的自动化测试装置的结构示意图;
图5是根据本发明另一个实施例的自动化测试装置的结构示意图;
图6是根据本发明再一个实施例的自动化测试装置的结构示意图;以及
图7是根据本发明一个实施例的自动化测试系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种自动化测试方法,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码。
下面对本发明实施例的自动化测试方法分两侧介绍,一侧包含有被测程序,另一侧是chrome控制台。首先介绍包含有被测程序的一侧的自动化测试方法,图1是根据本发明一个实施例的自动化测试方法的流程示意图。参见图1,该方法至少可以包括步骤S102至步骤S106。
步骤S102,当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口,其中,远程调试接口能够与外部的chrome控制台进行通信。
在该步骤中,以被测程序位于终端的客户端上为例,chrome内核上具有远程调试接口这项功能,在基于chrome内核的客户端被正常的安装、使用时,chrome内核上的远程调试接口处于关闭状态,当需要对该客户端的被测程序进行测试时,即接收到对被测程序进行测试的测试请求时,可以通过开启chrome内核上的远程调试接口,进而与外部的chrome控制台进行通信。该远程调试接口可以包括远程HTTP接口,chrome控制台可以位于基于chrome内核的浏览器或其他基于chrome内核的客户端上,本发明对此不作限制。
步骤S104,通过远程调试接口将测试请求发送至chrome控制台,并接收chrome控制台根据测试请求返回的测试用例。
在该步骤中,chrome控制台在通过远程调试接口接收测试请求以及根据测试请求返回测试用例的过程中,能够起到数据接收以及传送的作用,相当于一个数据“中转站”。
步骤S106,将测试用例作用到被测程序上以执行被测程序,从而实现对被测程序的自动化测试。
在该步骤中,若被测程序外层包装的代码在编写时所采用的指定语言与编写测试用例的语言相同,则可以直接将接收到的测试用例作用到被测程序上,并执行被测程序,从而实现对被测程序的自动化测试。
若指定语言与编写测试用例的语言不同,需要首先由chrome内核从远程调试接口处获取测试用例,然后,将测试用例作用到被测程序上,进而执行被测程序实现对被测程序的自动化测试。在本发明一可选的实施例中,指定语言可以采用C++语言,测试用例可以采用JavaScript脚本语言编写,JavaScript脚本语言是在chrome控制台中使用最方便的一种脚本语言,且易于理解、学习,方便测试人员或者编程人员对测试用例进行定制。
当测试用例采用JavaScript脚本语言编写时,在本发明一可选的实施例中,由于采用JavaScript脚本语言编写的测试用例中,可能存在有一些自定义的函数,此时chrome内核不能识别自定义的函数,因此,本发明实施例还可以通过远程调试接口接收chrome控制台传送的与JavaScript脚本语言的相关函数信息,由chrome内核从远程调试接口处获取JavaScript脚本语言的相关函数信息,并利用JavaScript脚本语言的相关函数信息解析测试用例。
在本发明实施例中,当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口(该远程调试接口能够与外部的chrome控制台进行通信),通过此远程调试接口将测试请求发送至chrome控制台,发送完测试请求之后,接收chrome控制台根据测试请求返回的测试用例,并将测试用例作用到被测程序上以执行被测程序,从而实现对被测程序的自动化测试。由此可见,虽然被测程序外层嵌套显示界面与测试用例是基于不同的脚本语言编写的,在相关的技术中无法绕过嵌套的显示界面获取测试用例对被测程序进行测试,然而本发明提供的自动化测试方案能够通过chrome内核上远程调试接口将被测程序的测试请求发送至chrome控制台,并依然通过远程调试接口接收chrome控制台根据测试请求返回的测试用例,其没有与被测程序的外层显示界面产生交互,而是通过chrome内核上的远程调试接口发送测试请求和接收测试用例,实现利用不同于被测程序的脚本语言编写的测试用例对该被测程序进行自动化测试。
一般而言,控制台(console)是用于存放管理工具的框架,是由控制台的项定义的,包括控制台文件夹和其他容器、网页和其他管理项。控制台带有窗口,这些窗口能提供控制台树视图和由控制台树中的项引发的管理属性、服务及事件的视图。本发明实施例涉及的chrome控制台是基于chrome核心的控制台,可以是基于chrome核心的浏览器,也可以其他基于chrome内核的客户端,它们均具有chrome控制台这项功能。在本发明实施例中,chrome控制台能够起到数据接收以及传送的作用,相当于一个数据“中转站”。在本发明实施例中,可以由指定的驱动程序获取测试用例,然后注入到chrome控制台,下文将进行详细介绍。
在本发明一可选的实施例中,上文步骤S106提及的对被测程序进行自动化测试,可以是对被测程序的页面中的一个或多个功能进行流程验证。以被测程序为客户端为例,可以测试客户端的页面上的按钮在被点击之后是否能够正常工作,并产生相应的响应,可以通过将测试用例作用在代表按钮功能的被测程序上,执行被测程序,实现对按钮的点击操作,从而验证该按钮是否可以正常工作。
在本发明的可选实施例中,在对被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证,所产生的流程验证结果可以通过远程调试接口提交到chrome控制台上,从而测试人员可以从chrome控制台直观地了解到自动化测试的进程,以及对每一个功能的自动化测试的结果。
具体地,以测试QQ聊天页面中的“发送”按钮的功能为例,当代表“发送”按钮的功能的一个被测程序在测试用例(该测试用例用于对“发送”按钮执行按下操作)的作用下测试完成后,获取此时可以代表“发送”按钮当前状态的状态码,将获取到的当前状态码与“发送”按钮在执行上述操作之前的状态码进行对比,若比对不一致,则代表“发送”按钮执行了按下操作,即对“发送”按钮的按下功能的流程验证成功;若比对一致,则代表“发送”按钮没有执行按下操作,即对“发送”按钮的按下功能的流程验证失败,此时需要对“发送”按钮的按下功能进行重新测试。
在上述步骤S106之后,本发明实施例还可以通过远程调试接口向chrome控制台发送已完成测试的提示信息,该提示信息包括自动化测试成功和自动化测试失败的提示信息。若提示信息为自动化测试成功的提示信息,则可以接收由chrome控制台返回的用于后续被测程序的新的测试用例;若提示信息为自动化测试失败的提示信息,则可以接收由chrome控制台重新返回用于当前被测程序的测试用例。
在本发明一实施例中,相同的被测程序还可以位于一个或者多个终端的客户端上。例如,当相同的被测程序位于两个不同的移动终端上的客户端时,可以分别通过两个客户端上的chrome内核的远程调试接口来获取同一测试用例,进而对两个不同的移动终端上的被测程序进行自动化测试,在此过程中,对两个客户端上的被测程序进行自动化测试的过程互不影响,因此,可以有效地提高自动化测试的效率。
相应的,下面将介绍包含有chrome控制台的另一侧的自动化测试方法,图2是根据本发明另一个实施例的自动化测试方法的流程示意图。参见图2,该方法至少可以包括步骤S202至步骤S204。
步骤S202,开启chrome控制台,由chrome控制台接收从外部的chrome内核上的远程调试接口发送的对被测程序进行测试的测试请求。
在该步骤,chrome控制台位于基于chrome内核的浏览器或其他基于chrome内核的客户端上,本发明对此不作限制。当chrome控制台位于基于chrome内核的浏览器上时,开启chrome控制台时,可以由驱动程序开启基于chrome内核的浏览器,进而调起浏览器的chrome控制台。
步骤S204,由chrome控制台获取对被测程序进行测试的测试用例,并将测试用例传送给远程调试接口,以由chrome内核从远程调试接口处获取测试用例,并将测试用例作用到被测程序以执行被测程序,从而实现对被测程序的自动化测试。
在该步骤中,由chrome控制台获取对被测程序进行测试的测试用例时,本发明提供了一种可选的方案,在该方案中,首先,由chrome控制台将接收的测试请求发送给指定的驱动程序。然后,由驱动程序根据测试请求定制对被测程序进行测试的测试用例。最后,并将定制的测试用例注入chrome控制台。
进一步地,驱动程序根据测试请求定制测试用例可以是由驱动程序根据测试请求,采用JavaScript脚本语言编写对被测程序进行测试的测试用例。或者,驱动程序根据测试请求,从包含有多个采用JavaScript脚本语言编写的测试用例的数据库中调取能够对被测程序进行测试的测试用例,并将调取的测试用例进行整理,以使测试用例按照被测程序的测试顺序被传送给远程调试接口。这里,可以由编程人员采用JavaScript脚本语言在预先编写多个测试用例,并将预先编写的多个测试用例存储在数据库中,以备后续使用。这里可以看到,本发明实施例中的chrome控制台能够起到数据接收以及传送的作用,相当于一个数据“中转站”,并且由指定的驱动程序获取测试用例,然后注入到chrome控制台。
当测试用例采用JavaScript脚本语言编写时,由于采用JavaScript脚本语言编写的测试用例中,可能存在有一些自定义的函数,此时chrome内核不能识别自定义的函数,因此,在本发明一实施例中,还可以由chrome控制台将JavaScript脚本语言的相关函数信息传送给远程调试接口,以由chrome内核从远程调试接口处获取JavaScript脚本语言的相关函数信息,并利用JavaScript脚本语言的相关函数信息解析测试用例。
下面通过一具体实施例详细介绍本发明的自动化测试方法的实现过程。在该实施例中,被测程序位于基于chrome内核的客户端上,且chrome内核的远程调试接口采用远程HTTP接口,测试用例采用JavaScript脚本语言编写。图3是根据本发明一个实施例的结合基于chrome内核的客户端和chrome控制台的自动化测试方法的流程图。参见图3,该方法至少可以包括步骤S302至步骤S312。
步骤S302,当接收到对客户端上的被测程序进行测试的测试请求时,开启基于chrome内核的远程HTTP接口。
步骤S304,客户端通过远程HTTP接口将测试请求发送至chrome控制台。
步骤S306,开启chrome控制台,由chrome控制台接收从外部客户端的chrome内核的远程HTTP接口发送的对被测程序进行测试的测试请求。
步骤S308,由chrome控制台获取对被测程序进行测试的测试用例。
步骤S310,chrome控制台将测试用例传送给远程HTTP接口。
步骤S312,客户端的chrome内核的从远程HTTP接口处获取测试用例,并将测试用例作用到被测程序以执行被测程序,从而实现对被测程序的自动化测试。
在该步骤中,实现对被测程序的自动化测试之后,客户端的chrome内核还可以通过远程HTTP接口向chrome控制台发送已完成测试的提示信息。该提示信息包括自动化测试成功和自动化测试失败的提示信息。chrome控制台通过远程HTTP接口接收客户端上的chrome内核发送的已完成测试的提示信息,并根据提示信息向客户端的远程HTTP接口返回相应的测试用例,若提示信息为自动化测试成功的提示信息,则chrome控制台向客户端的chrome内核返回的用于后续被测程序的新的测试用例;若提示信息为自动化测试失败的提示信息,则chrome控制台客户端的chrome内核重新返回用于当前被测程序的测试用例。客户端上的chrome内核通过远程HTTP接口接收chrome控制台返回的用于后续被测程序或者当前被测程序的测试用例,并将返回的测试用例作用在后续或者当前的被测程序上,以运行后续或者当前的被测程序,对后续或者当前的被测程序进行自动化测试。
本发明实施例还能够通过远程调试接口向chrome控制台发送已完成测试的提示信息,从而可以由chrome控制台根据提示信息作出快速响应,如返回后续测试需要用到的测试用例或者是再次返回当前测试用例,从而可以对被测程序进行高效地自动化测试。
基于同一发明构思,本发明还提供了一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码,图4是根据本发明一个实施例的自动化测试装置的结构示意图。参见图4,该装置可以包括开启模块410、请求发送模块420、测试用例接收模块430以及测试模块440。
现介绍本发明实施例的自动化测试装置400的各组成或器件的功能以及各部分间的连接关系:
开启模块410,适于当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口,其中,远程调试接口能够与外部的chrome控制台进行通信;
请求发送模块420,与开启模块410耦合,适于通过远程调试接口将测试请求发送至chrome控制台;
测试用例接收模块430,与请求发送模块420耦合,适于接收chrome控制台根据测试请求返回的测试用例;
测试模块440,与测试用例接收模块430耦合,适于将测试用例作用到被测程序以执行被测程序,从而实现对被测程序的自动化测试。
在本发明一实施例中,指定语言可以包括C++语言,测试用例可以采用JavaScript脚本语言编写。
在本发明一实施例中,测试用例接收模块430还适于,通过远程调试接口接收chrome控制台传送的JavaScript脚本语言的相关函数信息,以由chrome内核从远程调试接口处获取JavaScript脚本语言的相关函数信息,并利用JavaScript脚本语言的相关函数信息解析测试用例。
在本发明一实施例中,若指定语言与编写测试用例的语言不同,测试模块440还适于,由chrome内核从远程调试接口处获取测试用例,并将测试用例作用到被测程序以执行被测程序。
在本发明一实施例中,测试模块440还适于,对被测程序的页面中一个或多个功能进行流程验证。
在本发明一实施例中,被测程序位于一个或多个终端。
在本发明一实施例中,远程调试接口包括远程HTTP接口。
本发明还提供了另一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码,图5是根据本发明另一个实施例的自动化测试装置的结构示意图,参见图5,自动化测试装置400除了包含图4中所示的各模块之外,还可以包括:验证结果提交模块450或提示信息发送模块460。
验证结果提交模块450,与测试模块440耦合,适于在对被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证后,通过远程调试接口向chrome控制台提交该功能的流程验证结果。
提示信息发送模块460,与测试模块440耦合,适于在测试模块440实现对被测程序的自动化测试之后,通过远程调试接口向chrome控制台发送已完成测试的提示信息。
本发明还提供了再一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码,图6是根据本发明再一个实施例的自动化测试装置的结构示意图,参见图6,该装置至少可以包括请求接收模块610、测试用例获取模块620以及测试用例发送模块630。
现介绍本发明实施例的自动化测试装置600的各组成或器件的功能以及各部分间的连接关系:
请求接收模块610,适于开启chrome控制台,由chrome控制台接收从外部的chrome内核上的远程调试接口发送的对被测程序进行测试的测试请求;
测试用例获取模块620,与请求接收模块610耦合,适于由chrome控制台获取对被测程序进行测试的测试用例;
测试用例发送模块630,与测试用例获取模块620耦合,适于将测试用例传送给远程调试接口,以由chrome内核从远程调试接口处获取测试用例,并将测试用例作用到被测程序以执行被测程序,从而实现对被测程序的自动化测试。
在本发明一实施例中,chrome控制台可以位于基于chrome内核的浏览器。
在本发明一实施例中,请求接收模块610还适于,由驱动程序开启基于chrome内核的浏览器,进而调起浏览器的chrome控制台。
在本发明一实施例中,测试用例获取模块620还适于,由chrome控制台将接收的测试请求发送给指定的驱动程序,并由驱动程序根据测试请求定制对被测程序进行测试的测试用例,并将定制的测试用例注入chrome控制台。
在本发明一实施例中,测试用例获取模块620还适于,由驱动程序根据测试请求,采用JavaScript脚本语言编写对被测程序进行测试的测试用例。
在本发明一实施例中,测试用例发送模块630还适于,由chrome控制台将JavaScript脚本语言的相关函数信息传送给远程调试接口,以由chrome内核从远程调试接口处获取JavaScript脚本语言的相关函数信息,并利用JavaScript脚本语言的相关函数信息解析测试用例。
此外,本发明实施例还提供了一种自动化测试系统,用于对基于chrome内核编写的被测程序进行自动化测试,被测程序外层包装有采用指定语言编写的代码。图7是根据本发明一个实施例的自动化测试系统的结构示意图。参见图7,自动化测试系统700可以包括:包含有被测程序的自动化测试装置710和包含有驱动程序以及chrome控制台的自动化测试装置720。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
在本发明实施例中,当接收到对被测程序进行测试的测试请求时,开启chrome内核上的远程调试接口(该远程调试接口能够与外部的chrome控制台进行通信),通过此远程调试接口将测试请求发送至chrome控制台,发送完测试请求之后,接收chrome控制台根据测试请求返回的测试用例,并将测试用例作用到被测程序上以执行被测程序,从而实现对被测程序的自动化测试。由此可见,虽然被测程序外层嵌套显示界面与测试用例是基于不同的脚本语言编写的,在相关的技术中无法绕过嵌套的显示界面获取测试用例对被测程序进行测试,然而本发明提供的自动化测试方案能够通过chrome内核上远程调试接口将被测程序的测试请求发送至chrome控制台,并依然通过远程调试接口接收chrome控制台根据测试请求返回的测试用例,其没有与被测程序的外层显示界面产生交互,而是通过chrome内核上的远程调试接口发送测试请求和接收测试用例,实现利用不同于被测程序的脚本语言编写的测试用例对该被测程序进行自动化测试。
进一步的,本发明实施例还能够通过远程调试接口向chrome控制台发送已完成测试的提示信息,从而可以由chrome控制台根据提示信息作出快速响应,如返回后续测试需要用到的测试用例或者是再次返回当前测试用例,从而可以对被测程序进行高效地自动化测试。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的自动化测试装置及系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (25)

1.一种自动化测试方法,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述指定语言与编写测试用例的语言不同,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写,所述方法包括:
当接收到对所述被测程序进行测试的测试请求时,开启所述chrome内核上的远程调试接口,其中,所述远程调试接口能够与外部的chrome控制台进行通信;
通过所述远程调试接口将所述测试请求发送至所述chrome控制台;
由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;
由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台;
接收所述chrome控制台根据所述测试请求返回的测试用例;
将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试;
将所述测试用例作用到所述被测程序以执行所述被测程序,包括:
由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序。
2.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述远程调试接口接收所述chrome控制台传送的JavaScript脚本语言的相关函数信息,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
3.根据权利要求1或2所述的方法,其中,对所述被测程序进行自动化测试,包括:
对所述被测程序的页面中一个或多个功能进行流程验证。
4.根据权利要求3所述的方法,其中,所述方法还包括:
在对所述被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证后,通过所述远程调试接口向所述chrome控制台提交该功能的流程验证结果。
5.根据权利要求4所述的方法,其中,在实现对所述被测程序的自动化测试之后,所述方法还包括:
通过所述远程调试接口向所述chrome控制台发送已完成测试的提示信息。
6.根据权利要求5所述的方法,其中,所述被测程序位于一个或多个终端。
7.根据权利要求6所述的方法,其中,所述远程调试接口包括远程HTTP接口。
8.一种自动化测试方法,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述指定语言与编写测试用例的语言不同,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写,所述方法包括:
开启chrome控制台,由所述chrome控制台接收从外部的chrome内核上的远程调试接口发送的对所述被测程序进行测试的测试请求;
由所述chrome控制台获取对所述被测程序进行测试的测试用例,并将所述测试用例传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试;
由所述chrome控制台获取对所述被测程序进行测试的测试用例,包括:
由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;
由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台。
9.根据权利要求8所述的方法,其中,由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,包括:
由所述驱动程序根据所述测试请求,采用JavaScript脚本语言编写对所述被测程序进行测试的测试用例。
10.根据权利要求9所述的方法,其中,所述方法还包括:
由所述chrome控制台将JavaScript脚本语言的相关函数信息传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
11.根据权利要求8-10中任一项所述的方法,其中,所述chrome控制台位于基于chrome内核的浏览器。
12.根据权利要求11所述的方法,其中,所述开启chrome控制台,包括:
由驱动程序开启所述基于chrome内核的浏览器,进而调起所述浏览器的chrome控制台。
13.一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述指定语言与编写测试用例的语言不同,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写,所述装置包括:
开启模块,适于当接收到对所述被测程序进行测试的测试请求时,开启所述chrome内核上的远程调试接口,其中,所述远程调试接口能够与外部的chrome控制台进行通信;
请求发送模块,适于通过所述远程调试接口将所述测试请求发送至所述chrome控制台;
测试用例接收模块,适于由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台;接收所述chrome控制台根据所述测试请求返回的测试用例;
测试模块,适于将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试;
所述测试模块,还适于由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序。
14.根据权利要求13所述的装置,其中,所述测试用例接收模块还适于:
通过所述远程调试接口接收所述chrome控制台传送的JavaScript脚本语言的相关函数信息,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
15.根据权利要求13-14中任一项所述的装置,其中,所述测试模块还适于:
对所述被测程序的页面中一个或多个功能进行流程验证。
16.根据权利要求15所述的装置,其中,所述装置还包括验证结果提交模块,适于:
在对所述被测程序的页面中一个或多个功能进行流程验证的过程中,每对一个功能进行流程验证后,通过所述远程调试接口向所述chrome控制台提交该功能的流程验证结果。
17.根据权利要求16所述的装置,其中,所述装置还包括提示信息发送模块,适于:
在所述测试模块实现对所述被测程序的自动化测试之后,通过所述远程调试接口向所述chrome控制台发送已完成测试的提示信息。
18.根据权利要求17所述的装置,其中,所述被测程序位于一个或多个终端。
19.根据权利要求18所述的装置,其中,所述远程调试接口包括远程HTTP接口。
20.一种自动化测试装置,用于对基于chrome内核编写的被测程序进行自动化测试,所述被测程序外层包装有采用指定语言编写的代码,所述指定语言与编写测试用例的语言不同,所述指定语言包括C++语言,所述测试用例采用JavaScript脚本语言编写,所述装置包括:
请求接收模块,适于开启chrome控制台,由所述chrome控制台接收从外部的chrome内核上的远程调试接口发送的对所述被测程序进行测试的测试请求;
测试用例获取模块,适于由所述chrome控制台获取对所述被测程序进行测试的测试用例;
测试用例发送模块,适于将所述测试用例传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述测试用例,并将所述测试用例作用到所述被测程序以执行所述被测程序,从而实现对所述被测程序的自动化测试;
所述测试用例获取模块,还适于由所述chrome控制台将接收的所述测试请求发送给指定的驱动程序;由所述驱动程序根据所述测试请求定制对所述被测程序进行测试的测试用例,并将定制的所述测试用例注入所述chrome控制台。
21.根据权利要求20所述的装置,其中,所述测试用例获取模块还适于:
由所述驱动程序根据所述测试请求,采用JavaScript脚本语言编写对所述被测程序进行测试的测试用例。
22.根据权利要求21所述的装置,其中,所述测试用例发送模块还适于:
由所述chrome控制台将JavaScript脚本语言的相关函数信息传送给所述远程调试接口,以由所述chrome内核从所述远程调试接口处获取所述JavaScript脚本语言的相关函数信息,并利用所述JavaScript脚本语言的相关函数信息解析所述测试用例。
23.根据权利要求20-22中任一项所述的装置,其中,所述chrome控制台位于基于chrome内核的浏览器。
24.根据权利要求23所述的装置,其中,所述请求接收模块还适于:
由驱动程序开启所述基于chrome内核的浏览器,进而调起所述浏览器的chrome控制台。
25.一种自动化测试系统,包括权利要求13-19所述的自动化测试装置以及权利要求20-24所述自动化测试装置。
CN201611111781.7A 2016-12-06 2016-12-06 自动化测试方法、装置及系统 Active CN108153667B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611111781.7A CN108153667B (zh) 2016-12-06 2016-12-06 自动化测试方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611111781.7A CN108153667B (zh) 2016-12-06 2016-12-06 自动化测试方法、装置及系统

Publications (2)

Publication Number Publication Date
CN108153667A CN108153667A (zh) 2018-06-12
CN108153667B true CN108153667B (zh) 2023-05-30

Family

ID=62468428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611111781.7A Active CN108153667B (zh) 2016-12-06 2016-12-06 自动化测试方法、装置及系统

Country Status (1)

Country Link
CN (1) CN108153667B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829556A (zh) * 2018-06-27 2018-11-16 中国建设银行股份有限公司 一种自动化测试方法及装置
CN109491913B (zh) * 2018-11-09 2022-07-29 国机智骏汽车有限公司 基于物联网的电池管理系统测试方法及系统
CN109491811B (zh) * 2018-11-20 2022-03-08 网易(杭州)网络有限公司 游戏测试方法、装置及存储介质
CN110059000A (zh) * 2019-03-15 2019-07-26 深圳壹账通智能科技有限公司 聊天剧本测试控制方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528297A (zh) * 2016-01-29 2016-04-27 广州酷狗计算机科技有限公司 对web页面进行测试的方法及装置
CN106126411A (zh) * 2016-06-13 2016-11-16 广州酷狗计算机科技有限公司 一种对被测程序代码进行测试的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819758B2 (en) * 2014-04-28 2017-11-14 Sap Se Remote debugging into mobile web applications across devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528297A (zh) * 2016-01-29 2016-04-27 广州酷狗计算机科技有限公司 对web页面进行测试的方法及装置
CN106126411A (zh) * 2016-06-13 2016-11-16 广州酷狗计算机科技有限公司 一种对被测程序代码进行测试的方法和装置

Also Published As

Publication number Publication date
CN108153667A (zh) 2018-06-12

Similar Documents

Publication Publication Date Title
CN108153667B (zh) 自动化测试方法、装置及系统
US10540269B2 (en) Inter-process communication automated testing framework
US9645910B1 (en) Cross platform mobile HTML debugging
US9652364B1 (en) Cloud service for mobile testing and debugging
CN105302732B (zh) 一种移动终端的自动测试方法及装置
US9910764B2 (en) Automated software testing
US9417992B2 (en) Web portal API test report generation
US20120221893A1 (en) Managing test automation
CN107688529B (zh) 组件调试方法和装置
CN108804305A (zh) 一种自动化测试的方法及装置
CN110362490B (zh) 融合iOS与Android移动应用的自动化测试方法及系统
CN105589805B (zh) 一种代码覆盖率报告的生成方法和装置
CN105183630B (zh) 应用程序测试方法及装置
CN111444103B (zh) 一种Web页面自动化测试方法及相关设备
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
CN105760307B (zh) 智能终端的测试方法、装置及系统
CN113553257B (zh) 测试方法、装置、存储介质及电子设备
CN110659198A (zh) 应用程序的测试用例执行方法、装置和软件测试系统
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
CN107861875B (zh) 一种混合移动应用的模拟方法及系统
CN112463618A (zh) 自动化测试方法、装置、介质及设备
CN106557411B (zh) Android系统中Hybrid应用的测试方法及系统
CN117370203A (zh) 自动化测试方法、系统、电子设备及存储介质
CN111666199A (zh) 在智能终端上执行的调试方法以及软件调试器
US20210019253A1 (en) Methods Circuits Devices Systems and Functionally Associated Machine Executable Code For Enhanced Automated Software Code Testing

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: 20230516

Address after: 300450 No. 9-3-401, No. 39, Gaoxin 6th Road, Binhai Science Park, high tech Zone, Binhai New Area, Tianjin

Applicant after: 3600 Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Applicant before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Applicant before: Qizhi software (Beijing) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant