一种异常场景测试方法、装置及系统制造方法及图纸

技术编号:37121928 阅读:18 留言:0更新日期:2023-04-01 05:17
本申请实施例提供一种异常场景测试方法、装置及系统,涉及软件测试技术领域。该方法包括应用启动时,读取异常场景服务的配置信息;扫描所述应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写;利用重写后的字节码生成新的类文件,以进行异常场景测试,重写字节码,生成新的类文件,实现对异常场景进行全面测试,提高覆盖率,解决了现有方法覆盖率较低的问题。解决了现有方法覆盖率较低的问题。解决了现有方法覆盖率较低的问题。

【技术实现步骤摘要】
一种异常场景测试方法、装置及系统


[0001]本申请涉及软件测试
,具体而言,涉及一种异常场景测试方法、装置及系统。

技术介绍

[0002]随着业务系统的越来越复杂和快速的迭代,对于测试的要求也越来越高,系统的全量或增量代码覆盖率被作为行内的考核指标。然而,业务系统很多服务在开发时,为了保证功能的高可用,会增加保全机制,对于可能出现异常的地方都加上了捕获(try catch),而对于catch里面的代码必须是出现了异常才能被覆盖,而往往异常是比较难模拟的,如果此类代码占比比较多,会出现覆盖率无法提高或比较难实现高覆盖率的指标。

技术实现思路

[0003]本申请实施例的目的在于提供一种异常场景测试方法、装置及系统,重写字节码,生成新的类文件,实现对异常场景进行全面测试,提高覆盖率,解决了现有方法覆盖率较低的问题。
[0004]本申请实施例提供了一种异常场景测试方法,应用于Agent服务端,所述方法包括:
[0005]应用启动时,读取异常场景服务的配置信息;
[0006]扫描所述应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;
[0007]若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写;
[0008]利用重写后的字节码生成新的类文件,以进行异常场景测试。
[0009]在上述实现过程中,通过定制化的配置信息来满足不同的异常场景覆盖,从异常场景服务获取配置信息并利用配置信息和ASM技术修改字节码,生成新的类文件,实现对异常场景的全面测试,提高覆盖率,解决了现有方法覆盖率较低的问题。
[0010]进一步地,所述异常场景服务包括方法异常,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:
[0011]当第一方法调用第二方法时,对所述第二方法的字节码进行修改,使得所述第一方法调用第二方法出错。
[0012]在上述实现过程中,方法异常即对指定的某个方法抛出指定的异常,从而调用第二方法出错,可以覆盖到第一方法中catch的代码。
[0013]进一步地,所述异常场景服务包括代码行异常,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:
[0014]对未执行代码之前的指定类进行字节码修改,生成指定异常,使得所述未执行代码能够被测试执行。
[0015]在上述实现过程中,对指定的某个类的某一行代码抛出指定的异常,使得未执行代码能够被测试执行,提高覆盖率。
[0016]进一步地,所述异常场景服务包括固定值设置,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:
[0017]对未执行代码之前的对象重新赋值,使得所述未执行代码能够被测试执行。
[0018]在上述实现过程中,对指定的某个类的某一行代码之后设置某一个对象的值,使得代码可以执行到指定逻辑。
[0019]本申请实施例还提供一种异常场景测试装置,所述装置包括:
[0020]配置信息读取信息,用于启动应用时,读取异常场景服务的配置信息;
[0021]扫描判断模块,用于扫描所述应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;
[0022]字节码增强模块,用于若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写;
[0023]类文件生成模块,用于利用重写后的字节码生成新的类文件,以进行异常场景测试。
[0024]在上述实现过程中,通过定制化的配置信息来满足不同的异常场景覆盖,从异常场景服务获取配置信息并利用配置信息和ASM技术修改字节码,生成新的类文件,实现对异常场景的全面测试,提高覆盖率,解决了现有方法覆盖率较低的问题。
[0025]本申请实施例还提供一种异常场景测试系统,所述系统包括:
[0026]业务应用端,用于在应用的启动命令中挂载Agent服务端,以利用所述Agent服务端进行异常场景测试;
[0027]Agent服务端,用于在应用启动时,读取异常场景服务的配置信息;扫描所述应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写;利用重写后的字节码生成新的类文件,以进行异常场景测试。
[0028]在上述实现过程中,通过定制化的配置信息来满足不同的异常场景覆盖,从异常场景服务获取配置信息并利用配置信息和ASM技术修改字节码,生成新的类文件,实现对异常场景的全面测试,提高覆盖率,解决了现有方法覆盖率较低的问题。
[0029]进一步地,所述系统还包括:
[0030]异常场景服务平台,用于基于不同的应用对异常场景服务进行配置,并存储至mysql数据库,以供所述Agent服务端读取配置信息。
[0031]在上述实现过程中,提供异常场景配置功能,可以针对不同的应用配置相关的场景服务,所有内容最终保存在mysql数据库,供agent服务获取使用。
[0032]进一步地,所述异常场景服务平台包括:
[0033]异常场景配置模块,用于设置异常场景的应用、类和方法以及对应的异常场景服务,所述异常场景服务包括方法异常、代码行异常和固定值设置。
[0034]在上述实现过程中,异常场景服务包括方法异常、代码行异常和固定值设置,从而为Agent服务端提供配置信息。
[0035]本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行计算机程序以使所述电子设备执行上述中任一项所述的异常场景测试方法。
[0036]本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的异常场景测试方法。
附图说明
[0037]为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0038]图1为本申请实施例提供的一种异常场景测试方法的流程图;
[0039]图2为本申请实施例提供的基于ASM技术的异常场景测试流程图;
[0040]图3为本申请实施例提供的字节码处理流程图;
[0041]图4为本申请实施例提供的异常场景测试装置的结构框图;
[0042]图5为本申请实施例提供的另一种异常场景测试装置的结构框图;
[0043]图6为本申请实施例提供的异常场景配置界面。
[0044]图标:
[0045]100

配置信息读取模块;200

扫描判断模块;300

字节码增强模块;301

...

【技术保护点】

【技术特征摘要】
1.一种异常场景测试方法,其特征在于,应用于Agent服务端,所述方法包括:应用启动时,读取异常场景服务的配置信息;扫描应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写;利用重写后的字节码生成新的类文件,以进行异常场景测试。2.根据权利要求1所述的异常场景测试方法,其特征在于,所述异常场景服务包括方法异常,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:当第一方法调用第二方法时,对所述第二方法的字节码进行修改,使得所述第一方法调用第二方法出错。3.根据权利要求1所述的异常场景测试方法,其特征在于,所述异常场景服务包括代码行异常,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:对未执行代码之前的指定类进行字节码修改,生成指定异常,使得所述未执行代码能够被测试执行。4.根据权利要求1所述的异常场景测试方法,其特征在于,所述异常场景服务包括固定值设置,所述若属于所述配置信息中的类,则基于所述配置信息对所述类进行字节码重写,包括:对未执行代码之前的对象重新赋值,使得所述未执行代码能够被测试执行。5.一种异常场景测试装置,其特征在于,所述装置包括:配置信息读取信息,用于启动应用时,读取异常场景服务的配置信息;扫描判断模块,用于扫描应用中的类文件,轮询判断所述类文件是否属于所述配置信息中的类;字节码增强模块,用于若属于所述配置信息中的类,则基于所述...

【专利技术属性】
技术研发人员:罗维练
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1