CN109582588A - 测试用例生成方法、装置及电子设备 - Google Patents
测试用例生成方法、装置及电子设备 Download PDFInfo
- Publication number
- CN109582588A CN109582588A CN201811593684.5A CN201811593684A CN109582588A CN 109582588 A CN109582588 A CN 109582588A CN 201811593684 A CN201811593684 A CN 201811593684A CN 109582588 A CN109582588 A CN 109582588A
- Authority
- CN
- China
- Prior art keywords
- interface
- test
- message
- variable object
- 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.)
- 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)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种测试用例生成方法、装置及电子设备。该方法包括:接收注册报文,其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息;获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库;根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。通过接收注册报文,获得待测接口的接口信息的方式,可大量节省用于获得接口信息的时间,从而提高接口自动化测试的效率。同时,接口发生变动时,可自动更新接口信息而无需人工干预,节约因接口变动带来的额外工作量。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种测试用例生成方法、装置及电子设备。
背景技术
目前一般是通过网络抓包工具分析业务系统中接口的报文信息,以获得该接口的报文接口请求协议、端口、地址、URL(Uniform Resource Locator,统一资源定位符)路径、参数等信息。然后基于上述信息通过脚本语言(比如,python)实现上述业务接口,最后由该业务接口及内置的关键字得到手工用例,并根据该用例固定参数信息,以组合成业务流用例。进而使用上述业务流用例进行测试,得到业务接口的测试结果。
上述方式虽然可以得到用于测试的用例,但是获得接口信息及实现业务接口均需要花费大量的时间,而随着项目迭代速度日渐频繁,上述方式效率低下的问题日渐突出。同时,在实际项目开发过程中接口变动是最为常见的现象,对于采取传统方式实现的接口自动化用例,从上述过程可知每个步骤都需要进行更新,这就导致更新工作将变得巨大。
发明内容
本申请实施例的目的在于提供一种测试用例生成方法、装置及电子设备。
第一方面,本申请实施例提供一种测试用例生成方法,包括:接收注册报文,其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息;获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库;根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。
在上述方法中,通过接收注册报文获得待测接口的接口信息的方式,可大量节省用于获得接口信息的时间,从而提高接口自动化测试的效率。同时,基于与接口参数信息对应的变量对应生成Robot Framework测试用例,而不是直接使用实际数据,在发生接口变动时,可自动更新接口信息而无需人工干预,节约因接口变动带来的额外工作量,因此该方法还具有维护工作量小的特点。
进一步地,结合上述第一方面提供的实施例,所述接口参数信息包括参数类型及参数长度,所述获得所述接口参数信息对应的变量对象,包括:从存储有多个变量对象的变量对象库中查询与所述参数类型及所述参数长度对应的变量对象作为所述接口参数信息对应的变量对象。
在上述方法中,通过查询变量对象库获得与接口信息中的参数类型及参数长度对应的变量对象,可避免直接根据接口信息中的参数类型及参数长度生成对应的变量对象带来的时间长的问题,由此可节省获得变量对象的时间,从而进一步提升获得RobotFramework测试用例的速度。
进一步地,结合上述第一方面提供的实施例,所述接口信息还包括接口标识,在接收所述注册报文之后,所述方法还包括:根据所述接口标识判断所述接口信息是新增信息还是更新信息;若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
在上述方法中,由于会接收到注册报文,通过将得到的注册报文的接口信息中的接口标识与接口信息数据库中已存储的接口信息的接口标识进行比对,即可判断是否发生接口变动。在发生接口变动时,通过对接口信息数据库中与发生接口变动的接口对应的接口信息进行更新,即可保证接口信息数据库中的接口信息与实际情况一致。由此,不需要在接口变动时,再通过网络抓包工具分析业务系统中的接口情况,因而可解决因接口变动导致更新工作量大的问题。
进一步地,结合上述第一方面提供的实施例,所述测试接口模型数据还包括接口标识,所述将该变量对象作为测试接口模型数据保存至测试接口模型库,包括:根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
在上述方法中,在根据接口参数信息得到对应的变量对象作为测试接口模型数据后,需要将该测试接口模型数据进行存储,便于后续生成Robot Framework测试用例。在存储时,通过将该测试接口模型数据对应的接口标识与测试接口模型中已存储的测试接口模型数据的接口标识进行比对,然后根据比对结果将该测试接口模型数据以新增或者更新的方式保存至测试接口模型库中。由此,即使发生接口变动,测试接口模型库中的测试接口模型数据依然与实际情况一致,同时不会增加工作量。
进一步地,结合上述第一方面提供的实施例,所述根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例,包括:根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在上述方法中,基于每条测试接口模型数据及预设的接口通用测试方法产生多个测试接口用例,进而根据每个测试接口用例及预设模板即可生成通用接口测试用例。
进一步地,结合上述第一方面提供的实施例,所述根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例,包括:根据每个手工用例中的自定义字段生成接口映射关系库,其中,所述自定义字段包括接口名称;根据所述接口映射关系库、接口信息数据库及所述测试接口模型库生成多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在上述方法中,首先获得手工用例中每个接口的相关信息以生成接口映射关系库,然后基于该接口映射关系库、接口信息数据库、测试接口模型库及预设模块生成RobotFramework测试用例,以接口映射的方式自动转换手工用例,可大大提升接口用例编写效率。
进一步地,结合上述第一方面提供的实施例,所述接口信息还包括接口名称,所述接口参数信息还包括参数名称,所述自定义字段还包括自定义参数名称,所述根据所述接口映射关系库、接口信息数据库及所述测试接口模型库生成多个待测接口用例,包括:依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
在上述方法中,根据手工用例中的接口名称及自定义参数名称查询到与其对应的变量对象,然后使用该接口的自定义参数值替换该变量对象,即可得到Robot Framework测试用例。
进一步地,结合上述第一方面提供的实施例,所述方法还包括:根据所述接口信息模型库中的接口信息运行所述Robot Framework测试用例以对所述待测接口进行测试。
在上述方式中,由于使用的Robot Framework测试用例的生成速度快且维护工作量小,因而可极大地提升对待测接口的测试速度。
第二方面,本申请实施例提供一种Robot Framework测试用例生成装置,包括:接收模块,用于接收注册报文,其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息;保存模块,用于获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库;生成模块,用于根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。
进一步地,结合上述第二方面提供的实施例,所述接口参数信息包括参数类型及参数长度,所述保存模块具体用于:从存储有多个变量对象的变量对象库中查询与所述参数类型及所述参数长度对应的变量对象作为所述接口参数信息对应的变量对象。
进一步地,结合上述第一方面提供的实施例,所述接口信息还包括接口标识,所述保存模块还用于:根据所述接口标识判断所述接口信息是新增信息还是更新信息;若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
进一步地,结合上述第一方面提供的实施例,所述测试接口模型数据还包括接口标识,所述保存模块具体用于:根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
进一步地,结合上述第一方面提供的实施例,所述生成模块具体用于:根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
进一步地,结合上述第一方面提供的实施例,所述生成模块具体用于:根据每个手工用例中的自定义字段生成接口映射关系库,其中,所述自定义字段包括接口名称;根据所述接口映射关系库、接口信息数据库及所述测试接口模型库生成多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
进一步地,结合上述第一方面提供的实施例,所述接口信息还包括接口名称,所述接口参数信息还包括参数名称,所述自定义字段还包括自定义参数名称,所述生成模块具体用于:依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
进一步地,结合上述第一方面提供的实施例,所述装置还包括:测试模块,用于根据所述接口信息模型库中的接口信息运行所述Robot Framework测试用例以对所述待测接口进行测试。
第三方面,本申请实施例提供一种电子设备,包括:处理器及可读存储介质,所述可读存储介质存储有可执行计算机指令,所述可执行计算机指令由所述处理器读取并运行时,执行上述任意一项所述的Robot Framework测试用例生成方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本申请实施例提供的测试用例生成方法的流程示意图之一。
图2是本申请实施例提供的测试接口模型库示意图。
图3是图1中步骤S130包括的子步骤的一种流程示意图。
图4是本申请实施例提供的待测接口用例库示意图。
图5是图1中步骤S130包括的子步骤的另一种流程示意图。
图6是本申请实施例提供的手工用例示意图。
图7是本申请实施例提供的接口映射关系库示意图。
图8是本申请实施例提供的测试用例生成方法的流程示意图之二。
图9是本申请实施例提供的测试用例生成装置的方框示意图之一。
图10是本申请实施例提供的测试用例生成装置的方框示意图之二。
图标:100-测试用例生成装置;110-接收模块;120-保存模块;130-生成模块;140-测试模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1是本申请实施例提供的测试用例生成方法的流程示意图之一。下面对测试用例生成方法的具体流程进行详细阐述。
步骤S110,接收注册报文。
在本实施例中,待测业务系统可以将其用于提供业务的所有接口的接口信息以注册报文的形式发送给用于生成Robot Framework测试用例的电子设备。其中,用于提供业务的接口即为待测接口。由此,仅通过接收注册报文即可获得待测接口的接口信息,省去了自动化编写人员的分析和实现待测接口的步骤,因而可极大地提高Robot Framework测试用例的编写效率,提高接口自动化测试的效率。其中,Robot Framework是一种关键字驱动的接口自动化测试框架。
可选地,在本实施例的一种实施方式中,该待测业务系统可以将待测接口的接口信息按照标准json格式进行发送。其中,待测接口的接口信息可以包括,但不限于,接口名称、接口标识、接口参数信息、接口使用的协议、端口、IP地址、URL(Uniform ResourceLocator,统一资源定位符)路径等。
可选地,作为一种实施方式,以标准json格式发送的注册报文如下:
本领域技术人员应当理解,上述注册报文仅为举例说明,这并不构成对本方案的限制。
在本实施例中,在接收所述注册报文之后,所述方法还可以包括以下步骤:根据所述接口标识判断所述接口信息是新增信息还是更新信息;若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
在根据注册报文得到接口信息后,可首先查找接口信息数据库中是否包括该接口信息中的接口标识。若不包括,表示该接口信息为新增信息,直接将该接口信息保存至所述接口数据库即可。若包括,则表示发生接口变动,该接口信息为更新信息,需要根据该接口信息对所述接口信息数据库进行更新。其中,更新的方式可以是,但不限于,直接删除所述接口信息数据库中与得到的接口信息中的接口标识对应的接口信息,然后直接保存该更新信息;或者,将所述接口信息数据库中与得到的接口信息中的接口标识对应的接口信息修改为得到的接口信息。
比如:
在本实施例的一种实施方式中,通过比对本地缓存的接口信息,判断得到的接口信息是新增还是更新。如果是更新,则同步修改本地数据库和缓存信息;如果是新增,则插入缓存和本地数据库。其中,缓存和本地数据库以键值对的方式存放,比如,接口标识+接口信息。
步骤S120,获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库。
在本实施例中,在通过接收注册报文得到待测接口的接口信息后,获得该接口信息中的接口参数信息对应的变量对象。比如,将接口参数信息("params":{参数名:参数类型(长度),参数名:参数类型(长度)})转换为对应的变量对象("params":{参数名:String_Variable(10),参数名:Int_Variable(20)})。然后将得到的变量对象作为测试接口模型数据,保存至测试接口模型库中,便于后续生成Robot Framework测试用例。其中,测试接口模型库如图2所示,图2作为示例,该测试接口模型库仅包括一条测试接口模型数据。ID表示该试接口模型数据对应的接口信息中的接口标识,method表示该试接口模型数据对应的接口信息中的接口名称。
可选地,在本实施例的一种实施方式中,预先生成多个变量对象,并保存至变量对象库中。其中,变量对象库中的每个变量对象对应一种参数类型及一个参数长度。在得到接口信息后,在所述变量对象库中查询参数类型及参数长度与所述接口信息的接口参数信息中的参数类型及参数长度相同的变量对象,以得到与所述接口参数信息对应的变量对象。
在得到变量对象后,可将该变量对象作为测试接口模型数据保存至测试接口模型库中。可选地,在保存时,可以将该变量对象和与该变量对象对应的接口信息中的接口标识和/或接口名称一起保存至所述测试接口模型数据库中,以便于后续进行查询。
可选地,作为一种实施方式中,可以通过以下方式将得到的变量对象作为测试接口模型数据保存至所述测试接口模型库:首先根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
首先将得到的变量对象对应的接口标识与所述测试接口模型库中已有的接口标识进行比对。如果在所述测试接口模型库中未查找到该得到的变量对象对应的接口标识,表示该得到的变量对象为新增变量对象,可直接将该变量对象及对应的接口标识作为测试模型数据直接保存至所述测试接口模型库中。如果在所述测试接口模型库中查找到该得到的变量对象对应的接口标识,表示所述测试接口模型库中已经存储有与该接口标识对应的变量对象,此时得到的变量对象为更新变量对象,可将已存储的与该接口标识对应的变量对象删除,保存该得到的变量对象,以对测试接口模型数据进行更新。
步骤S130,根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。
在本实施例中,由于在生成Robot Framework测试用例时使用的是变量对象,并未直接使用实际数据,因此在发生接口变动时,也仅需更新变量对象,不需要重复所有步骤以重新生成一个Robot Framework测试用例。因而该方法具有维护工作量小的特点。
请参照图3,图3是图1中步骤S130包括的子步骤的一种流程示意图。在本实施例的一种实施方式中,步骤S130可以包括子步骤S131及子步骤S132。
子步骤S131,根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例。
子步骤S132,根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在本实施例中,从所述测试接口模型库中获取测试接口模型数据,然后根据每条测试接口模型数据按照预设的接口通用测试方法产生多个待测接口用例,并保存至待测接口用例库中。接着从待测接口用例库中逐个获取待测接口用例,然后根据获取的待测接口用例及预设的固定模板即可生成所述Robot Framework测试用例,也就是说,通过组装待测接口用例及预设的固定模板可得到Robot Framework测试用例。由此,通过上述方式得到通用接口测试用例。其中,所述预设的接口通用测试方式可以是,但不限于,参数长度超长、参数丢失、参数类型错误等,可以根据实际需求进行设置。
比如,采用预设的接口通用测试方式可得到如图4所示的待测接口用例库示意图。该待测接口用例库中包括针对同一条测试接口模型数据的四个待测接口用例。其中,待测接口用例1为正常接口数据,待测接口用例2参数长度超长,待测接口用例3参数丢失,待测接口用例4参数类型错误。
请参照图5,图5是图1中步骤S130包括的子步骤的另一种流程示意图。在本实施例的另一种实施方式中,步骤S130可以包括子步骤S134、子步骤S135及子步骤S136。
子步骤S134,根据每个手工用例中的自定义字段生成接口映射关系库。
子步骤S135,根据所述接口映射关系库、接口信息数据库及测试接口模型库生成多个待测接口用例。
子步骤S136,根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在本实施例中,手工用例在编辑时可新增“接口名称”、“自定义参数”、“表达式”三个自定义字段,每条需要实现字段化的用例步骤均按照固定语法填写,以得到如图6所示的手工用例示意图。其中,图6中的Express表示表达式。在获得手工用例后,可根据手工用例中的用例编号及上述三个自定义字段数据形成图7所示的接口映射关系库。接口映射关系库中的每条接口映射数据对应手工用例中的一个接口的相关信息(包括接口名称、自定义参数、表达式)。其中,该接口映射关系库中还可以包括用例编号,以便可直接获得对应于同一手工用例的接口映射数据。图7中第一行的自定义参数的自定义参数值为正常填写数据,第二行的自定义参数的自定义参数值需要获得其他值。
在获得接口映射关系库后,可根据接口信息数据库及测试接口模型库,将所述接口映射关系库中的每条接口映射数据中的接口名称、自定义参数及表达式解析成待测接口用例。接着则可根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在本实施例的一种实施方式中,所述接口参数信息还可以包括参数名称,可通过以下方式生成待测接口用例:依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
从所述接口映射关系库中依次读取一条接口映射数据,然后根据该接口映射数据生成测试接口用例。若该条接口映射数据不能生成测试接口用例,则读取下一条接口映射数据。由此,直到将接口映射关系中的所有接口映射数据都读取完,并得到相应的测试接口用例。
在读取一条接口映射数据后,首先通过查询所述接口信息数据库中是否包括该接口映射数据中的接口名称,以判断该接口映射数据对应的接口是否存在,即该接口映射数据对应的接口是否为待测接口。若所述接口信息数据中包括该接口映射数据中的接口名称,表示该接口映射数据对应的接口存在;反之,表示不存在,该接口映射数据不能被解析为测试接口用例。
在该接口映射数据对应的接口存在时,查询所述接口信息数据库中是否包括该接口映射数据中的自定义参数名称,以判断该自定义参数名称是否存在。若所述接口信息数据库中包括该接口映射数据中的自定义参数名称,表示该自定义参数名称存在;反之,表示不存在,该接口映射数据不能被解析为测试接口用例。
在该接口映射数据中的自定义参数名称存在且对应的接口存在时,可使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以将该接口映射数据解析成测试接口用例。
可选地,在本实施例中,在使用自定义参数值调换对应的变量对象时,若该自定义参数值为常量或其他形式的可直接使用的值时,则可直接进行替换。若该自定义参数值的表示形式表示需要获得其他数据时,则解析该自定义参数值中的接口名称、参数名称等得到一返回值,然后根据该自定义参数值对应的表达式对返回值进行处理,并使用处理后的值替换对应的变量对象。其中,上述处理为:比如返回值为3.33,对应的表达式为取小数点后一位,则处理后的值为3.3。
请参照图8,图8是本申请实施例提供的Robot Framework测试用例生成方法的流程示意图之二。在生成Robot Framework测试用例后,所述方法还可以包括步骤S140。
步骤S140,根据所述接口信息模型库中的接口信息运行所述Robot Framework测试用例以对所述待测接口进行测试。
在通过步骤S130得到Robot Framework测试用例后,根据所述接口信息模型库中与该Robot Framework测试用例对应的接口信息中的protocl字段选择对应的Request发送器发送测试请求。然后根据预设的请求响应类型选择Responses模块,以使用对应的解析器解析返回的数据,以得到结果。最后调用Result模块基于预设结果和得到的结果进行结果校验,以得到测试结果。
在本实施例中,通过接收注册报文的方式省去了自动化编写人员的分析和实现测试接口的步骤,形成了一套更为简化的实现流程;同时解决了业务接口变动带来的大量自动化脚本修改工作。并且,本方案采取接口数据对象化替换实际数据的方式,使接口自动化后期维护更新简单化,可节约维护成本。进一步地,本方案通过接口映射的方式自动转换手工用例,可大大提升接口用例编写效率,使CI(Continue Integrate,持续集成)活动能够项目过程尽早开展,为产品质量提供了多一层保障。
请参照图9,图9是本申请实施例提供的测试用例生成装置100的方框示意图之一。所测试用例生成装置100可以包括接收模块110、保存模块120及生成模块130。
接收模块110,用于接收注册报文。其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息。
保存模块120,用于获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库。
在本实施例中,所述接口参数信息包括参数类型及参数长度,所述保存模块120用于:从存储有多个变量对象的变量对象库中查询与所述参数类型及所述参数长度对应的变量对象作为所述接口参数信息对应的变量对象。
在本实施例中,所述接口信息还包括接口标识,所述保存模块120还用于:根据所述接口标识判断所述接口信息是新增信息还是更新信息;若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
在本实施例中,所述测试接口模型数据还包括接口标识,所述保存模块120具体用于:根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
生成模块130,用于根据所述测试接口模型中的测试接口模型数据生成RobotFramework测试用例。
在本实施例的一种实施方式中,所述生成模块130具体用于:根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
在本实施例的另一种实施方式中,所述生成模块130具体用于:根据每个手工用例中的自定义字段生成接口映射关系库,其中,所述自定义字段包括接口名称;根据所述接口映射关系库、接口信息数据库及测试接口模型库生成多个待测接口用例;根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
进一步地,所述接口信息还包括接口名称,所述接口参数信息还包括参数名称,所述自定义字段还包括自定义参数名称,所述生成模块130具体用于:依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
请参照图10,图10是本申请实施例提供的测试用例生成装置100的方框示意图之二。所述测试用例生成装置100还可以包括测试模块140。
测试模块140,用于根据所述接口信息模型库中的接口信息运行所述RobotFramework测试用例以对所述待测接口进行测试。
在本实施例中,关于所述测试用例生成装置100的描述可以参照上文对测试用例生成方法的描述。
本申请实施例还提供一种电子设备,所述电子设备包括处理器及可读存储介质,所述可读存储介质存储有可执行计算机指令,所述可执行计算机指令由所述处理器读取并运行时,执行所述测试用例生成方法。
本领域的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
综上所述,本申请实施例提供一种测试用例生成方法、装置及电子设备。首先接收包括待测接口的接口信息的注册报文,然后获得所述接口信息中的接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库,最后根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。由此,通过接收注册报文获得待测接口的接口信息的方式,可大量节省用于获得接口信息的时间,从而提高接口自动化测试的效率。同时,基于与接口参数信息对应的变量对应生成Robot Framework测试用例,而不是直接使用实际数据,在接口发生变动时,可自动更新接口信息而无需人工干预,节约因接口变动带来的额外工作量。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种测试用例生成方法,其特征在于,包括:
接收注册报文,其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息;
获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库;
根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。
2.根据权利要求1所述的方法,其特征在于,所述接口参数信息包括参数类型及参数长度,所述获得所述接口参数信息对应的变量对象,包括:
从存储有多个变量对象的变量对象库中查询与所述参数类型及所述参数长度对应的变量对象作为所述接口参数信息对应的变量对象。
3.根据权利要求1所述的方法,其特征在于,所述接口信息还包括接口标识,在接收所述注册报文之后,所述方法还包括:
根据所述接口标识判断所述接口信息是新增信息还是更新信息;
若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;
若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
4.根据权利要求3所述的方法,其特征在于,所述测试接口模型数据还包括接口标识,所述将该变量对象作为测试接口模型数据保存至测试接口模型库,包括:
根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;
若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;
若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
5.根据权利要求4所述的方法,其特征在于,所述根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例,包括:
根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例;
根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
6.根据权利要求4所述的方法,其特征在于,所述根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例,包括:
根据每个手工用例中的自定义字段生成接口映射关系库,其中,所述自定义字段包括接口名称;
根据所述接口映射关系库、接口信息数据库及测试接口模型库生成多个待测接口用例;
根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
7.根据权利要求6所述的方法,其特征在于,所述接口信息还包括接口名称,所述接口参数信息还包括参数名称,所述自定义字段还包括自定义参数名称,所述根据所述接口映射关系库、接口信息数据库及测试接口模型库生成多个待测接口用例,包括:
依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;
若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
8.根据权利要求1-7中任意一项所述的方法,其特征在于,所述方法还包括:
根据所述接口信息模型库中的接口信息运行所述Robot Framework测试用例以对所述待测接口进行测试。
9.一种测试用例生成装置,其特征在于,包括:
接收模块,用于接收注册报文,其中,所述注册报文包括待测接口的接口信息,所述接口信息包括接口参数信息;
保存模块,用于获得所述接口参数信息对应的变量对象,并将该变量对象作为测试接口模型数据保存至测试接口模型库;
生成模块,用于根据所述测试接口模型中的测试接口模型数据生成Robot Framework测试用例。
10.根据权利要求9所述的装置,其特征在于,所述接口参数信息包括参数类型及参数长度,所述保存模块具体用于:
从存储有多个变量对象的变量对象库中查询与所述参数类型及所述参数长度对应的变量对象作为所述接口参数信息对应的变量对象。
11.根据权利要求9所述的装置,其特征在于,所述接口信息还包括接口标识,所述保存模块还用于:
根据所述接口标识判断所述接口信息是新增信息还是更新信息;
若所述接口信息是新增信息,则将所述接口信息保存至接口信息数据库;
若所述接口信息是更新信息,则根据所述接口信息对所述接口信息数据库中与该接口信息中的接口标识对应的接口信息进行更新。
12.根据权利要求11所述的装置,其特征在于,所述测试接口模型数据还包括接口标识,所述保存模块具体用于:
根据该变量对象对应的接口信息中的接口标识判断该变量对象为新增变量对象还是更新变量对象;
若该变量对象是新增变量对象,则将该变量对象及与该变量对象对应的接口信息中的接口标识保存至所述测试接口模型库;
若该变量对象是更新变量对象,则根据该变量对象对所述测试接口模型库中与该变量对象对应的接口信息中的接口标识对应的测试接口模型数据进行更新。
13.根据权利要求12所述的装置,其特征在于,所述生成模块具体用于:
根据每条所述测试接口模型数据及预设的接口通用测试方法产生多个待测接口用例;
根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
14.根据权利要求12所述的装置,其特征在于,所述生成模块具体用于:
根据每个手工用例中的自定义字段生成接口映射关系库,其中,所述自定义字段包括接口名称;
根据所述接口映射关系库、接口信息数据库及测试接口模型库生成多个待测接口用例;
根据每个待测接口用例及预设模板生成所述Robot Framework测试用例。
15.根据权利要求14所述的装置,其特征在于,所述接口信息还包括接口名称,所述接口参数信息还包括参数名称,所述自定义字段还包括自定义参数名称,所述生成模块具体用于:
依次判断所述接口信息数据库中是否包括手工用例中的每个接口的接口名称及自定义参数名称;
若所述接口信息数据库包括手工用例中的一接口的接口名称及自定义参数名称,则使用与该自定义参数名称对应的自定义参数值替换所述测试接口模型库中与该接口对应的变量对象,以生成测试接口用例。
16.根据权利要求9-15中任意一项所述的装置,其特征在于,所述装置还包括:
测试模块,用于根据所述接口信息模型库中的接口信息运行所述Robot Framework测试用例以对所述待测接口进行测试。
17.一种电子设备,其特征在于,包括:
处理器及可读存储介质,所述可读存储介质存储有可执行计算机指令,所述可执行计算机指令由所述处理器读取并运行时,执行权利要求1-8中任意一项所述的测试用例生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811593684.5A CN109582588B (zh) | 2018-12-25 | 2018-12-25 | 测试用例生成方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811593684.5A CN109582588B (zh) | 2018-12-25 | 2018-12-25 | 测试用例生成方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582588A true CN109582588A (zh) | 2019-04-05 |
CN109582588B CN109582588B (zh) | 2022-02-22 |
Family
ID=65931741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811593684.5A Active CN109582588B (zh) | 2018-12-25 | 2018-12-25 | 测试用例生成方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582588B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110109843A (zh) * | 2019-07-08 | 2019-08-09 | 四川驹马科技有限公司 | 基于Robot Framework的自动化测试用例构建方法及系统 |
CN110297651A (zh) * | 2019-06-18 | 2019-10-01 | 广州华多网络科技有限公司 | 协议接口的常用变量的更新方法和装置 |
CN110297774A (zh) * | 2019-07-02 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于python的接口自动化测试方法 |
CN110457228A (zh) * | 2019-08-22 | 2019-11-15 | 携程计算机技术(上海)有限公司 | 接口返回报文的比对方法及系统 |
CN111061637A (zh) * | 2019-12-13 | 2020-04-24 | 广州品唯软件有限公司 | 接口测试方法、接口测试装置及存储介质 |
CN111221743A (zh) * | 2020-03-18 | 2020-06-02 | 时时同云科技(成都)有限责任公司 | 自动化测试方法及系统 |
CN111427783A (zh) * | 2020-03-24 | 2020-07-17 | 上海科世达-华阳汽车电器有限公司 | 一种rte接口测试方法、装置、设备及存储介质 |
CN111444100A (zh) * | 2020-03-26 | 2020-07-24 | 深圳创维-Rgb电子有限公司 | 测试方法、设备、装置和存储介质 |
CN111444104A (zh) * | 2020-04-01 | 2020-07-24 | 山东汇贸电子口岸有限公司 | 一种OpenStack功能测试的方法 |
CN111858376A (zh) * | 2020-07-29 | 2020-10-30 | 平安养老保险股份有限公司 | 请求报文生成方法和接口测试方法 |
CN113495831A (zh) * | 2020-04-03 | 2021-10-12 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN115687161A (zh) * | 2022-12-30 | 2023-02-03 | 云筑信息科技(成都)有限公司 | 基于扫描maven仓库自动生成接口测试用例的方法 |
CN116561014A (zh) * | 2023-07-07 | 2023-08-08 | 国电南瑞科技股份有限公司 | 一种电力二次设备测试用例的生成装置及测试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0930568A2 (en) * | 1997-12-18 | 1999-07-21 | Nortel Networks Corporation | Apparatus and method for generating model reference tests |
CN101140541A (zh) * | 2007-09-29 | 2008-03-12 | 中兴通讯股份有限公司 | 一种分布式软件系统的集成测试系统及方法 |
CN103309985A (zh) * | 2013-06-17 | 2013-09-18 | 广东电网公司电力科学研究院 | 针对服务注册中心的业务服务注册与发布方法及其系统 |
CN109062788A (zh) * | 2018-07-17 | 2018-12-21 | 招银云创(深圳)信息技术有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
-
2018
- 2018-12-25 CN CN201811593684.5A patent/CN109582588B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0930568A2 (en) * | 1997-12-18 | 1999-07-21 | Nortel Networks Corporation | Apparatus and method for generating model reference tests |
CN101140541A (zh) * | 2007-09-29 | 2008-03-12 | 中兴通讯股份有限公司 | 一种分布式软件系统的集成测试系统及方法 |
CN103309985A (zh) * | 2013-06-17 | 2013-09-18 | 广东电网公司电力科学研究院 | 针对服务注册中心的业务服务注册与发布方法及其系统 |
CN109062788A (zh) * | 2018-07-17 | 2018-12-21 | 招银云创(深圳)信息技术有限公司 | 测试用例生成方法、装置、计算机设备和存储介质 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110297651A (zh) * | 2019-06-18 | 2019-10-01 | 广州华多网络科技有限公司 | 协议接口的常用变量的更新方法和装置 |
CN110297774B (zh) * | 2019-07-02 | 2022-08-19 | 四川长虹电器股份有限公司 | 一种基于python的接口自动化测试方法 |
CN110297774A (zh) * | 2019-07-02 | 2019-10-01 | 四川长虹电器股份有限公司 | 一种基于python的接口自动化测试方法 |
CN110109843A (zh) * | 2019-07-08 | 2019-08-09 | 四川驹马科技有限公司 | 基于Robot Framework的自动化测试用例构建方法及系统 |
CN110457228A (zh) * | 2019-08-22 | 2019-11-15 | 携程计算机技术(上海)有限公司 | 接口返回报文的比对方法及系统 |
CN110457228B (zh) * | 2019-08-22 | 2022-12-20 | 携程计算机技术(上海)有限公司 | 接口返回报文的比对方法及系统 |
CN111061637A (zh) * | 2019-12-13 | 2020-04-24 | 广州品唯软件有限公司 | 接口测试方法、接口测试装置及存储介质 |
CN111061637B (zh) * | 2019-12-13 | 2023-08-18 | 广州品唯软件有限公司 | 接口测试方法、接口测试装置及存储介质 |
CN111221743A (zh) * | 2020-03-18 | 2020-06-02 | 时时同云科技(成都)有限责任公司 | 自动化测试方法及系统 |
CN111427783A (zh) * | 2020-03-24 | 2020-07-17 | 上海科世达-华阳汽车电器有限公司 | 一种rte接口测试方法、装置、设备及存储介质 |
CN111444100A (zh) * | 2020-03-26 | 2020-07-24 | 深圳创维-Rgb电子有限公司 | 测试方法、设备、装置和存储介质 |
CN111444104A (zh) * | 2020-04-01 | 2020-07-24 | 山东汇贸电子口岸有限公司 | 一种OpenStack功能测试的方法 |
CN111444104B (zh) * | 2020-04-01 | 2023-04-07 | 山东汇贸电子口岸有限公司 | 一种OpenStack功能测试的方法 |
CN113495831A (zh) * | 2020-04-03 | 2021-10-12 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN113495831B (zh) * | 2020-04-03 | 2024-05-31 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN111858376A (zh) * | 2020-07-29 | 2020-10-30 | 平安养老保险股份有限公司 | 请求报文生成方法和接口测试方法 |
CN115687161A (zh) * | 2022-12-30 | 2023-02-03 | 云筑信息科技(成都)有限公司 | 基于扫描maven仓库自动生成接口测试用例的方法 |
CN116561014A (zh) * | 2023-07-07 | 2023-08-08 | 国电南瑞科技股份有限公司 | 一种电力二次设备测试用例的生成装置及测试方法 |
CN116561014B (zh) * | 2023-07-07 | 2023-09-29 | 国电南瑞科技股份有限公司 | 一种电力二次设备测试用例的生成装置及测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109582588B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109582588A (zh) | 测试用例生成方法、装置及电子设备 | |
CN108509339A (zh) | 基于浏览器和思维导图的测试用例生成方法、装置及设备 | |
CN108490460A (zh) | 基于卫星导航中频数据库的自动化测试方法 | |
CN111125068A (zh) | 一种元数据治理方法和系统 | |
CN109783459A (zh) | 从日志中提取数据的方法、装置及计算机可读存储介质 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN107480268A (zh) | 数据查询方法及装置 | |
CN106294128B (zh) | 一种导出报表数据的自动化测试方法及装置 | |
CN113901117A (zh) | 用于多源试验数据引接处理方法 | |
CN108268468A (zh) | 一种大数据的分析方法及系统 | |
CN117891631A (zh) | 运维故障根因分析方法、装置、电子设备、存储介质 | |
CN108711074B (zh) | 业务分类方法、装置、服务器及可读存储介质 | |
CN110232130A (zh) | 元数据管理谱系生成方法、装置、计算机设备和存储介质 | |
CN113722370A (zh) | 基于指标分析的数据管理方法、装置、设备及介质 | |
CN112561388A (zh) | 一种基于物联网的信息处理方法、装置及设备 | |
CN107357919A (zh) | 行为日志查询系统及方法 | |
US10003492B2 (en) | Systems and methods for managing data related to network elements from multiple sources | |
CN105912573A (zh) | 数据更新方法及装置 | |
CN107423222B (zh) | 一种确定测试覆盖率的方法及设备 | |
JP2022168859A (ja) | コンピュータ実装方法、コンピュータプログラム、及びシステム(予測クエリ処理) | |
CN113127471A (zh) | 自动化数据质量检验的方法、装置、设备和存储介质 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN113377801A (zh) | 数据检验方法、装置、电子设备及计算机存储介质 | |
CN108984355A (zh) | 一种接口测试的自动化测试方法 | |
CN111126961A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |