CN108241573A - 一种集成测试代码生成方法及装置 - Google Patents
一种集成测试代码生成方法及装置 Download PDFInfo
- Publication number
- CN108241573A CN108241573A CN201611213284.8A CN201611213284A CN108241573A CN 108241573 A CN108241573 A CN 108241573A CN 201611213284 A CN201611213284 A CN 201611213284A CN 108241573 A CN108241573 A CN 108241573A
- Authority
- CN
- China
- Prior art keywords
- integration testing
- result
- code
- transfer protocol
- hypertext transfer
- 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
-
- 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
本发明公开了一种集成测试代码生成方法及装置,包括:获取用于生成所述集成测试代码的编程语言,并通过所述编程语言下用于进行集成测试的测试类生成原始测试代码;获取为插件编写的超文本传输协议请求以及所述超文本传输协议请求对应的第一返回结果,所述第一返回结果是所述超文本传输协议请求被应用程序编程接口执行后,所述应用程序编程接口返回的执行结果;根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码,实现根据插件的测试代码自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
Description
技术领域
本发明涉及软件测试技术领域,更具体的,尤其涉及一种集成测试代码生成方法及装置。
背景技术
在开发应用程序编程接口(API,Application Programming Interface)过程中需要对API进行调用测试,目前对API进行调用测试的方式是:使用浏览器的插件对API进行调用测试,具体的,考虑请求参数的各种情况为插件编写不同的超文本传输协议(HTTP,HyperText Transfer Protocol)请求,并将HTTP请求发送到API,查询API的返回结果是否符合预期要求,如果是,则说明API的返回结果正确,完成对API的调用测试。但是在调用测试结束后还需要为API编写集成测试代码,而目前集成测试代码都是由开发人员或者测试人员手工编写。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的集成测试代码生成方法及装置,以根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。具体的,技术方案如下:
本发明提供一种集成测试代码生成方法,所述方法包括:
获取用于生成所述集成测试代码的编程语言,并通过所述编程语言下用于进行集成测试的测试类生成原始测试代码;
获取为插件编写的超文本传输协议请求以及所述超文本传输协议请求对应的第一返回结果,所述第一返回结果是所述超文本传输协议请求被应用程序编程接口执行后,所述应用程序编程接口返回的执行结果;
根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码。
优选的,所述根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,包括:
将所述第一返回结果作为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中;
将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议请求相关的类中。
优选的,所述将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议相关的类中,包括:
将所述超文本传输协议请求中的统一资源定位符和所述超文本传输协议请求的请求头添加到与所述超文本传输协议请求相关的类所对应的属性下;
将与所述超文本传输协议请求相关的类的响应标头设置为所述集成测试预期结果指定的类型。
优选的,所述将所述第一返回结果转换为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中,包括:
在所述原始测试代码中定义变量;
根据所述集成测试预期结果指定的类型,将所述第一返回结果保存在所述原始测试代码定义的变量中,以在运行所述集成测试代码时通过所述变量返回所述集成测试预期结果。
优选的,所述方法还包括:
运行所述集成测试代码,以对所述应用程序编程接口进行集成测试,并获得所述应用程序编程接口执行所述集成测试代码的超文本传输协议请求得到的第二返回结果;
当所述第二返回结果中的每项测试结果均与所述集成测试预期结果中对应的测试结果一致时,判断所述集成测试成功;
当所述第二返回结果中的任一项测试结果与所述集成测试预期结果中对应的测试结果不一致时,判断所述集成测试失败。
优选的,在根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改之前,所述方法还包括:
判断所述第一返回结果中的各项测试结果是否符合预期要求;
如果是,则执行根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码的步骤。
本发明还提供一种集成测试代码生成装置,所述装置包括:
第一获取单元,用于获取用于生成所述集成测试代码的编程语言;
生成单元,用于通过所述编程语言下用于进行集成测试的测试类生成原始测试代码;
第二获取单元,用于获取为插件编写的超文本传输协议请求以及所述超文本传输协议请求对应的第一返回结果,所述第一返回结果是所述超文本传输协议请求被应用程序编程接口执行后,所述应用程序编程接口返回的执行结果;
修改单元,用于根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码。
优选的,所述修改单元,包括:
第一修改子单元,用于将所述第一返回结果作为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中;
第二修改子单元,用于将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议请求相关的类中。
优选的,所述第二修改子单元,用于将所述超文本传输协议请求中的统一资源定位符和所述超文本传输协议请求的请求头添加到与所述超文本传输协议请求相关的类所对应的属性下;将与所述超文本传输协议请求相关的类的响应标头设置为所述集成测试预期结果指定的类型。
优选的,所述第一修改子单元,用于在所述原始测试代码中定义变量;根据所述集成测试预期结果指定的类型,将所述第一返回结果保存在所述原始测试代码定义的变量中,以在运行所述集成测试代码时通过所述变量返回所述集成测试预期结果。
优选的,所述装置还包括:运行单元,用于运行所述集成测试代码,以对所述应用程序编程接口进行集成测试,并获得所述应用程序编程接口执行所述集成测试代码的超文本传输协议请求得到的第二返回结果;
判断单元,用于当所述第二返回结果中的每项测试结果均与所述集成测试预期结果中对应的测试结果一致时,判断所述集成测试成功,以及用于当所述第二返回结果中的任一项测试结果与所述集成测试预期结果中对应的测试结果不一致时,判断所述集成测试失败。
优选的,所述装置还包括:结果判断单元,用于判断所述第一返回结果中的各项测试结果是否符合预期要求,如果是,则触发所述修改单元。
藉由上述技术方案,在获取用于生成集成测试代码的编程语言后,通过编程语言下用于进行集成测试的测试类生成原始测试代码,获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,实现根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本公开提供的集成测试代码生成方法的一种流程图
图2示出了本公开提供的插件界面的示意图;
图3示出了本公开提供的得到集成测试代码的示意图;
图4示出了本公开提供的集成测试代码生成方法的另一种流程图;
图5示出了本公开提供的发送HTTP请求和获得第二返回结果的示意图;
图6示出了本公开提供的集成测试代码生成装置的一种结构示意图;
图7示出了本公开提供的集成测试代码生成装置的另一种结构示意图。
具体实施方式
发明人经过多次实践发现:插件测试和集成测试均用来测试API的功能是否正确,因此既然已经使用插件来对API进行调用测试,且为插件编写HTTP请求,为此本公开的示例性实施例提供的集成测试代码生成方法的思想是:根据为插件编写的HTTP请求和第一返回结果来自动得到集成测试代码,以此提高对插件的测试代码的利用率,并且可以省去手动编写集成测试代码环节,降低手动编写工作量,其中第一返回结果是HTTP请求被API执行后API返回的执行结果。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,其示出了本公开的示例性实施例提供的集成测试代码生成方法的一种流程图,用于根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,以提高插件的测试代码的利用率和降低手动编写工作量。具体的,图1所示集成测试代码生成方法可以包括以下步骤:
101:获取用于生成集成测试代码的编程语言,并通过编程语言下用于进行集成测试的测试类生成原始测试代码。可以理解的是:编程语言是当前对API进行集成测试时选取的语言,对于每个编程语言来说,会为使用编程语言的编程人员提供一些基础类,如进行集成测试的测试类,这样在为API进行集成测试时就可以选取对应的测试类,所选取的测试类会生成集成测试的测试框架,该测试框架则是所述原始测试代码。
102:获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,其中第一返回结果是为插件编写的HTTP请求被API执行后API返回的执行结果。
在本公开的示例性实施例中,若希望得到集成测试代码,则可以在插件界面上添加“生成集成测试代码”按钮,且“生成集成测试代码”按钮绑定有自动转换请求。在“生成集成测试代码”按钮被触发后,自动转换请求被发送,此时则可以从插件界面中获取为插件编写的HTTP请求中的信息以及第一返回结果,其中HTTP请求中的信息包括:URL(UniformResource Locator,统一资源定位符)和HTTP请求的请求头,如图2所示插件界面。
在自动转换请求被发送后,可以为将要生成的集成测试代码进行命名,可选的,根据“目标函数_输入参数_预期输出参数”的规则命名。比如,测试登录接口函数Login,输入是name=xx,pwd=xx,如果输入的用户名密码错误则返回错误状态码400,此时集成测试代码就可以命名为Login_ParamWrong_400。
103:根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码。
可选的,根据HTTP请求和第一返回结果,对原始测试代码进行修改的可行方式是:将第一返回结果作为集成测试预期结果,并将集成测试预期结果写入原始测试代码中;将HTTP请求中的信息设置到原始测试代码中与HTTP请求相关的类中。
其中,集成测试预期结果是API在执行集成测试代码时,需要达到的预期结果。在本公开的示例性实施例中,为将第一返回结果作为集成测试预期结果,并将集成测试预期结果写入原始测试代码中,其可行方式如下:
在原始测试代码中定义变量,根据集成测试预期结果指定的类型,将第一返回结果保存在原始测试代码定义的变量中,以在运行集成测试代码时通过变量返回集成测试预期结果。
以C#中HTTP相关的类——HttpClient类作为HTTP请求的载体为例,http方法用来向API发送HTTP请求,并以返回json(JavaScript Object Notation,JavaScript对象表示法)字符串作为http方法的返回结果,因此集成测试预期结果指定的类型可以是json字符串类型,这样就可以将第一返回结果以json字符串类型的形式保存在原始测试代码定义的变量中。
相应的,将HTTP请求中的信息设置到原始测试代码中与HTTP相关的类中的可行方式是:将HTTP请求中的URL和HTTP请求的请求头添加到与HTTP请求相关的类所对应的属性下;将与HTTP请求相关的类的响应标头设置为集成测试预期结果指定的类型。
仍以上述编程语言C#为例,C#中HTTP相关的类——HttpClient类作为HTTP请求的载体,将URL作为HttpClient类对象的BaseAddress属性;将请求头添加到DefaultRequestHeaders属性中,并将请求相关的类的响应标头设置为集成测试预期结果指定的类型,如上述json字符串类型(这样能保证HTTP请求被API执行后返回的是json格式的结果),如图3所示;在图3中//http至string exceptJosn之间是实现根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,相对应的“exceptJosn”的类型为json字符串类型,作为返回集成测试预期结果的变量。而在图3中位于stringexceptJosn之后的程序代码则是对API发送HTTP请求来进行集成测试。
在这里需要说明的一点是:第一返回结果是API测试API的功能是否正确时,API返回的执行结果,因此在根据HTTP请求和第一返回结果,对原始测试代码进行修改之前,需要对第一返回结果中的各项测试结果进行判断,以确定第一返回结果中的各项测试结果是否符合预期要求,如果是,则执行根据HTTP请求和第一返回结果,对原始测试代码进行修改的步骤,其中预期要求是指示API的功能正确时对API做出的各项要求,对于每个API来说,可以在设计API时为其设置预期要求。
从上述技术方案可知,本公开的示例性实施例提供的集成测试代码生成方法在获取用于生成集成测试代码的编程语言后,通过编程语言下用于进行集成测试的测试类生成原始测试代码,获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,实现根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
请参阅图4,其示出了本公开的示例性实施例提供的集成测试代码生成方法的另一种流程图,可以包括以下步骤:
401:获取用于生成集成测试代码的编程语言,并通过编程语言下用于进行集成测试的测试类生成原始测试代码。
402:获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,其中第一返回结果是为插件编写的HTTP请求被API执行后API返回的执行结果。
403:根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码。
在本公开的示例性实施例中,步骤401至步骤403的执行过程:与上述步骤101至步骤103的执行过程相同,对此本公开的示例性实施例不再阐述。
404:运行集成测试代码,以对API进行集成测试,并获取API执行集成测试代码的HTTP请求得到的第二返回结果。
在得到集成测试代码后,集成测试代码中包括用于向API发送HTTP请求的函数,如以上述HttpClient类中的httpclient.GetAsync()函数来发送集成测试代码的HTTP请求,并可以通过对应函数来获得第二返回结果,如图5所示。
405:当第二返回结果中的每项测试结果均与集成测试预期结果中对应的测试结果一致时,判断集成测试成功。
406:当第二返回结果中的任一项测试结果与集成测试预期结果中对应的测试结果不一致时,判断集成测试失败。
可以理解的是:对API的集成测试来说,一般都会有相应的框架,而相应的框架中会提供断言函数来生成断言,以指示第二返回结果中的每个项测试结果与集成测试预期结果中对应测试结果是否相同,如果相同,则第二返回结果中的每个项测试结果均与集成测试预期结果中对应测试结果一致,说明得到的集成测试代码符合预期要求,集成测试成功,进而说明集成测试代码和包括集成测试代码的程序主代码正确;如果不一致,说明集成测试代码不符合预期要求,集成测试失败,进而可以获知集成测试代码和/或包括集成测试代码的程序主代码中存在问题,此时则需要发送提示信息,以指示代码有误,需要发送提示信息,以指示代码可能存在的问题,这样编程人员可以根据提示信息对集成测试代码和/或包括集成测试代码的程序主代码进行检测,以得到正确的代码。
请参阅图6,其示出了本公开的示例性实施例提供的集成测试代码生成装置的一种结构,可以包括:第一获取单元11、生成单元12、第二获取单元13和修改单元14。
第一获取单元11,用于获取用于生成集成测试代码的编程语言。
生成单元12,用于通过编程语言下用于进行集成测试的测试类生成原始测试代码。
可以理解的是:编程语言是当前对API进行集成测试时选取的语言,对于每个编程语言来说,会为使用编程语言的编程人员提供一些基础类,如进行集成测试的测试类,这样在为API进行集成测试时就可以选取对应的测试类,所选取的测试类会生成集成测试的测试框架,该测试框架则是所述原始测试代码。
第二获取单元13,用于获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,第一返回结果是HTTP请求被API执行后,API返回的执行结果。
在本公开的示例性实施例中,若希望得到集成测试代码,则可以在插件界面上添加“生成集成测试代码”按钮,且“生成集成测试代码”按钮绑定有自动转换请求。在“生成集成测试代码”按钮被触发后,自动转换请求被发送,此时则可以从插件界面中获取为插件编写的HTTP请求中的信息以及第一返回结果,其中HTTP请求中的信息包括:URL和HTTP请求的请求头,如图2所示插件界面。
在自动转换请求被发送后,可以为将要生成的集成测试代码进行命名,可选的,根据“目标函数_输入参数_预期输出参数”的规则命名。比如,测试登录接口函数Login,输入是name=xx,pwd=xx,如果输入的用户名密码错误则返回错误状态码400,此时集成测试代码就可以命名为Login_ParamWrong_400。
修改单元14,用于根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码。
可选的,修改单元14,包括:第一修改子单元和第二修改子单元,其中第一修改子单元,用于将第一返回结果作为集成测试预期结果,并将集成测试预期结果写入原始测试代码中。第二修改子单元,用于将HTTP请求中的信息设置到原始测试代码中与HTTP请求相关的类中。
其中,集成测试预期结果是API在执行集成测试代码时,需要达到的预期结果。在本公开的示例性实施例中,为将第一返回结果作为集成测试预期结果,并将集成测试预期结果写入原始测试代码中,第一修改子单元具体用于在原始测试代码中定义变量,根据集成测试预期结果指定的类型,将第一返回结果保存在原始测试代码定义的变量中,以在运行集成测试代码时通过变量返回集成测试预期结果。
以C#中HTTP相关的类——HttpClient类作为HTTP请求的载体为例,http方法用来向API发送HTTP请求,并以返回json(JavaScript Object Notation,JavaScript对象表示法)字符串作为http方法的返回结果,因此集成测试预期结果指定的类型可以是json字符串类型,这样就可以将第一返回结果以json字符串类型的形式保存在原始测试代码定义的变量中。
相应的,第二修改子单元将HTTP请求中的信息设置到原始测试代码中与HTTP相关的类中的可行方式是:将HTTP请求中的URL和HTTP请求的请求头添加到与HTTP请求相关的类所对应的属性下;将与HTTP请求相关的类的响应标头设置为集成测试预期结果指定的类型。
仍以上述编程语言C#为例,C#中HTTP相关的类——HttpClient类作为HTTP请求的载体,将URL作为HttpClient类对象的BaseAddress属性;将请求头添加到DefaultRequestHeaders属性中,并将请求相关的类的响应标头设置为集成测试预期结果指定的类型,如上述json字符串类型(这样能保证HTTP请求被API执行后返回的是json格式的结果),如图3所示;在图3中//http至string exceptJosn之间是实现根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,相对应的“exceptJosn”的类型为json字符串类型,作为返回集成测试预期结果的变量。而在图3中位于stringexceptJosn之后的程序代码则是对API发送HTTP请求来进行集成测试。
在这里需要说明的一点是:第一返回结果是API测试API的功能是否正确时,API返回的执行结果,因此本公开的示例性实施例提供的集成测试代码生成装置还包括结果判断单元,用于对第一返回结果中的各项测试结果进行判断,以确定第一返回结果中的各项测试结果是否符合预期要求,如果是,则触发修改单元14执行根据HTTP请求和第一返回结果,对原始测试代码进行修改的步骤,其中预期要求是指示API的功能正确时对API做出的各项要求,对于每个API来说,可以在设计API时为其设置预期要求。
从上述技术方案可知,本公开的示例性实施例提供的集成测试代码生成装置在获取用于生成集成测试代码的编程语言后,通过编程语言下用于进行集成测试的测试类生成原始测试代码,获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,实现根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
请参阅图7,其示出了本公开的示例性实施例提供的集成测试代码生成装置的另一种结构,还可以包括:运行单元15和判断单元16。
运行单元15,用于运行集成测试代码,以对API进行集成测试,并获得API执行集成测试代码的HTTP请求得到的第二返回结果。
判断单元16,用于当第二返回结果中的每项测试结果均与集成测试预期结果中对应的测试结果一致时,判断集成测试成功,以及用于当第二返回结果中的任一项测试结果与集成测试预期结果中对应的测试结果不一致时,判断集成测试失败。
可以理解的是:对API的集成测试来说,一般都会有相应的框架,而相应的框架中会提供断言函数来生成断言,以指示第二返回结果中的每个项测试结果与集成测试预期结果中对应测试结果是否相同,如果相同,则第二返回结果中的每个项测试结果均与集成测试预期结果中对应测试结果一致,说明得到的集成测试代码符合预期要求,集成测试成功,进而说明集成测试代码和包括集成测试代码的程序主代码正确;如果不一致,说明集成测试代码不符合预期要求,集成测试失败,进而可以获知集成测试代码和/或包括集成测试代码的程序主代码中存在问题,此时则需要发送提示信息,以指示代码有误,需要发送提示信息,以指示代码可能存在的问题,这样编程人员可以根据提示信息对集成测试代码和/或包括集成测试代码的程序主代码进行检测,以得到正确的代码。
此外,在本公开的示例性实施例中,所述集成测试代码生成装置包括处理器和存储器,上述第一获取单元11、生成单元12、第二获取单元13、修改单元14、运行单元15和判断单元16等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
应用上述集成测试代码生成装置,在获取用于生成集成测试代码的编程语言后,通过编程语言下用于进行集成测试的测试类生成原始测试代码,获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码,实现根据插件的测试代码(如HTTP请求和第一返回结果)自动得到集成测试代码,提高插件的测试代码的利用率,并省去手动编写集成测试代码环节,降低手动编写工作量。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:
获取用于生成集成测试代码的编程语言,并通过编程语言下用于进行集成测试的测试类生成原始测试代码;
获取为插件编写的HTTP请求以及HTTP请求对应的第一返回结果,第一返回结果是HTTP请求被API执行后,API返回的执行结果;
根据HTTP请求和第一返回结果,对原始测试代码进行修改,以得到集成测试代码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种集成测试代码生成方法,其特征在于,所述方法包括:
获取用于生成所述集成测试代码的编程语言,并通过所述编程语言下用于进行集成测试的测试类生成原始测试代码;
获取为插件编写的超文本传输协议请求以及所述超文本传输协议请求对应的第一返回结果,所述第一返回结果是所述超文本传输协议请求被应用程序编程接口执行后,所述应用程序编程接口返回的执行结果;
根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,包括:
将所述第一返回结果作为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中;
将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议请求相关的类中。
3.根据权利要求2所述的方法,其特征在于,所述将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议相关的类中,包括:
将所述超文本传输协议请求中的统一资源定位符和所述超文本传输协议请求的请求头添加到与所述超文本传输协议请求相关的类所对应的属性下;
将与所述超文本传输协议请求相关的类的响应标头设置为所述集成测试预期结果指定的类型。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述第一返回结果转换为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中,包括:
在所述原始测试代码中定义变量;
根据所述集成测试预期结果指定的类型,将所述第一返回结果保存在所述原始测试代码定义的变量中,以在运行所述集成测试代码时通过所述变量返回所述集成测试预期结果。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
运行所述集成测试代码,以对所述应用程序编程接口进行集成测试,并获得所述应用程序编程接口执行所述集成测试代码的超文本传输协议请求得到的第二返回结果;
当所述第二返回结果中的每项测试结果均与所述集成测试预期结果中对应的测试结果一致时,判断所述集成测试成功;
当所述第二返回结果中的任一项测试结果与所述集成测试预期结果中对应的测试结果不一致时,判断所述集成测试失败。
6.根据权利要求1所述的方法,其特征在于,在根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改之前,所述方法还包括:
判断所述第一返回结果中的各项测试结果是否符合预期要求;
如果是,则执行根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码的步骤。
7.一种集成测试代码生成装置,其特征在于,所述装置包括:
第一获取单元,用于获取用于生成所述集成测试代码的编程语言;
生成单元,用于通过所述编程语言下用于进行集成测试的测试类生成原始测试代码;
第二获取单元,用于获取为插件编写的超文本传输协议请求以及所述超文本传输协议请求对应的第一返回结果,所述第一返回结果是所述超文本传输协议请求被应用程序编程接口执行后,所述应用程序编程接口返回的执行结果;
修改单元,用于根据所述超文本传输协议请求和所述第一返回结果,对所述原始测试代码进行修改,以得到所述集成测试代码。
8.根据权利要求7所述的装置,其特征在于,所述修改单元,包括:
第一修改子单元,用于将所述第一返回结果作为集成测试预期结果,并将所述集成测试预期结果写入所述原始测试代码中;
第二修改子单元,用于将所述超文本传输协议请求中的信息设置到所述原始测试代码中与所述超文本传输协议请求相关的类中。
9.根据权利要求8所述的装置,其特征在于,所述第二修改子单元,用于将所述超文本传输协议请求中的统一资源定位符和所述超文本传输协议请求的请求头添加到与所述超文本传输协议请求相关的类所对应的属性下;将与所述超文本传输协议请求相关的类的响应标头设置为所述集成测试预期结果指定的类型。
10.根据权利要求8或9所述的装置,其特征在于,所述第一修改子单元,用于在所述原始测试代码中定义变量;根据所述集成测试预期结果指定的类型,将所述第一返回结果保存在所述原始测试代码定义的变量中,以在运行所述集成测试代码时通过所述变量返回所述集成测试预期结果。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:运行单元,用于运行所述集成测试代码,以对所述应用程序编程接口进行集成测试,并获得所述应用程序编程接口执行所述集成测试代码的超文本传输协议请求得到的第二返回结果;
判断单元,用于当所述第二返回结果中的每项测试结果均与所述集成测试预期结果中对应的测试结果一致时,判断所述集成测试成功,以及用于当所述第二返回结果中的任一项测试结果与所述集成测试预期结果中对应的测试结果不一致时,判断所述集成测试失败。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:结果判断单元,用于判断所述第一返回结果中的各项测试结果是否符合预期要求,如果是,则触发所述修改单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611213284.8A CN108241573B (zh) | 2016-12-23 | 2016-12-23 | 一种集成测试代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611213284.8A CN108241573B (zh) | 2016-12-23 | 2016-12-23 | 一种集成测试代码生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241573A true CN108241573A (zh) | 2018-07-03 |
CN108241573B CN108241573B (zh) | 2021-06-29 |
Family
ID=62704495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611213284.8A Active CN108241573B (zh) | 2016-12-23 | 2016-12-23 | 一种集成测试代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241573B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124748A (zh) * | 2021-10-15 | 2022-03-01 | 青岛海尔科技有限公司 | 一种基于idea平台的超文本传输协议接口调试工具及方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
CN101937439A (zh) * | 2009-06-30 | 2011-01-05 | 国际商业机器公司 | 用于收集用户访问相关信息的方法和系统 |
CN102591777A (zh) * | 2012-01-10 | 2012-07-18 | 深圳市同洲视讯传媒有限公司 | 一种单元测试代码生成方法及装置 |
CN103312551A (zh) * | 2012-03-12 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 通用网关接口的测试方法及测试装置 |
CN103428249A (zh) * | 2012-05-23 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种http请求包的收集及处理方法、系统和服务器 |
US20140157242A1 (en) * | 2012-12-05 | 2014-06-05 | The Mathworks, Inc. | Deferred evaluation and presentation of a custom diagnostic analysis |
CN103885878A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种生成浏览器测试脚本的方法及装置 |
CN104298588A (zh) * | 2013-07-16 | 2015-01-21 | 阿里巴巴集团控股有限公司 | 一种持续集成的实现方法及装置 |
CN104536744A (zh) * | 2014-12-19 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种自动化构建与部署代码的方法及服务器 |
CN104572463A (zh) * | 2014-12-31 | 2015-04-29 | 广州酷狗计算机科技有限公司 | 测试接口信息的方法及装置 |
CN104615534A (zh) * | 2015-01-28 | 2015-05-13 | 广州酷狗计算机科技有限公司 | 接口测试方法和装置 |
US20160147633A1 (en) * | 2014-11-20 | 2016-05-26 | Fujitsu Limited | Generation of software test code |
CN105975396A (zh) * | 2016-06-28 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种自动化测试用例生成方法与系统 |
-
2016
- 2016-12-23 CN CN201611213284.8A patent/CN108241573B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241467A (zh) * | 2008-03-05 | 2008-08-13 | 罗笑南 | 一种面向Web应用的自动化白盒测试系统及方法 |
CN101937439A (zh) * | 2009-06-30 | 2011-01-05 | 国际商业机器公司 | 用于收集用户访问相关信息的方法和系统 |
CN102591777A (zh) * | 2012-01-10 | 2012-07-18 | 深圳市同洲视讯传媒有限公司 | 一种单元测试代码生成方法及装置 |
CN103312551A (zh) * | 2012-03-12 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 通用网关接口的测试方法及测试装置 |
CN103428249A (zh) * | 2012-05-23 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 一种http请求包的收集及处理方法、系统和服务器 |
US20140157242A1 (en) * | 2012-12-05 | 2014-06-05 | The Mathworks, Inc. | Deferred evaluation and presentation of a custom diagnostic analysis |
CN104298588A (zh) * | 2013-07-16 | 2015-01-21 | 阿里巴巴集团控股有限公司 | 一种持续集成的实现方法及装置 |
CN103885878A (zh) * | 2014-03-10 | 2014-06-25 | 烟台中科网络技术研究所 | 一种生成浏览器测试脚本的方法及装置 |
US20160147633A1 (en) * | 2014-11-20 | 2016-05-26 | Fujitsu Limited | Generation of software test code |
CN104536744A (zh) * | 2014-12-19 | 2015-04-22 | 微梦创科网络科技(中国)有限公司 | 一种自动化构建与部署代码的方法及服务器 |
CN104572463A (zh) * | 2014-12-31 | 2015-04-29 | 广州酷狗计算机科技有限公司 | 测试接口信息的方法及装置 |
CN104615534A (zh) * | 2015-01-28 | 2015-05-13 | 广州酷狗计算机科技有限公司 | 接口测试方法和装置 |
CN105975396A (zh) * | 2016-06-28 | 2016-09-28 | 腾讯科技(深圳)有限公司 | 一种自动化测试用例生成方法与系统 |
Non-Patent Citations (4)
Title |
---|
JUNNO TANTRA PRATAMA WIBOWO: "Unit test code generator for lua programming language", 《2015 INTERNATIONAL CONFERENCE ON DATA AND SOFTWARE ENGINEERING (ICODSE)》 * |
佚名: "postman进行http接口测试", 《HTTPS://BLOG.CSDN.NET/FIVE3/ARTICLE/DETAILS/53021084》 * |
谢冰: "一种基于面向对象测试模型的测试代码生成方法与工具", 《计算机研究与发展 软件、网络与安全》 * |
贾长伟: "基于CppUnit的虚拟试验单元测试研究", 《计算机测量与控制 自动化测试技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114124748A (zh) * | 2021-10-15 | 2022-03-01 | 青岛海尔科技有限公司 | 一种基于idea平台的超文本传输协议接口调试工具及方法 |
CN114124748B (zh) * | 2021-10-15 | 2024-04-19 | 青岛海尔科技有限公司 | 基于idea平台的超文本传输协议接口调试装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108241573B (zh) | 2021-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227221B2 (en) | Framework management method and apparatus | |
CN106484383B (zh) | 页面渲染方法、装置及设备 | |
CN107480039B (zh) | 一种分布式存储系统的小文件读写性能测试方法及装置 | |
CN108156022A (zh) | 一种服务调用方法、装置及电子设备 | |
CN106874174B (zh) | 接口测试及功能测试的实现方法和装置 | |
Hallé et al. | Runtime Verification of Web Service Interface Contracts. | |
CN107957957A (zh) | 测试用例的获取方法和装置 | |
CN104298588B (zh) | 一种持续集成的实现方法及装置 | |
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
CN106648556B (zh) | 前后端集成开发测试的方法及装置 | |
CN108509339A (zh) | 基于浏览器和思维导图的测试用例生成方法、装置及设备 | |
CN107656759A (zh) | 一种用于用户界面的渲染方法和装置 | |
CN109460546A (zh) | 表单生成方法、装置及电子设备 | |
CN109145231A (zh) | 一种界面元素标识符的生成方法、装置以及电子设备 | |
CN105915529A (zh) | 一种报文生成方法及装置 | |
CN109948074A (zh) | 网站数据对接方法、装置、存储介质、处理器及电子设备 | |
CN109495336A (zh) | 网络异常测试方法及装置、计算机设备及可读介质 | |
CN106201865A (zh) | 一种应用程序编程接口api测试方法、装置及终端设备 | |
CN111767229A (zh) | 性能测试方法、装置和设备 | |
CN116069577A (zh) | 一种rpc服务的接口测试方法、设备及介质 | |
CN106033390A (zh) | 一种邮件样式测试方法和装置 | |
KR20150133902A (ko) | 소프트웨어 제품 라인에 기반한 서비스 개발 시스템 및 방법 | |
CN108241573A (zh) | 一种集成测试代码生成方法及装置 | |
CN109584091B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |