通过Blazemeter Taurus和Jenkins运行jmeter测试

时间:2016-04-29 07:49:40

标签: jmeter performance-testing load-testing jmeter-plugins taurus

我的jmeter测试有问题。

我正在使用Blazemeter Taurus(bzt命令)来运行它,我将它作为Jenkins工作运行。 我的问题是: 我创建了用户定义的值,我将其设置为Jmeter属性,因此我可以从命令行传递它们的参数: example for a property I set

当我传递一个数字时会出现问题: bzt -o modules.jmeter.properties.profileId = 413 -o modules.jmeter.properties.lab = 8050

这些被解析为8050.0和413.0 因为“lab”参数嵌入在url中,所以它会破坏url。

使用jmeter命令通过命令行运行时,这样可以正常工作。

我尝试使用bean shell采样器来解决这个问题:

int a = Integer.parseInt(vars.get(${lab}));
String raw = String.ValueOf(a);
String processed = raw.substring(0,5);    


vars.putObject("lab" ,new String(processed));
props.put("lab", lab);
log.info("this is the new " + ${lab});

但这失败了。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

  1. 关于金牛座问题 - 通过Taurus support forum
  2. 报告
  3. 关于Beanshell解决方法 - 您的代码不正确,您需要按如下方式修改它:

    int lab = (int)Double.parseDouble(props.get("lab"));
    int profileId = (int)Double.parseDouble(props.get("profileId"));
    
    props.put("lab", String.valueOf(lab));
    props.put("profileId", String.valueOf("profileId"));
    
    log.info("lab=" + lab);
    log.info("profileId=" + profileId);
    
  4. 通过-o modules.jmeter.properties传递的内容应通过props简写访问,而不是vars

    演示:

    Beanshell props manipulation Demo

    有关在JMeter测试中使用Beanshell测试元素中的JMeter和Java API的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component指南。