一个自定义调用项目内方法的测试工具~

工具介绍

方法定位使用,名如其名。当前开源社区中有很多很多基于接口的测试工具,但在实际的开发过程中,有很多场景都需要测试调用某个方法;

或在项目出现业务漏洞时,也需要直接用设置好的参数来判断业务接口的某个方法是否可行,来以此定位bug位置。

厌倦了"test"接口中,new 方法调用的这种手法,是时候有必要去实现一个去定位方法与参数,简化方法调用的工具了。

简单页面 ❀

在这里插入图片描述
工具定位 🏠

拆箱即用,搭载在本项目中。
注意点:在项目启动时会生成本项目的类名与方法名搜索库,在项目结束后悔自动删除搜索库文件,即要注意:确保项目的正常启动和结束

工具使用 🚩

因为工具属于页面装载,所以只用明白各输入框、按钮的出现意义,以下,从页面从上往下,从左往右介绍。

快速开始 🏃‍

2022-4-11: 0.0.1-SNAPSHOT:
2022-4-12: 0.0.2.RELEASE;
2022-4-14: 0.0.3-SNAPSHOT

引入依赖 📕

<dependency>
   <groupId>xyz.leyuna</groupId>
   <artifactId>waylocation-spring-boot-start</artifactId>
   <version>0.0.3</version>
</dependency>


打开页面

XXXXX[项目地址]/waylocation

配置文件 ⚙

waylocation.saveType=XXX 
waylocation.savePath = xxx

复制代码

saveType:决定历史数据[历史类、历史方法、历史调用]的保存方式。

“object” ,默认值,保存本次测试的所有信息,仅当前会话应用有用
“cookie” ,仅保留少量信息,但是基于cookie会话
“file” ,写入机械磁盘中,除非手动清除,则永不消失,生成的excel文档:savePath+/history.xlsx

savePath:保存方式为file时,记录文档的保存路径。

默认为C:/waylocation

版本环境 🌳
在这里插入图片描述
使用场景

搜索类名

场景一:

点击输入框,查询历史使用类,加载至搜索库中选择。

场景二:

点击输入框,输入任一字符,在项目搜索库中,以此字符 例如字符为Test,拆为T、e、s、t在数据库中最佳匹配到相关类类名,加载至输入框中。

场景三:

点击输入框,输入任一字符,但是不选择输入框中,在后续操作中属于类名模糊场景处理。

搜索方法名

场景一:

点击输入框,如果类名输入框中有值[即在上述场景一、二、三中],则出现两类分支:
如果选择了类名输入框的值,属于精准类名,在输入框中加载该类下的方法。
如果没有选择输入框的值,属于类名模糊场景,根据该类名在数据库中模糊搜索到最佳匹配类,加载该类方法。

场景二:

点击输入框,如果类名输入框没有值:输入框加载历史使用方法,并且自动装填本次历史使用的类名。
场景三:

点击输入框,在精准类名的场景或是类名模糊场景下,输入任一字符,在搜索库中模糊搜索,加载至输入框中。

入参

入参解析。

场景一:

一定在确定了类,即点击了类名搜索的输入框后触发。
定义到方法后,解析该方法的入参。

解析场景:

1、多参,页面上出现参数个数的输入框。
2、参数为int、Integer等的基本类型或包装类型,赋予jdk规则的默认值。
3、参数为本项目类,迭代解析该类层级,迭代规则:
参数为int、Integer等基本类型或包装类型,赋予默认值。
参数为本项目对象,迭代本对象到当前循环。
参数为集合,迭代其泛型到当前循环,获得一个新对象加入到集合中。
参数为非项目对象,不解析,返回null。
参数为抽象属性[接口和接口类],不解析,返回null。
4、参数为集合,迭代其泛型到当前循环,获得一个新对象加入到集合中。

出参

场景一:

出参为void,返回void。

场景二:

出参有值,则解析情况为入参相同逻辑。

历史导出

导出本次页面面板值,即包括:
1、类名
2、方法名
3、入参
4、出参结果或出参结构 [看有无调用]
保存到自定义路径,工具规定模板Excel

在这里插入图片描述
历史调用

展示历史调用,选择一条填充本次测试数据,包括:

1、类名

2、方法名

3、入参

4、出参结果
在这里插入图片描述
测试

方法调用,在根据文档填写好入参前提下。
方法调用类,invoke(Object )
Object,提供情况:
当方法涉及ioc自动注入属性时,从容器中根据字节码取出。
当方法没有无参构造器时,默认从ioc中取出,其次是自动实现本方法类最低限度的一个构造器[随机赋值]
当方法场景不属于上述情况时,通过newInstance()获取

场景一:

当方法为普通方法,即无数据库操作时,调用方法,返回结果

场景二:

当方法涉及数据库操作时,调用方法。

返回:

1、该方法涉及的数据库表以及表操作
2、该方法数据库操作的数据展示
3、回滚事项[伪回滚],即实际操作了插入,记录插入数据的sql,对sql分析进行逆执行。

学习安排上

如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

在这里插入图片描述

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群即可自行领取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值