本申请涉及代码处理技术领域,特别是涉及一种测试用例的用例代码生成方法、装置、计算机设备和存储介质。
背景技术:
目前应用程序的测试阶段,一般包含功能测试和回归测试。传统的测试方式为:先实现前端应用程序的功能测试,再编写自动化测试用例的用例代码,通过回放自动化测试用例的用例代码的方式进行回归测试。在传统的应用程序的测试中,功能测试和编写自动化测试用例的用例代码分属于两个阶段,编写自动化测试用例的用例代码需要耗费时间,因此导致应用程序的测试效率低。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种缩短自动化测试用例的用例代码的生成时间以提高应用程序的测试效率的测试用例的用例代码生成方法、装置、计算机设备和存储介质。
一种测试用例的用例代码生成方法,该方法包括:获取测试应用发送的第一网络请求中的第一请求参数;获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息;获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置;根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
在其中一个实施例中,根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码,包括:获取第一请求参数的第一路径信息,第一路径信息用于指示第一请求参数的存储地址;获取接口响应信息的第二路径信息,第二路径信息用于指示接口响应信息的存储地址;获取网络请求响应信息的第三路径信息,第三路径信息用于指示网络请求响应信息的存储地址;根据第一路径信息将已获取的第一请求参数填入第一位置,根据第二路径信息将已获取的接口响应信息填入第二位置,根据第三路径信息将已获取的网络请求响应信息填入第三位置,根据信息填入后的第一代码模板生成第一测试用例的用例代码。
在其中一个实施例中,一种测试用例的用例代码生成方法还包括:接收测试应用发送的第一网络请求,从第一网络请求中获取service方法的值和method方法的值;根据service方法的值和method方法的值通过反射机制获得第一网络请求的中间请求;向服务端发送中间请求,以使得服务端反馈第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在其中一个实施例中,接收测试应用发送的第一网络请求,包括:接收mock服务器发送第一网络请求,mock服务器用于接收测试应用发送的第一网络请求并对第一网络请求进行转发;向服务端发送中间请求之后,还包括:接收服务端反馈的第一网络请求的网络请求响应信息;向mock服务器发送网络请求响应信息,以使得mock服务器向测试应用发送网络请求响应信息。
在其中一个实施例中,一种测试用例的用例代码生成方法还包括:获取测试应用发送的第二网络请求;若第二网络请求的第二请求参数与第一网路请求的第一请求参数相同,获取服务端反馈的第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息相同且第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息相同时,判定第二网络请求与第一网络请求相同;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息不相同和/或第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息不相同时,获取预先设置的第二网络请求的第二代码模板,根据第二代码模板、第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码。
在其中一个实施例中,一种测试用例的用例代码生成方法还包括:生成第一测试用例的第一时间戳以及第二测试用例的第二时间戳;根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序,排序后得到测试应用的自动化测试用例。
在其中一个实施例中,一种测试用例的用例代码生成方法还包括:生成测试应用的测试用例的类文件;在类文件中生成监听器,监听器用于监听测试应用发送的网络请求;当通过监听器监听到测试应用发送的第一网络请求时,执行获取测试应用发送的第一网络请求中的第一请求参数的步骤。
一种测试用例的用例代码生成装置,该装置包括:第一获取模块,用于获取测试应用发送的第一网络请求中的第一请求参数;第二获取模块,用于获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息;识别模块,用于获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置;生成模块,用于根据第一代码模板、第一位置、第二位置、第三位置以及、第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述测试用例的用例代码生成方法、装置、计算机设备和存储介质,测试用例生成设备获取测试应用发送的第一网络请求中的第一请求参数、第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息,还获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置,最终根据第一代码模板、第一位置、第二位置以及第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。因此,在对测试应用执行功能测试时,可以直接获取功能测试阶段测试应用发送的第一网络请求的第一请求参数、服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息,结合预设的第一代码模板直接生成对应的第一测试用例的用例代码,无需等待功能测试结束后再编写自动化测试的测试用例的用例代码即可在功能测试阶段自动化生成自动化测试对应的用例代码,缩短自动化测试用例的用例代码的生成时间,提高应用程序的测试效率。
附图说明
图1为一个实施例中一种测试用例的用例代码生成方法的应用环境图;
图2为一个实施例中一种测试用例的用例代码生成方法的流程示意图;
图3为一个实施例中一种测试用例的用例代码生成方法的数据流程图;
图4为一个实施例中localmock服务器中编写的接口代码的显示示意图;
图5为一个实施例中执行反射机制的方法的代码的显示示意图;
图6为一个实施例中录制第一网络请求、第一网络请求的接口响应信息和第一网络请求的网络请求响应信息的流量的代码的显示示意图;
图7为一个实施例中生成的自动化测试用例的用例代码的显示示意图;
图8为一个实施例中测试用例的基类文件实现添加监听器的代码的显示示意图;
图9为一个实施例中一种测试用例的用例代码生成装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种测试用例的用例代码生成方法,应用于如图1所示的应用环境中。终端102中安装测试应用。在执行应用程序的功能测试时,测试应用通过中间服务104向远程的服务端106发送第一网络请求。服务端106将第一网络请求转发到对应接口,以得到第一网络请求的接口响应信息。此外,服务端106还获取第一网络请求的网络请求响应信息。服务端106将接口响应信息和网络请求响应信息反馈到中间服务104。中间服务104将网络请求响应信息反馈到终端102的测试应用。因此,完成了测试应用的功能测试。本申请设置测试用例生成设备108,用于执行本申请的一种测试用例的用例代码生成方法。
测试用例生成设备108从中间服务104中获取测试应用发送的第一网络请求中的第一请求参数、第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。从测试用例生成设备108本地中获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置,最终根据第一代码模板、第一位置、第二位置以及第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。因此,在对测试应用执行功能测试时,测试用例生成设备108可以直接获取功能测试阶段测试应用发送的第一网络请求的第一请求参数、服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息,结合预设的第一代码模板直接生成对应的第一测试用例的用例代码,无需等待功能测试结束后再编写自动化测试的测试用例的用例代码即可在功能测试阶段自动化生成自动化测试对应的用例代码,缩短自动化测试用例的用例代码的生成时间,提高应用程序的测试效率。
在一个实施例中,如图2所示,提供了一种测试用例的用例代码生成方法,以该方法应用于图1中的测试用例生成设备108为例进行说明,包括以下步骤:
s102,获取测试应用发送的第一网络请求中的第一请求参数。
在本实施例中,应用为应用程序的简称,测试应用指的是执行应用程序测试时的测试对象。对测试应用执行功能测试时,测试应用向远程的服务端发送第一网络请求。第一网络请求中包含第一请求参数,服务端根据第一网络请求中的第一请求参数获取第一网络请求的反馈信息。反馈信息包括接口响应信息和网络请求响应信息。
对测试应用执行功能测试时,测试用例生成设备获取测试应用发送的第一网络请求中的第一请求参数。可以是,中间服务接收测试应用发送的第一网络请求,将第一网络请求转发到远程的服务端。此时,若中间服务中已提取了第一网络请求中的第一请求参数,则测试用例生成设备从中间服务中获取第一请求参数。若中间服务中未提取第一网络请求中的第一请求参数,则测试用例生成设备从中间服务中获取第一网络请求,从第一网络请求中提取第一请求参数。
s104,获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在本实施例中,对测试应用执行功能测试时,服务端响应第一网络请求。服务端将第一网络请求转发到服务端内对应的接口,对应的接口对第一网络请求进行响应,反馈第一网络请求的接口响应信息,具体可以是对应的接口根据第一网络请求中的第一请求参数反馈接口响应信息。此外,服务端获取第一网络请求的网络请求响应信息。可以是,服务端根据对应的接口反馈的接口响应信息确定网络请求响应信息。其中,网络请求响应信息用于反馈到测试应用,以使得测试应用将网络请求响应信息展示到终端界面。接口响应信息用于表征服务端内对应接口的信息响应情况。一般情况下,接口响应信息不用于反馈到测试应用。在执行后续的回归测试时,不仅需要根据第一网络请求的第一请求参数模拟第一网络请求以及服务端反馈的网络请求响应信息,还需要模拟服务端内对应接口反馈的接口响应信息。因此,测试用例生成设备获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在一实现方式中,中间服务用于向服务端转发第一网络请求,同时将服务端反馈第一网络请求的网络请求响应信息反馈到测试应用。此外,中间服务将服务端反馈的第一网络请求的接口响应信息进行存储。测试用例生成设备从中间服务中获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
s106,获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置。
在本实施例中,测试用例生成设备获取预先设置的第一网络请求的第一测试用例的第一代码模板。可以是,通过外部终端配置第一测试用例的第一代码模板,并将配置的第一代码模板发送到测试用例生成设备中进行存储。第一测试用例的第一代码模板中预先设置了第一测试用例的通用代码。通用代码指的是生成任一网络请求对应的测试用例均使用到的代码。例如,测试用例中用于实现网络请求的方法中,除网络请求对应的请求参数以外的代码为通用代码。如main方法中除请求参数以外的其他代码。
测试应用发送不同的网络请求,服务端反馈的接口响应信息以及网络请求响应信息不同。在功能测试时,需要记录下测试应用不同的网络请求的请求参数以及其对应的接口响应信息、网络请求响应信息。根据不同的请求参数以及其对应的接口响应信息、网络请求响应信息编写自动化测试用例,以采用自动化测试用例执行后续的回归测试。第一测试用例的第一代码模板中设置有第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置。第一位置、第二位置和第三位置分别设置有标识信息,通过各标识信息可识别出对应的位置。
s108,根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
在本实施例中,测试用例生成设备获得第一请求参数、接口响应信息、网络请求响应信息之后,根据第一请求参数的第一位置、接口响应信息的第二位置、网络请求响应信息的第三位置信息以及第一代码模板,可生成第一测试用例的用例代码。具体可以是,将第一请求参数填入第一代码模板的第一位置、接口响应信息填入第一代码模板的第二位置、网络请求响应信息填入第一代码模板的第三位置之后,得到第一测试用例的用例代码。
上述测试用例的用例代码生成方法,在对测试应用执行功能测试时,可以直接获取功能测试阶段测试应用发送的第一网络请求的第一请求参数、服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息,结合预设的第一代码模板直接生成对应的第一测试用例的用例代码,无需等待功能测试结束后再编写自动化测试的测试用例的用例代码即可在功能测试阶段自动化生成自动化测试对应的用例代码,缩短自动化测试用例的用例代码的生成时间,提高应用程序的测试效率。
在一实施例中,s108包括:获取第一请求参数的第一路径信息,第一路径信息用于指示第一请求参数的存储地址;获取接口响应信息的第二路径信息,第二路径信息用于指示接口响应信息的存储地址;获取网络请求响应信息的第三路径信息,第三路径信息用于指示网络请求响应信息的存储地址;根据第一路径信息将已获取的第一请求参数填入第一位置,根据第二路径信息将已获取的接口响应信息填入第二位置,根据第三路径信息将已获取的网络请求响应信息填入第三位置,根据信息填入后的第一代码模板生成第一测试用例的用例代码。
在该实施例中,测试用例生成设备将获取到的第一请求参数、接口响应信息以及网络请求响应信息进行存储,并记录第一请求参数的第一路径信息、接口响应信息的第二路径信息以及网络请求响应信息的第三路径信息。在执行生成第一测试用例的用例代码时,测试用例生成设备根据第一路径信息将已获取的第一请求参数填入第一代码模板的第一位置,根据第二路径信息将已获取的接口响应信息填入第一代码模板的第二位置,根据第三路径信息将已获取的网络请求响应信息填入第一代码模板的第三位置。之后,测试用例生成设备根据信息填入后的第一代码模板生成第一测试用例的用例代码。因此,可实现自动化生成第一测试用例的用例代码。
在一实施例中,s102之前还包括:接收测试应用发送的第一网络请求,从第一网络请求中获取service方法的值和method方法的值;根据service方法的值和method方法的值通过反射机制获得第一网络请求的中间请求;向服务端发送中间请求,以使得服务端反馈第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
优选地,接收测试应用发送的第一网络请求,包括:接收mock服务器发送第一网络请求,mock服务器用于接收测试应用发送的第一网络请求并对第一网络请求进行转发。向服务端发送中间请求之后,还包括:接收服务端反馈的第一网络请求的网络请求响应信息;向mock服务器发送网络请求响应信息,以使得mock服务器向测试应用发送网络请求响应信息。
在该实施例中,如图3所示,采用配置的vmock接收测试应用发送的第一网络请求并对第一网络请求进行转发。其中,vmock为基于mcok服务设置的服务器。采用localmcok执行本申请的一种测试用例的用例代码生成方法。其中,localmcok为基于mcok服务设置的服务器。mcok服务:模拟对象的服务。对于某些不容易构造或者不容易获取的比较复杂的对象,用一个虚拟的对象来创建以便进行测试。这里虚拟的对象即为mcok对象。
在localmock服务器中配置和编写需要录制的接口的代码,用于生成响应和请求文件。需要录制的接口包括用于接收第一网络请求的接口和用于接收服务端反馈的接口响应信息以及网络请求响应信息的接口。配置和编写需要录制的接口的代码如图4所示。配置完成后,启动localmock服务器中的录制程序com.qa.vca.recordcasetest里的方法。然后在app端或h5端完成功能测试。当localmock服务器监听到vmock服务器发送的第一网络请求,解析得到第一网络请求的service方法和method方法。获取service方法的值和method方法的值,通过java的反射机制执行本地的方法逻辑,如图5所示。在本地的方法的逻辑里,将vmock的发送的第一网络请求转发到临时远程代理的真实服务,通过临时远程代理可以获取到对应服务端的返回值。其中,服务端可以包括第三方平台的各个系统。临时远程代理通过第三方平台的第三方接口将第一网络请求转发到第三方平台的对应系统的接口中。由对应系统的接口返回第一网络请求的接口响应信息,第三方平台返回第一网络请求的网络请求响应信息。localmock服务器将第一网络请求、第一网络请求的接口响应信息和第一网络请求的网络请求响应信息通过工具类存在在本地,实现流量的录取,如图6所示。此外,localmock服务器向vmock服务器发送网络请求响应信息,以使得vmock服务器向测试应用发送网络请求响应信息。因此,实现了在功能测试过程中第一网络请求、第一网络请求的接口响应信息和第一网络请求的网络请求响应信息的录制,为自动化生成第一测试用例的用例代码提供了数据基础。
在一实施例中,s104之后,还包括:获取测试应用发送的第二网络请求;若第二网络请求的第二请求参数与第一网路请求的第一请求参数相同,获取服务端反馈的第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息相同且第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息相同时,判定第二网络请求与第一网络请求相同;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息不相同和/或第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息不相同时,获取预先设置的第二网络请求的第二代码模板,根据第二代码模板、第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码。
在该实施例中,测试用例生成设备对测试应用发送的网络请求进行去重处理。若测试应用发送的网络请求及其对应的反馈信息相同,则无需对重复的网络请求进行用例代码生成处理。例如,采用localmock服务器对测试应用发送的网络请求及其对应的反馈信息进行流量录制以及用例代码生成处理。测试应用发送的网络请求为http请求时,录制流量开始后,对每一次接收到的http请求都会生成一个用例文件夹。用例文件夹存放在src/resource/record/日期目录下。进一步地,根据算法对http请求进行去重处理。处理的方式为:对比两次接收到的http请求的请求参数,若两次http请求的请求参数不同,则可以判定两次http请求不同,无需做去重处理。若两次http请求的请求参数相同,则需对比两次http请求对应的服务端反馈的信息是否相同。当反馈的信息全都相同时,判定两次http请求相同,对第二次接收到的http请求进行去重处理。若反馈的信息存在不同时,无需对第二次接收到的http请求进行去重处理,获取第二次接收到的http请求的服务端反馈的信息进行对应的用例代码生成处理。因此,在生成测试应用的测试用例的用例代码时,减少重复用例代码的生成,提高了最终生成的测试应用的测试用例的用例代码的准确性。
在一实施例中,根据第二代码模板、第二网络请求的第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码之后,还包括:生成第一测试用例的第一时间戳,以及第二测试用例的第二时间戳;根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序,排序后得到测试应用的自动化测试用例。
在该实施例中,测试用例生成设备根据各测试用例的时间戳对测试用例进行排序,根据排序后的各测试用例得到测试应用的自动化测试用例。各测试用例的时间戳表征了各测试用例之间的场景依赖关系。生成第一测试用例的第一时间戳以及第二测试用例的第二时间戳,第一时间戳和第二时间戳分别表示第一测试用例和第二测试用例在自动化测试用例中各场景之间的依赖关系。根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序得到测试应用的自动化测试用例,使得生成的自动化测试用例能够更加准确地描述功能测试过程各个场景的依赖关系。例如,最终生成的可执行的自动化测试用例中用例代码如图7所示。
在一实施例中,s102之前,还包括:生成测试应用的测试用例的类文件;在类文件中生成监听器,监听器用于监听测试应用发送的网络请求。当通过监听器监听到测试应用发送的第一网络请求时,执行s102步骤。
在该实施例中,测试用例生成设备108中生成测试用例的类文件,再在类文件中添加监听器,用于监听测试应用发送的网络请求。具体地,如图8所示,在测试用例的基类文件里的@beforesuite方法里添加一个vmock服务器的监听器,该监听器有3个待实现的方法,分别为:onstubprepared/onstubnothit/onstubhit。录制第一网络请求以及服务端反馈信息的流量的主要逻辑在onstubhit方法里实现。因此,可实现动态监听功能测试时测试应用发送的网络请求,从而自动化获取测试应用发送的网络请求以及服务端反馈的接口响应信息和网络请求响应信息。
本申请的实施例所述一种测试用例的用例代码生成方法,在执行应用程序的功能测试时能够自动化生成测试用例的用例代码,生成的测试用例的用例代码可快速回归被测项目,减少了编写测试用例代码的时间。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种测试用例的用例代码生成装置,如图9所示,该装置包括第一获取模块10、第二获取模块20、识别模块30以及生成模块40。第一获取模块10,用于获取测试应用发送的第一网络请求中的第一请求参数;第二获取模块20,用于获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息;识别模块30,用于获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置;生成模块40,用于根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
在其中一个实施例中,生成模块40具体用于获取第一请求参数的第一路径信息,第一路径信息用于指示第一请求参数的存储地址;获取接口响应信息的第二路径信息,第二路径信息用于指示接口响应信息的存储地址;获取网络请求响应信息的第三路径信息,第三路径信息用于指示网络请求响应信息的存储地址;根据第一路径信息将已获取的第一请求参数填入第一位置,根据第二路径信息将已获取的接口响应信息填入第二位置,根据第三路径信息将已获取的网络请求响应信息填入第三位置,根据信息填入后的第一代码模板生成第一测试用例的用例代码。
在其中一个实施例中,一种测试用例的用例代码生成装置可以包括代理模块。代理模块用于接收测试应用发送的第一网络请求,从第一网络请求中获取service方法的值和method方法的值;根据service方法的值和method方法的值通过反射机制获得第一网络请求的中间请求;向服务端发送中间请求,以使得服务端反馈第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在其中一个实施例中,接收测试应用发送的第一网络请求,包括:接收mock服务器发送第一网络请求,mock服务器用于接收测试应用发送的第一网络请求并对第一网络请求进行转发。向服务端发送中间请求之后,还包括:接收服务端反馈的第一网络请求的网络请求响应信息;向mock服务器发送网络请求响应信息,以使得mock服务器向测试应用发送网络请求响应信息。
在其中一个实施例中,一种测试用例的用例代码生成装置可以包括处理模块。处理模块用于获取测试应用发送的第二网络请求;若第二网络请求的第二请求参数与第一网路请求的第一请求参数相同,获取服务端反馈的第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息相同且第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息相同时,判定第二网络请求与第一网络请求相同;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息不相同和/或第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息不相同时,获取预先设置的第二网络请求的第二代码模板,根据第二代码模板、第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码。
在其中一个实施例中,一种测试用例的用例代码生成装置可以包括排序模块。排序模块用于生成第一测试用例的第一时间戳以及第二测试用例的第二时间戳;根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序,排序后得到测试应用的自动化测试用例。
在其中一个实施例中,一种测试用例的用例代码生成装置可以包括监听模块。监听模块用于生成测试应用的测试用例的类文件;在类文件中生成监听器,监听器用于监听测试应用发送的网络请求;当通过监听器监听到测试应用发送的第一网络请求时,执行获取测试应用发送的第一网络请求中的第一请求参数的步骤。
关于测试用例的用例代码生成装置的具体限定可以参见上文中对于测试用例的用例代码生成方法的限定,在此不再赘述。上述测试用例的用例代码生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是支持测试用例生成设备运行的服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的设备连接,以获取测试应用发送的第一网络请求的相关信息。该计算机程序被处理器执行时以实现一种测试用例的用例代码生成方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取测试应用发送的第一网络请求中的第一请求参数;获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息;获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置;根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
在其中一个实施例中,处理器执行计算机程序实现上述的根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码步骤时,具体实现以下步骤:获取第一请求参数的第一路径信息,第一路径信息用于指示第一请求参数的存储地址;获取接口响应信息的第二路径信息,第二路径信息用于指示接口响应信息的存储地址;获取网络请求响应信息的第三路径信息,第三路径信息用于指示网络请求响应信息的存储地址;根据第一路径信息将已获取的第一请求参数填入第一位置,根据第二路径信息将已获取的接口响应信息填入第二位置,根据第三路径信息将已获取的网络请求响应信息填入第三位置,根据信息填入后的第一代码模板生成第一测试用例的用例代码。
在其中一个实施例中,处理器执行计算机程序时实现以下步骤:接收测试应用发送的第一网络请求,从第一网络请求中获取service方法的值和method方法的值;根据service方法的值和method方法的值通过反射机制获得第一网络请求的中间请求;向服务端发送中间请求,以使得服务端反馈第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在其中一个实施例中,处理器执行计算机程序实现上述的接收测试应用发送的第一网络请求步骤时,具体实现以下步骤:接收mock服务器发送第一网络请求,mock服务器用于接收测试应用发送的第一网络请求并对第一网络请求进行转发。处理器执行计算机程序时实现以下步骤:接收服务端反馈的第一网络请求的网络请求响应信息;向mock服务器发送网络请求响应信息,以使得mock服务器向测试应用发送网络请求响应信息。
在其中一个实施例中,处理器执行计算机程序时实现以下步骤:获取测试应用发送的第二网络请求;若第二网络请求的第二请求参数与第一网路请求的第一请求参数相同,获取服务端反馈的第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息相同且第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息相同时,判定第二网络请求与第一网络请求相同;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息不相同和/或第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息不相同时,获取预先设置的第二网络请求的第二代码模板,根据第二代码模板、第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码。
在其中一个实施例中,处理器执行计算机程序时实现以下步骤:生成第一测试用例的第一时间戳以及第二测试用例的第二时间戳;根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序,排序后得到测试应用的自动化测试用例。
在其中一个实施例中,处理器执行计算机程序时实现以下步骤:生成测试应用的测试用例的类文件;在类文件中生成监听器,监听器用于监听测试应用发送的网络请求;当通过监听器监听到测试应用发送的第一网络请求时,执行获取测试应用发送的第一网络请求中的第一请求参数的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取测试应用发送的第一网络请求中的第一请求参数;获取服务端反馈的第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息;获取预先设置的第一网络请求的第一测试用例的第一代码模板,识别第一代码模板中第一请求参数的第一位置、接口响应信息的第二位置以及网络请求响应信息的第三位置;根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据第一代码模板、第一位置、第二位置、第三位置以及第一请求参数、接口响应信息、网络请求响应信息生成第一测试用例的用例代码步骤时,具体实现以下步骤:获取第一请求参数的第一路径信息,第一路径信息用于指示第一请求参数的存储地址;获取接口响应信息的第二路径信息,第二路径信息用于指示接口响应信息的存储地址;获取网络请求响应信息的第三路径信息,第三路径信息用于指示网络请求响应信息的存储地址;根据第一路径信息将已获取的第一请求参数填入第一位置,根据第二路径信息将已获取的接口响应信息填入第二位置,根据第三路径信息将已获取的网络请求响应信息填入第三位置,根据信息填入后的第一代码模板生成第一测试用例的用例代码。
在其中一个实施例中,计算机程序被处理器执行时实现以下步骤:接收测试应用发送的第一网络请求,从第一网络请求中获取service方法的值和method方法的值;根据service方法的值和method方法的值通过反射机制获得第一网络请求的中间请求;向服务端发送中间请求,以使得服务端反馈第一网络请求的接口响应信息以及第一网络请求的网络请求响应信息。
在其中一个实施例中,计算机程序被处理器执行实现上述的接收测试应用发送的第一网络请求步骤时,具体实现以下步骤:接收mock服务器发送第一网络请求,mock服务器用于接收测试应用发送的第一网络请求并对第一网络请求进行转发。计算机程序被处理器执行时实现以下步骤:接收服务端反馈的第一网络请求的网络请求响应信息;向mock服务器发送网络请求响应信息,以使得mock服务器向测试应用发送网络请求响应信息。
在其中一个实施例中,计算机程序被处理器执行时实现以下步骤:获取测试应用发送的第二网络请求;若第二网络请求的第二请求参数与第一网路请求的第一请求参数相同,获取服务端反馈的第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息相同且第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息相同时,判定第二网络请求与第一网络请求相同;当第二网络请求的接口反馈信息与第一网络请求的接口响应信息不相同和/或第二网络请求的网络请求反馈信息与第一网络请求的网络请求响应信息不相同时,获取预先设置的第二网络请求的第二代码模板,根据第二代码模板、第二请求参数、第二网络请求的接口反馈信息以及第二网络请求的网络请求反馈信息生成第二测试用例的用例代码。
在其中一个实施例中,计算机程序被处理器执行时实现以下步骤:生成第一测试用例的第一时间戳以及第二测试用例的第二时间戳;根据第一时间戳和第二时间戳对第一测试用例的用例代码和第二测试用例的用例代码进行排序,排序后得到测试应用的自动化测试用例。
在其中一个实施例中,计算机程序被处理器执行时实现以下步骤:生成测试应用的测试用例的类文件;在类文件中生成监听器,监听器用于监听测试应用发送的网络请求;当通过监听器监听到测试应用发送的第一网络请求时,执行获取测试应用发送的第一网络请求中的第一请求参数的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
1.一种测试用例的用例代码生成方法,所述方法包括:
获取测试应用发送的第一网络请求中的第一请求参数;
获取服务端反馈的所述第一网络请求的接口响应信息以及所述第一网络请求的网络请求响应信息;
获取预先设置的所述第一网络请求的第一测试用例的第一代码模板,识别所述第一代码模板中所述第一请求参数的第一位置、所述接口响应信息的第二位置以及所述网络请求响应信息的第三位置;
根据所述第一代码模板、所述第一位置、所述第二位置、所述第三位置以及所述第一请求参数、所述接口响应信息、所述网络请求响应信息生成所述第一测试用例的用例代码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一代码模板、所述第一位置、所述第二位置、所述第三位置以及所述第一请求参数、所述接口响应信息、所述网络请求响应信息生成所述第一测试用例的用例代码,包括:
获取所述第一请求参数的第一路径信息,所述第一路径信息用于指示所述第一请求参数的存储地址;
获取所述接口响应信息的第二路径信息,所述第二路径信息用于指示所述接口响应信息的存储地址;
获取所述网络请求响应信息的第三路径信息,所述第三路径信息用于指示所述网络请求响应信息的存储地址;
根据所述第一路径信息将已获取的所述第一请求参数填入所述第一位置,根据所述第二路径信息将已获取的所述接口响应信息填入所述第二位置,根据所述第三路径信息将已获取的所述网络请求响应信息填入所述第三位置,根据信息填入后的第一代码模板生成所述第一测试用例的用例代码。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述测试应用发送的所述第一网络请求,从所述第一网络请求中获取service方法的值和method方法的值;
根据所述service方法的值和所述method方法的值通过反射机制获得所述第一网络请求的中间请求;
向所述服务端发送所述中间请求,以使得所述服务端反馈所述第一网络请求的接口响应信息以及所述第一网络请求的网络请求响应信息。
4.根据权利要求3所述的方法,其特征在于,所述接收所述测试应用发送的所述第一网络请求,包括:
接收mock服务器发送所述第一网络请求,所述mock服务器用于接收所述测试应用发送的所述第一网络请求并对所述第一网络请求进行转发;
所述向所述服务端发送所述中间请求之后,还包括:
接收所述服务端反馈的所述第一网络请求的网络请求响应信息;
向所述mock服务器发送所述网络请求响应信息,以使得所述mock服务器向所述测试应用发送所述网络请求响应信息。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述测试应用发送的第二网络请求;
若所述第二网络请求的第二请求参数与所述第一网路请求的第一请求参数相同,获取所述服务端反馈的所述第二网络请求的接口反馈信息以及所述第二网络请求的网络请求反馈信息;
当所述第二网络请求的接口反馈信息与所述第一网络请求的接口响应信息相同且所述第二网络请求的网络请求反馈信息与所述第一网络请求的网络请求响应信息相同时,判定所述第二网络请求与所述第一网络请求相同;
当所述第二网络请求的接口反馈信息与所述第一网络请求的接口响应信息不相同和/或所述第二网络请求的网络请求反馈信息与所述第一网络请求的网络请求响应信息不相同时,获取预先设置的所述第二网络请求的第二代码模板,根据所述第二代码模板、所述第二请求参数、所述第二网络请求的接口反馈信息以及所述第二网络请求的网络请求反馈信息生成所述第二测试用例的用例代码。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
生成所述第一测试用例的第一时间戳以及所述第二测试用例的第二时间戳;
根据所述第一时间戳和所述第二时间戳对所述第一测试用例的用例代码和所述第二测试用例的用例代码进行排序,排序后得到所述测试应用的自动化测试用例。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成所述测试应用的测试用例的类文件;
在所述类文件中生成监听器,所述监听器用于监听所述测试应用发送的网络请求;
当通过所述监听器监听到所述测试应用发送的第一网络请求时,执行所述获取测试应用发送的第一网络请求中的第一请求参数的步骤。
8.一种测试用例的用例代码生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取测试应用发送的第一网络请求中的第一请求参数;
第二获取模块,用于获取服务端反馈的所述第一网络请求的接口响应信息以及所述第一网络请求的网络请求响应信息;
识别模块,用于获取预先设置的所述第一网络请求的第一测试用例的第一代码模板,识别所述第一代码模板中所述第一请求参数的第一位置、所述接口响应信息的第二位置以及所述网络请求响应信息的第三位置;
生成模块,用于根据所述第一代码模板、所述第一位置、所述第二位置、所述第三位置以及所述第一请求参数、所述接口响应信息、所述网络请求响应信息生成所述第一测试用例的用例代码。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结