基于JMeter的Dubbo API自动化测试实战(五)

一、ENV Data Set插件介绍

一般公司都会有多套测试环境,服务器地址都不一样,当需要编写大量可复用的脚本时,现有可行的方案是把服务器地址等测试环境信息变量化,例如将服务器ip地址写入jmeter变量中,变量名设为server_address,然后在脚本中通过 ${server_address} 引用,在测试执行时会替换会真实值。

那么现在的问题是如何将测试环境信息变量化,使用CSV Data Set Config插件也能解决上述问题,变量名写在脚本中,但变量值又必须写在文件里,维护起来麻烦且不直观。

ENV Data Set插件就是解决上述问题所开发的JMeter插件,通过维护一个 env后缀的配置文件,变量名和变量值都维护在文件中(其实就是json串),在测试执行前加载指定名称的配置文件里的测试环境配置信息,然后再脚本中通过 ${keyName} 占位符引用。

ENV Data Set插件的目的是将测试环境信的配置变量化,如服务器地址、数据库各种信息等,以提高脚本的可移植性和可维护性,如测试环境更换后,只需新增一个对应的配置文件,脚本也只需要修改配置文件的名称即可达到复用的效果。

 

二、ENV Data Set插件使用说明

请确保插件的jar包已放至JmeterHome/lib/ext目录下。

1. 新建测试环境配置文件

1)在 JmeterHome根目录下新建 config文件夹;

2)在 config文件夹下新建 demo.env文件;

3)编辑 demo.env文件,格式为: {"keyName1":"value1","keyName2":"value2",…….},例如:

{"server_address":"127.0.0.1:20880","db_user_name":"db_name","db_password":"db_password"}

 

2. 添加插件

1)打开Jmeter,在测试计划(TestPlan)下右键添加配置元件 - ENV Data Set;

2)在 ENV Data Set中ConfigName选择第一步新建的测试环境配置文件名称;

3)在编写脚本时通过占位符 ${keyName} 引用。

 

三、ENV Data Set插件源码分析

要开发一个JMeter Config插件,必需实现两部分代码,第一部分为GUI代码,第二部分为TestElement代码。现在我们新建ENVDataSetGui.java和ENVDataSet.java。

1. ENVDataSetGui.java

GUI类只需要继续AbstractConfigGui抽象类并实现对应的方法即可,详细代码可到Github上查看。

 

2. ENVDataSet.java

TestElement子类需要继承ConfigTestElement和实现TestStateListener接口。

1)testStarted()

@Override
public void testStarted(String s) {
    // 把测试环境配置文件名添加到jmeter线程变量中
    JMeterContextService.getContext().getVariables().put(CONFIG_NAME, getFileName());
    // 将配置文件中的所有属性逐一添加到jmeter线程变量中
    HashMap<String, String> envMap = getEnvMap(getFilePath());
    for (Map.Entry<String, String> entry : envMap.entrySet()) {
        JMeterContextService.getContext().getVariables().put(entry.getKey(), entry.getValue());
    }
}

 

完整代码请移步至Github查看:https://github.com/YeKelvin/jmeter-plugins/tree/master/configs

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值