背景
Jmeter有很多的配置元件可以定义变量值在测试过程中使用
比如最常见的两个:
用户自定义变量
CSV数据文件设置
配置元件主要是用于测试前配置,将配置转换为变量设置到Jmeter context中。
而Jmeter默认并没有配置文件(.properties)读取器,但由于Jmeter是开源的,我们自己可以自定义一个配置元件来读取配置文件。
目标
启动Jmeter后,我们可以从配置元件中看到“Property File Reader”,即我们自定义扩展的配置文件。

在测试计划中添加它后,输入配置文件路径:
支持绝对或相对路径
相对路径相对与当前测试计划JMX文件

比如以下是我们的配置文件
创建一个简单的测试,如下图Debug Sampler的响应数据显示了我们读到属性值,在Jmeter中通过表达式${__P(Propertyname)}来获取属性值
Jmeter的插件加载机制
Jmeter启动扫描扩展下的所有实现了JmterGUIComponent和TestBean接口的类,然后进行初始化。

所以只要确保插件的jar包在扩展路径下,默认路径是: JMETER_HOME/lib/ext
Jmeter的GUI机制
由于Jmeter是一个基于Swing的GUI工具,所以对它的GUI框架也需要有一定了解。JMeter内部有两种GUI框架
1.直接继承 JMeterGUIComponent接口的抽象实现类:

扩展配置元件
创建读取配置文件类
TestBean是一个标记接口,它会告诉Jmeter创建Test Bean GUI
我们还需要实现TestStateListener接口来读取配置文件


创建插件GUI类
我们还需要为我们的插件创建GUI类
GUI类的名字必须是[ComponentName]Beaninfo,且在同一个包中
File Path: GUI中的一个显示字段
默认情况:字段是空的,如果没有设置的话

创建插件GUI配置文件
在同一个包中有GUI配置文件,它包含显示名、简短描述等
该文件的命名必须是[ComponentName]Resources.properties

插件目录结构
插件打包
使用mvn clean package命令打包
插件的jar包放到JMETER_HOME/lib/ext下
重启Jmeter
从配置元件中打开-Proerty File Reader

测试插件
增加一个BeanShell Sampler去打印配置文件的值
运行测试,检查Jmeter log

插件测试成功~
本文源码:
https://github.com/zuozewei/Jmeter-Porperty-File-Reader-Plugin