[发明专利]基于字节码增强技术的动态单元测试系统及方法在审
申请号: | 202110848016.8 | 申请日: | 2021-07-27 |
公开(公告)号: | CN113468072A | 公开(公告)日: | 2021-10-01 |
发明(设计)人: | 郭赫 | 申请(专利权)人: | 中国银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 薛平;周晓飞 |
地址: | 100818 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 字节 增强 技术 动态 单元测试 系统 方法 | ||
本发明提出了一种基于字节码增强技术的动态单元测试系统及方法,涉及自动化测试技术领域,该系统包括:源码管理模块,用于建立Maven离线中央仓库,对Mock工程的源码进行版本管理;Mock源码测试模块,用于通过Pom文件的配置方式,使用Maven工具对目标工程进行构建,将源码嵌入目标工程中;从测试案例库托管模块拉取测试案例,并启动测试;在测试过程中,根据源码及测试案例,对目标工程进行Mock测试操作,并根据字节码增强对运行态字节码进行修改;当测试完成后,生成测试报告,并将测试报告流式传输至测试案例库托管模块;测试案例库托管模块,用于存储测试案例,并在接收到测试报告后,通过可视化操作界面进行展示。
技术领域
本发明涉及自动化测试技术领域,尤指一种基于字节码增强技术的动态单元测试系统及方法。
背景技术
目前针对Java的主流Mock工具有Mockito,Spock,PowerMock,JMockit等,然而这些工具存在以下问题:Mockito与Spock均基于动态代理实现,但是不能Mock私有/静态和构造方法,并且使用复杂,学习成本高;PowerMock是基于自定义类加载器进行实现,虽然可以对私有方法进行Mock,但同样存在易用性低的问题,不利于开发人员使用;JMockit基于运行时字节码修改实现,无法针对Java构造方法进行Mock,并且对IDE支持性较低。
综上所述,目前Java开发测试过程中采用的Mock工具,具有无法Mock私有/静态和构造方法,Mock最小级别限于类,使用成本高,动态执行效率低等问题,大大降级项目开发速度与测试效率,因此,亟需一种可以克服上述缺陷的动态单元测试方案。
发明内容
为解决现有技术存在的问题,本发明提出了一种基于字节码增强技术的动态单元测试系统及方法。本发明基于字节码增强技术,实现方法级别Mock,针对所有方法均可进行低侵入性Mock实现。其中,字节码增强技术具备运行时动态优化特性,针对运行态字节码修改,具备高度灵活性。方法级Mock,实现Mock方法定义与单元测试用例解耦,可建立独立管理的可复用测试用例库,复用性高,大大提升项目实施效率。基于目前开发者Mock编写习惯,可以定制封装易用性高的调用API,解决当前使用难,学习成本高等缺点。
在本发明实施例的第一方面,提出了一种基于字节码增强技术的动态单元测试系统,该系统包括:源码管理模块、Mock源码测试模块及测试案例库托管模块;其中,
所述源码管理模块,用于建立Maven离线中央仓库,对Mock工程的源码进行版本管理;
所述Mock源码测试模块,用于通过Pom文件的配置方式,使用Maven工具对目标工程进行构建,将源码嵌入目标工程中;
从测试案例库托管模块拉取测试案例,并启动测试;在测试过程中,根据源码及测试案例,对目标工程进行Mock测试操作,并根据字节码增强对运行态字节码进行修改;当测试完成后,生成测试报告,并将所述测试报告流式传输至测试案例库托管模块;
所述测试案例库托管模块,用于存储测试案例,并在接收到测试报告后,通过可视化操作界面进行展示。
进一步的,所述源码管理模块具体用于:
在Maven库中建立源码坐标及源码快照信息点,供Mock工程通过Pom文件引入构建。
进一步的,所述Mock源码测试模块包括:
嵌入代理端单元,用于提供低侵入代码集成,提供Mock测试功能;
Maven插件单元,用于联合Maven工具使用,进行工程注入与构建;
代码预处理编译单元,用于提供字节码增强,运行态动态注入测试代码,辅助测试;
依赖聚合单元,用于辅助Maven工具进行工程依赖子组件一次性注入;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国银行股份有限公司,未经中国银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110848016.8/2.html,转载请声明来源钻瓜专利网。