猿Why在JMeter学习笔记与实践一文中,介绍了JMeter的使用方式。
在实践应用中,给每个接口写执行计划让猿Why觉得很麻烦。因为功能的交付往往是一组功能接口。测试工作也需要有一定的业务语义:接口调用顺序、数据合法性等方面也需要做好保证,如果纯手工写接口的测试计划就很难受。另外,如果是在项目进入最后的测试阶段,JMeter测试才被引入的话,写执行计划脚本的工作就很“费体力”。开发人员还需要去学习业务知识,增加了学习成本。
使用过程中想到两点
- 是否可以通过扫描项目中的DispatcherServlet获取接口列表,或基于Swagger获取接口信息,然后通过xstream生成JMeter测试脚本文件。这样可以保证接口不被遗漏,测试全面覆盖。
- 根据业务功能划分模块,根据业务场景进行JMeter脚本测试
查阅资料之后,以上两个想法都可以被实现。第二个相对简单,所以猿Why先来实操这个。
Fiddler生成JMeter脚本
Fiddler在网络抓包的时候经常会被使用到(C#开发)。Fiddler下载安装
Fildder生成JMeter脚本的基本思路:在目标测试的系统中进行点测(按照业务功能),Fiddler会将所有的请求捕获记录,然后按照固定格式(JMeter的XML)输出。
官方文档始终是最好的学习手册。
不过,Fiddler将抓包记录以JMeter执行计划格式导出还需要安装一个插件(插件是DLL文件,可以反编译,可以在GitHub找到源码)。下载后放到指定路径下,重启Fiddler应用即可:
建议:根据需要,在右边的Filter中设置条件,减少干扰数据。
JMeter使用Fiddler导出执行脚本进行测试
JMeter不能直接打开上面导出的文件,还需要JMeter的插件。
jmeter-plugins-manager插件
manager插件可以为JMeter提供插件管理。
jmeter-plugins-json插件
JMete执行计划中的一些序列化反序列化工具类在这个插件包中。(manager插件安装好后,其他插件都可以用manager管理下载)