UnitAuto——机器学习单元测试平台 (三)

UnitAuto是一个机器学习驱动的自动化单元测试平台,无需编写测试代码即可对方法进行全方位测试。其优势在于零代码、运行时测试及永久保存测试用例,支持随机参数和多次数执行。然而,它存在一些不足,如异常处理不完善,不支持对象注入,且平台尚处雏形,稳定性有待提升。此外,对于重要方法的多角度测试,可通过设置父类选项构建测试组。
摘要由CSDN通过智能技术生成

UnitAuto自动化单元测试平台

(一)官方描述

机器学习单元测试平台,零代码、全方位、自动化 测试 方法/函数 的正确性和可用性

相比 JUnit, JTest, Mockito, Mockk 等一堆 Compiling testing 工具:
1.其它工具需要每个方法都写一大堆测试代码,需要开发成本、需要解决测试代码的 bug、业务代码更改后需要同步修改测试代码等;
UnitAuto 不需要写任何代码,直接读取方法的属性,自动注入参数,拿到返回值和类成员变量,机器学习自动化校验。

2.UnitAuto 这种 Runtime testing 工具无需 Mock 环境(Application, Context 等),
更不用为 无法有效地 Mock 环境相关类、第三方登录未提供 Mock 支持 等而头疼,
只要被测方法满足 有 return 值、有 interface 回调、改变成员变量 field 这 3 点中至少一点就能测。

(二)使用参考

(1)方法上传和方法调用

在这里插入图片描述
UnitAuto提供了俩个基本的endpoint端点,主要功能如下:
method/list:通过扫描项目中的可访问的 package, class, method 来生成和导入测试用例(根据路径扫描项目下的可访问的所有类,然后将类下的方法信息上传到平台)
method/invoke:HTTP 远程调用被测服务/App,转至内部 构造/获取 实例来 invoke 动态执行方法(根据上传到平台的方法信息,远程调用并通过反射执行该方法,在此过程中会自动填充参数)

测试平台:
http://apijson.org:8000/unit/
在这里插入图片描述
【备注】
1:通过这个平台进行上传和测试目前看存在很多的问题,通过PostMan是可以扫描到所有的方法信息,但是该平台持续卡在上传中,一直没有反应,但是自己指定单个方法路径是可以调用的,目前并未找到完善的解决方法

2:需要严格注意指定路径的分隔符,否则会有问题

【执行单元测试】
备注:这里是只进行了单个方法的测试,是手动操作的,该平台可以通过一键自动执行所有上传的方法,并且可以智能的设置参数和次数
在这里插入图片描述

(2)设置父类选项(测试组)

需求:如果我们对于比较重要且分支和参数比较多的方法,我们想要进行多方面的测试,那么可以通过添加父类选项的方式来构建
在这里插入图片描述
1:设置参数0,从-10到100随机给出生成参数,此外下面一样同样也设置了测试,他设置的从-10到100顺序给出参数
2:设置执行的次数,这里会执行100次
3:添加到组中
在这里插入图片描述
下面创建了俩个组,然后都上传了,那么就可以在分组中统一执行测试用例,并且通过设置左侧的次数执行,对于测试结果和执行次数可以通过右下方的数据面板查看到
在这里插入图片描述
【随机测试常用语句参考】
在这里插入图片描述
示例:

随机参数
methodArgs/0/value: RANDOM_INT(-10,100)

顺序参数
methodArgs/0/value: ORDER_INT(-10,100)

指定参数列表
methodArgs/0/value: ORDER_INT(1,2,5,7,1000)

(三)总结和分析

优势

【1】同ApiJson一样后端也不需要写单元测试用例了,所有的单元测试可以只需要内部提供俩个特定的endPoint即可,通过平台可以上传所有方法
【2】可以测试所有public方法,包括静态和非静态方法
【3】测试用例是可以在平台永久保存
【4】支持随机测试,随机参数,指定次数

劣势

【1】在测试抛出异常的代码用例时,该平台经常出现未扫描到错误信息,并将部分错误测试用例予以通过,这个还需要完善,否则将严重影响产品质量和回归测试
【2】到目前为止,并未发现该单元测试平台支持自动注入对象的测试,如果测试方法是SpringBean,并不会自动注入,也没有发现提供了什么方式来支持这个操作,如果这个不予以支持的话,那么实际使用不太适合
【3】平台目前还处于雏形阶段,出现的问题以及需要完善的地方还非常的多
【4】UnitAuto所测试的必须是public修饰的,否则会报错方法不存在

参考

1、APIJSON-Java-Server代码
https://github.com/APIJSON/APIJSON-Demo/tree/master/APIJSON-Java-Server
2、UnitAuto参考文档
https://github.com/TommyLemon/UnitAuto
3、APIJSON通用文档
https://github.com/Tencent/APIJSON/blob/master/Document.md
4、apijson-doc
https://vincentcheng.github.io/apijson-doc/zh/

5、APIJSON集成框架
https://github.com/APIJSON/apijson-framework

6、UnitAuto视频参考
https://www.bilibili.com/video/BV1Tk4y1R7Yo?from=search&seid=15448805103016842306

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZWZhangYu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值