一种接口自动化测试用例生成方法与系统与流程

文档序号:26139449发布日期:2021-08-03 14:23阅读:137来源:国知局
一种接口自动化测试用例生成方法与系统与流程

本发明涉及接口测试技术领域,特别是一种接口自动化测试用例生成方法与系统。



背景技术:

一般软件开发流程中,接口的开发和测试流程一般是由研发人员进行接口的整体设计工作,编写接口的整体设计文档,然后测试人员针对接口进行接口测试代码的编写,这种编写模式存在以下缺点:

1.接口不存在的情况下,只能单纯的对接口进行编写,没有测试环境进行校验,待研发人员提交接口测试的时候,已经编写的api代码需要重新进行调试,浪费时间;

2.编写api的过程中,每个测试用例都是测试人员进行代码编写实现的,这个编写过程同样浪费时间。

目前接口测试一般采用以下几个方案:

1.研发人员提供接口文档,然后测试人员根据接口文档实现api接口测试编写,待研发人员开发出具体接口之后,再对已经编写好的接口进行编译调试;

2.等待研发人员开发完相应的接口,然后测试人员根据已有的环境进行api接口测试编写。

但第一种方案比较浪费时间,因为没有真实的环境编写出来的接口用例肯定会存在很多问题,需等待研发人员开发出具体的接口后,进行二次调试,而二次调试也会浪费大量时间。第二种方案需等待研发人员开发出相应的api接口,测试人员才开始接入,由于这种方案是接口完成之后再编写api接口测试,此时该有的bug已经产生,不能在api接口提测之前有效的通过api接口测试检测api的正确性。

因此,需要一种高效的自动化接口生成方案,以提高接口自动化测试效率。



技术实现要素:

本发明的目的是提供一种接口自动化测试用例生成方法与系统,旨在解决现有技术中接口测试编写浪费时间以及接口测试接入时间点不对称问题,实现节省api编写和调试时间。

为达到上述技术目的,本发明提供了一种接口自动化测试用例生成方法,所述方法包括以下操作:

模拟http服务,用于接收post请求,并配合接口文档,根据输入参数返回相应的输出参数;

解析接口文档,将解析后的接口文档数据导入模拟的http服务中;

在http服务界面触发接口请求,通过抓包工具对发送的请求进行抓包,并对抓包数据进行解析,获得目标参数,生成api接口测试用例;

修改api接口测试用例的输入参数,加入返回值用于校验,修改完成后调试测试用例,直至运行成功,将测试用例加入api测试框架中。

优选地,所述目标参数为url、header、method以及已输入参数。

优选地,所述目标参数加入json文件中。

优选地,其特征在于,所述测试用例可组装为场景用例。

本发明还提供了一种接口自动化测试用例生成系统,所述系统包括:

http服务模拟模块,用于模拟http服务,用于接收post请求,并配合接口文档,根据输入参数返回相应的输出参数;

接口信息导入模块,用于解析接口文档,将解析后的接口文档数据导入模拟的http服务中;

请求解析模块,用于在http服务界面触发接口请求,通过抓包工具对发送的请求进行抓包,并对抓包数据进行解析,获得目标参数,生成api接口测试用例;

修改校验模块,用于修改api接口测试用例的输入参数,加入返回值用于校验,修改完成后调试测试用例,直至运行成功,将测试用例加入api测试框架中。

优选地,所述目标参数为url、header、method以及已输入参数。

优选地,所述目标参数加入json文件中。

优选地,所述测试用例可组装为场景用例。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

与现有技术相比,本发明通过http服务模拟接口的各种操作,然后通过抓包工具对接口的数据进行抓包分析,并将抓包的数据直接解析成程序可以识别的api接口测试用例,通过对生成的测试用例稍作修改即可完成api的编写;

本发明中api测试脚本自动化生成,无需太多人工干预,只需从api文档中按照一定格式注入到模拟http服务中,后续80%的编写工作都是由程序自动化实现,大大提高了api编写效率;

在研发之前进行测试,能在api提测之前就能运行api测试脚本,能在开发人员开发出真实接口前,就能接入接口测试,保证了测试质量,节省了在真实环境上调试的时间;

极大减少了api脚本调试的时间,由于api用例都是由http服务生成的,调试的时候也是使用http服务,调试出错的概率极小。

附图说明

图1为本发明实施例中所提供的一种接口自动化测试用例生成方法流程图;

图2为本发明实施例中所提供的一种接口自动化测试用例生成系统框图。

具体实施方式

为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

下面结合附图对本发明实施例所提供的一种接口自动化测试用例生成方法与系统进行详细说明。

如图1所示,本发明公开了一种接口自动化测试用例生成方法,所述方法包括以下操作:

模拟http服务,用于接收post请求,并配合接口文档,根据输入参数返回相应的输出参数;

解析接口文档,将解析后的接口文档数据导入模拟的http服务中;

在http服务界面触发接口请求,通过抓包工具对发送的请求进行抓包,并对抓包数据进行解析,生成api接口测试用例;

修改api接口测试用例的输入参数,加入返回值用于校验,修改完成后调试测试用例,直至运行成功,将测试用例加入api测试框架中。

本发明实施例通过http服务模拟接口的各种操作,然后通过抓包工具对接口的数据进行抓包分析,并将抓包的数据直接解析成程序可以识别的api接口测试用例,通过对生成的测试用例稍作修改即可完成api的编写。

本发明实施例需要提供一个模拟的http服务,该服务能够提供各种http请求,该模拟的http服务可以理解为输入参数和输出参数和真实的系统是一模一样的,唯一不同的是中间的过程,如果创建一个用户,真实的系统是创建了一个用户,返回值为200,而本发明实施例模拟http服务就是发了一个post请求,返回值为200,从而达到模拟有输入有输出,而且内部加载的是http服务。

针对研发人员提供的测试文档,对测试文档进行文本解析,并将解析后的数据注入到http服务内部。比如某个post请求,对模拟的http服务发送post请求,模拟的http服务能返回接口文档中所提供的返回数据,因此模拟的http服务配合接口文档就相当于真实的http服务,返回数据和输入参数与接口文档保持一致。

待所有解析后的接口信息都注入到http服务中后,使用http服务界面触发接口请求。本发明实施例中设置http服务界面,方便测试人员对接口请求进行触发模拟。

在发送完接口请求后,使用抓包工具对发送的请求进行抓包操作,并对抓包数据进行解析。例如使用“tom”登录并使用http服务发送请求,然后通过抓包工具进行抓包,并通过相关程序解析成api接口的测试用例,如下json文件所示:

程序会自动解析发送的接口并生成json测试用例,然后需要人工修改校验部分,加入额外的校验点,此处仅仅作为简单示例,json用例之间的逻辑关系,调用关系可参考jsonapi测试框架。

数据包解析过程中,程序获取到抓包数据后,获取数据中的url、header、method以及已输入参数等,然后将这些数据写入到json文件中。

待测试用例生成后,需要人工参与对校验点进行完善,主要加入返回值进行相关的校验,根据返回值进行比对,完成校验工作。当测试用例修改完毕后,将测试用例加入到api测试框架中。

使用本发明实施例提供的模拟http服务,调试测试用例直到测试用例运行成功,如运行失败则对校验点修改接口测试用例的输入参数和校验值,运行成功则将测试用例加入到api测试系统中。

以上为单个的api测试用例,当需要场景测试用例时,则将单个的api测试用例进行组装,即可变成场景用例。

本发明实施例中api测试脚本自动化生成,无需太多人工干预,只需从api文档中按照一定格式注入到模拟http服务中,后续80%的编写工作都是由程序自动化实现,大大提高了api编写效率;在研发之前进行测试,能在api提测之前就能运行api测试脚本,能在开发人员开发出真实接口前,就能接入接口测试,保证了测试质量,节省了在真实环境上调试的时间;极大减少了api脚本调试的时间,由于api用例都是由http服务生成的,调试的时候也是使用http服务,调试出错的概率极小。

如图2所示,本发明实施例还公开了一种接口自动化测试用例生成系统,所述系统包括:

http服务模拟模块,用于模拟http服务,用于接收post请求,并配合接口文档,根据输入参数返回相应的输出参数;

接口信息导入模块,用于解析接口文档,将解析后的接口文档数据导入模拟的http服务中;

请求解析模块,用于在http服务界面触发接口请求,通过抓包工具对发送的请求进行抓包,并对抓包数据进行解析,获得目标参数,生成api接口测试用例;

修改校验模块,用于修改api接口测试用例的输入参数,加入返回值用于校验,修改完成后调试测试用例,直至运行成功,将测试用例加入api测试框架中。

本发明实施例需要提供一个模拟的http服务,该服务能够提供各种http请求,该模拟的http服务可以理解为输入参数和输出参数和真实的系统是一模一样的,唯一不同的是中间的过程,如果创建一个用户,真实的系统是创建了一个用户,返回值为200,而本发明实施例模拟http服务就是发了一个post请求,返回值为200,从而达到模拟有输入有输出,而且内部加载的是http服务。

针对研发人员提供的测试文档,对测试文档进行文本解析,并将解析后的数据注入到http服务内部。比如某个post请求,对模拟的http服务发送post请求,模拟的http服务能返回接口文档中所提供的返回数据,因此模拟的http服务配合接口文档就相当于真实的http服务,返回数据和输入参数与接口文档保持一致。

待所有解析后的接口信息都注入到http服务中后,使用http服务界面触发接口请求。本发明实施例中设置http服务界面,方便测试人员对接口请求进行触发模拟。

在发送完接口请求后,使用抓包工具对发送的请求进行抓包操作,并对抓包数据进行解析。例如使用“tom”登录并使用http服务发送请求,然后通过抓包工具进行抓包,并通过相关程序解析成api接口的测试用例,如下json文件所示:

程序会自动解析发送的接口并生成json测试用例,然后需要人工修改校验部分,加入额外的校验点,此处仅仅作为简单示例,json用例之间的逻辑关系,调用关系可参考jsonapi测试框架。

数据包解析过程中,程序获取到抓包数据后,获取数据中的url、header、method以及已输入参数等,然后将这些数据写入到json文件中。

待测试用例生成后,需要人工参与对校验点进行完善,主要加入返回值进行相关的校验,根据返回值进行比对,完成校验工作。当测试用例修改完毕后,将测试用例加入到api测试框架中。

使用本发明实施例提供的模拟http服务,调试测试用例直到测试用例运行成功,如运行失败则对校验点修改接口测试用例的输入参数和校验值,运行成功则将测试用例加入到api测试系统中。

以上为单个的api测试用例,当需要场景测试用例时,则将单个的api测试用例进行组装,即可变成场景用例。

本发明实施例通过http服务模拟接口的各种操作,然后通过抓包工具对接口的数据进行抓包分析,并将抓包的数据直接解析成程序可以识别的api接口测试用例,通过对生成的测试用例稍作修改即可完成api的编写。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1