本发明涉及计算机软件测试,具体涉及一种用于sdk接口测试的异常注入方法、装置、设备及存储介质。
背景技术:
1、在测试工作中,部分场景在正常测试流程下覆盖不了,因此需要构造mock场景,对难以覆盖的进行高效覆盖,但现有技术中构造mock是接口维度mock,通过mock下游系统的返回报文构造异常,这种方式的局限在于无法抛出指定方法的异常,且较多场景无法构造,mock工作效率较低。
技术实现思路
1、基于此,有必要针对上述问题,提出一种sdk接口测试的异常注入方法、装置、设备及存储介质。
2、为实现上述目的,本申请第一方面提供一种用于sdk接口测试的异常注入方法,所述方法包括:
3、生成待注入的异常信息;
4、将所述待注入的异常信息转换为第一url格式信息;
5、将所述第一url格式信息注入sdk接口;
6、所述sdk接口接收第一url格式信息后返回返回响应报文。
7、在一些实施方式中,所述生成待注入的异常信息,具体包括:获取待注入异常的应用所在的ip、端口、服务名、类路径、方法名、异常类型。
8、在一些实施方式中,所述将所述待注入的异常信息转换为第一url格式信息,具体为:将所述ip、端口、服务名、类路径、方法名、异常类型插入到第一url格式:http://{ip}:{端口}/chaosblade?cmd=create jvm throwcustomexception--process{服务名}--timeout 300--classname={类路径}--methodname={方法名}--exceptionjava.lang.exception--exception-message{异常类型}内,得到第一url格式信息。
9、在一些实施方式中,所述sdk接口接收第一url格式信息后返回返回响应报文,之后,所述方法还包括:
10、解析响应报文确定异常id;
11、根据所述异常id以及异常的应用所在的ip、端口转换为第二url格式信息;
12、根据第二url格式信息请求销毁异常信息。
13、在一些实施方式中,所述解析响应报文确定异常id,具体包括:查找响应报文中的exceptionid字段,根据exceptionid字段确定异常id。
14、在一些实施方式中,所述根据所述异常id以及异常的应用所在的ip、端口转换为第二url格式信息,具体包括:将所述异常id、的ip、端口插入到第一url格式:http://{ip}:{端口}/chaosblade?cmd=destroy{exceptionid}内,得到第二url格式信息。
15、在一些实施方式中,所述方法还包括:如果解析响应报文不存在无异常id或者是失败的reponse信息则返回直接失败。
16、为实现上述目的,本申请第二方面提供一种用于sdk接口测试的异常注入装置,所述装置包括:
17、生成模块,所述生成模块用于生成待注入的异常信息;
18、转换模块,所述转换模块用于将所述待注入的异常信息转换为第一url格式信息;
19、注入模块,所述注入模块用于将所述第一url格式信息注入sdk接口;
20、返回模块,所述返回模块用于所述sdk接口接收第一url格式信息后返回返回响应报文。
21、为实现上述目的,本申请第三方面提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
22、生成待注入的异常信息;
23、将所述待注入的异常信息转换为第一url格式信息;
24、将所述第一url格式信息注入sdk接口;
25、所述sdk接口接收第一url格式信息后返回返回响应报文。
26、为实现上述目的,本申请第四方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
27、生成待注入的异常信息;
28、将所述待注入的异常信息转换为第一url格式信息;
29、将所述第一url格式信息注入sdk接口;
30、所述sdk接口接收第一url格式信息后返回返回响应报文。
31、采用本发明实施例,具有如下有益效果:
32、本发明通过生成待注入的异常信息;将所述待注入的异常信息转换为第一url格式信息,将所述第一url格式信息注入sdk接口,利用此url发起http请求,调用阿里开源的chaosblade工具,该工具部署在被测应用所在的服务器上,能够实现对指定的类中的方法注入指定的异常,sdk接口接收第一url格式信息后返回响应报文。实现调用该函数的方法抛出nullpointerexception异常,提升覆盖的场景。
1.一种用于sdk接口测试的异常注入方法,其特征在于,所述方法包括:
2.根据权利要求1所述的用于sdk接口测试的异常注入方法,其特征在于,所述生成待注入的异常信息,具体包括:获取待注入异常的应用所在的ip、端口、服务名、类路径、方法名、异常类型。
3.根据权利要求1所述的用于sdk接口测试的异常注入方法,其特征在于,所述将所述待注入的异常信息转换为第一url格式信息,具体为:将所述ip、端口、服务名、类路径、方法名、异常类型插入到第一url格式:http://{ip}:{端口}/chaosblade?cmd=create jvmthrowcustomexception--process{服务名}--timeout 300--classname={类路径}--methodname={方法名}--exception java.lang.exception--exception-message{异常类型}内,得到第一url格式信息。
4.根据权利要求1-3任意一项所述的用于sdk接口测试的异常注入方法,其特征在于,所述sdk接口接收第一url格式信息后返回返回响应报文,之后,所述方法还包括:
5.根据权利要求4所述的用于sdk接口测试的异常注入方法,其特征在于,所述解析响应报文确定异常id,具体包括:查找响应报文中的exceptionid字段,根据exceptionid字段确定异常id。
6.根据权利要求5所述的用于sdk接口测试的异常注入方法,其特征在于,所述根据所述异常id以及异常的应用所在的ip、端口转换为第二url格式信息,具体包括:将所述异常id、的ip、端口插入到第一url格式:http://{ip}:{端口}/chaosblade?cmd=destroy{exceptionid}内,得到第二url格式信息。
7.根据权利要求1所述的用于sdk接口测试的异常注入方法,其特征在于,
8.一种用于sdk接口测试的异常注入装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。