应用的测试方法、系统、装置及电子设备与流程
本技术涉及软件测试领域,具体而言,涉及一种应用的测试方法、系统、装置及电子设备。
背景技术:
1、在微服务与分布式架构广泛应用的背景下,单个应用通常需要调用大量外部服务或第三方接口,例如支付网关、消息推送服务、认证授权接口、库存服务等。这种架构在开发、测试、演示、故障演练等阶段带来了多重挑战:
2、(1)、环境高度不可控。依赖的第三方服务可能处于开发状态,接口不稳定、频繁变更或直接不可用;测试环境中的下游服务可能因资源不足、配置错误等原因宕机,导致联调测试被阻塞。在跨团队协作时,这种现象尤其严重,一个团队的进度常因另一个团队的服务未就绪而被卡住,导致测试时长难以控制。
3、(2)、复杂场景难以构造。模拟接口返回特定异常状态码(如5xx服务器错误)、超时或返回特殊业务错误码(如“余额不足”)等情况,在真实环境中难以稳定复现,然而这类异常场景的覆盖率对保障软件健壮性至关重要。若要实现异常场景的全覆盖,需要占用更多测试时长。
4、(3)、调用真实服务伴生成本与限制。频繁调用真实第三方支付、短信、地图等接口可能产生额外费用,或触及接口配额限制,甚至可能触发风控规则。此外,大量自动化测试每次新建订单、发送通知等会消耗测试数据,清洗成本高,影响测试时长。
5、因此,相关技术中依赖于第三方服务对应用进行测试,存在测试效率低下的问题。
6、针对相关技术中的上述问题,目前尚未提出有效的解决方案。
技术实现思路
1、本技术的主要目的在于提供一种应用的测试方法、系统、装置及电子设备,以解决相关技术中依赖第三方服务对应用进行测试,存在测试效率低的问题。
2、为了实现上述目的,根据本技术的一个方面,提供了一种应用的测试方法。该方法包括:在接收到针对目标应用的部署指令的情况下,基于字节码增强机制将代理程序动态注入至目标应用;在接收到代理程序发送的目标调用请求的请求特征的情况下,根据请求特征判断目标调用请求是否命中预设的模拟规则,得到判断结果,其中,代理程序在目标应用的测试过程中,在检测到目标应用中的业务线程发起目标调用请求的情况下发送请求特征,目标调用请求用于调用第三方服务;将判断结果反馈给代理程序,其中,代理程序在目标调用请求命中模拟规则的情况下,丢弃目标调用请求,并向业务线程反馈模拟规则所指示的响应结果;在目标调用请求未命中模拟规则的情况下,放行目标调用请求,以使第三方服务生成响应结果;基于业务线程在测试过程中对接收到的响应结果的处理方式,确定目标应用的测试结果。
3、可选的,应用的测试方法还包括:从部署指令中获取目标应用的应用注册信息;根据应用注册信息确定与目标应用部署在相同服务器上的控制模块;向控制模块发送目标指令,其中,控制模块在接收到目标指令的情况下,基于字节码增强机制将代理程序动态注入至目标应用。
4、可选的,应用的测试方法还包括:控制模块在通过控制模块基于字节码增强机制将代理程序动态注入至目标应用的过程中,向代理程序注入参数字符串,其中,参数字符串至少包括第一参数和第二参数,第一参数表示模拟功能是否已开启,第二参数表示模拟规则的获取地址。
5、可选的,应用的测试方法还包括:从规则数据库中获取目标应用对应的所有已启用的模拟规则;将目标调用请求的请求特征与已启用的模拟规则中的匹配条件进行比对;若存在与请求特征相匹配的匹配条件,则确定判断结果表示目标调用请求命中预设的模拟规则;若不存在与请求特征相匹配的匹配条件,则确定判断结果表示目标调用请求未命中预设的模拟规则。
6、可选的,应用的测试方法还包括:代理程序在目标应用的测试过程中,在检测到目标应用中的业务线程发起目标调用请求的情况下,根据预设参数判断模拟功能是否已开启,在模拟功能已开启的情况下,发送目标调用请求对应的请求特征。
7、可选的,应用的测试方法还包括以下之一:在接收到模拟功能关闭指令的情况下,向代理程序发送第一关闭指令,其中,代理程序在接收到第一关闭指令的情况下,对预设参数进行更新;在接收到模拟功能关闭指令的情况下,向控制模块发送第二关闭指令,其中,控制模块在接收到第二关闭指令的情况下,基于字节码增强机制将目标代理程序动态注入至目标应用,通过目标代理程序对预设参数进行更新。
8、可选的,应用的测试方法还包括:在接收到代理程序上传的日志条目的情况下,存储日志条目,其中,代理程序在目标调用请求未命中模拟规则的情况下,根据预设参数判断日志采集功能是否已开启;在日志采集功能已开启的情况下,基于目标调用请求和第三方服务的响应结果生成日志条目。
9、为了实现上述目的,根据本技术的另一方面,提供了一种应用的测试系统。该系统包括:代理程序,代理程序用于在目标应用的测试过程中,在检测到目标应用中的业务线程发起目标调用请求的情况下,向中心服务模块发送目标调用请求的请求特征,目标调用请求用于调用第三方服务;以及在目标调用请求命中预设的模拟规则的情况下,通过代理程序丢弃目标调用请求,并向业务线程反馈模拟规则所指示的响应结果;在目标调用请求未命中模拟规则的情况下,通过代理程序放行目标调用请求以使第三方服务生成响应结果;中心服务模块,用于在接收到针对目标应用的部署指令的情况下,基于字节码增强机制将代理程序动态注入至目标应用;在接收到代理程序发送的请求特征的情况下,根据请求特征判断目标调用请求是否命中预设的模拟规则,得到判断结果,将判断结果反馈给代理程序;基于业务线程在测试过程中对接收到的响应结果的处理方式,确定目标应用的测试结果。
10、为了实现上述目的,根据本技术的另一方面,提供了一种应用的测试装置。该装置包括:第一处理模块,用于在接收到针对目标应用的部署指令的情况下,基于字节码增强机制将代理程序动态注入至目标应用;判断模块,用于在接收到代理程序发送的目标调用请求的请求特征的情况下,根据请求特征判断目标调用请求是否命中预设的模拟规则,得到判断结果,其中,代理程序在目标应用的测试过程中,在检测到目标应用中的业务线程发起目标调用请求的情况下发送请求特征,目标调用请求用于调用第三方服务;第二处理模块,用于将判断结果反馈给代理程序,其中,代理程序在目标调用请求命中模拟规则的情况下,丢弃目标调用请求,并向业务线程反馈模拟规则所指示的响应结果;在目标调用请求未命中模拟规则的情况下,放行目标调用请求,以使第三方服务生成响应结果;第一确定模块,用于基于业务线程在测试过程中对接收到的响应结果的处理方式,确定目标应用的测试结果。
11、可选的,第一处理模块还包括:第一获取子模块,用于从部署指令中获取目标应用的应用注册信息;第一确定子模块,用于根据应用注册信息确定与目标应用部署在相同服务器上的控制模块;发送子模块,用于向控制模块发送目标指令,其中,控制模块在接收到目标指令的情况下,基于字节码增强机制将代理程序动态注入至目标应用。
12、可选的,控制模块在通过控制模块基于字节码增强机制将代理程序动态注入至目标应用的过程中,向代理程序注入参数字符串,其中,参数字符串至少包括第一参数和第二参数,第一参数表示模拟功能是否已开启,第二参数表示模拟规则的获取地址。
13、可选的,判断模块还包括:第二获取子模块,用于从规则数据库中获取目标应用对应的所有已启用的模拟规则;比对子模块,用于将目标调用请求的请求特征与已启用的模拟规则中的匹配条件进行比对;第二确定子模块,用于若存在与请求特征相匹配的匹配条件,则确定判断结果表示目标调用请求命中预设的模拟规则;第三确定子模块,用于若不存在与请求特征相匹配的匹配条件,则确定判断结果表示目标调用请求未命中预设的模拟规则。
14、可选的,代理程序在目标应用的测试过程中,在检测到目标应用中的业务线程发起目标调用请求的情况下,根据预设参数判断模拟功能是否已开启,在模拟功能已开启的情况下,发送目标调用请求对应的请求特征。
15、可选的,应用的测试装置还包括:第一发送模块,用于在接收到模拟功能关闭指令的情况下,向代理程序发送第一关闭指令,其中,代理程序在接收到第一关闭指令的情况下,对预设参数进行更新;第二发送模块,用于在接收到模拟功能关闭指令的情况下,向控制模块发送第二关闭指令,其中,控制模块在接收到第二关闭指令的情况下,基于字节码增强机制将目标代理程序动态注入至目标应用,通过目标代理程序对预设参数进行更新。
16、可选的,应用的测试装置还包括:存储模块,用于在接收到代理程序上传的日志条目的情况下,存储日志条目,其中,代理程序在目标调用请求未命中模拟规则的情况下,根据预设参数判断日志采集功能是否已开启;在日志采集功能已开启的情况下,基于目标调用请求和第三方服务的响应结果生成日志条目。
17、为了实现上述目的,根据本技术的另一方面,提供了一种计算机可读存储介质,计算机可读存储介质包括存储的可执行程序,其中,在可执行程序运行时控制计算机可读存储介质所在设备执行上述的应用的测试方法。
18、为了实现上述目的,根据本技术的另一方面,提供了一种电子设备,电子设备包括存储器,存储有可执行程序;处理器,用于运行程序,其中,程序运行时执行上述的应用的测试方法。
19、为了实现上述目的,根据本技术的另一方面,提供了一种计算机程序产品,包括计算机指令,计算机指令被处理器执行时实现上述的应用的测试方法的步骤。
20、在本技术实施例中,基于字节码增强机制将代理程序动态注入至目标应用,有助于实现在目标应用运行时向目标应用动态注入额外的目标调用请求处理逻辑,目标应用的业务代码中无需引入任何导入、注解或配置,也不依赖特定框架,目标应用无需重启,有助于降低开发成本、提高测试效率。进一步地,通过根据目标调用请求是否命中模拟规则,确定目标调用请求不同的响应结果的生成方式,有助于灵活构造各种异常和边界场景,提高目标应用接收到的响应结果的丰富性,从而在测试环境中高效验证目标应用的业务逻辑正确性,进一步提高测试效率。
21、由此可见,本技术所提供的方法达到了在目标应用的测试过程中自适应地向目标应用反馈模拟生成的响应结果的目的,实现了提高测试效率的技术效果,解决了相关技术中依赖第三方服务对应用进行测试,存在测试效率低的技术问题。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com