通过Blazemeter Taurus和Jenkins进行jmeter测试

通过Blazemeter Taurus和Jenkins进行jmeter测试,jmeter,performance-testing,load-testing,jmeter-plugins,taurus,Jmeter,Performance Testing,Load Testing,Jmeter Plugins,Taurus,我的jmeter测试有问题 我使用Blazemeter Taurus(bzt命令)来运行它,我将它作为Jenkins作业运行。 我的问题是: 我创建了用户定义的值,将其设置为Jmeter属性,以便可以从命令行传递参数: 当我传递一个数字时会出现问题: bzt-o modules.jmeter.properties.profileId=413-o modules.jmeter.properties.lab=8050 它们被解析为8050.0和413.0 因为“lab”参数嵌入到url中,所以它会

我的jmeter测试有问题

我使用Blazemeter Taurus(bzt命令)来运行它,我将它作为Jenkins作业运行。 我的问题是: 我创建了用户定义的值,将其设置为Jmeter属性,以便可以从命令行传递参数:

当我传递一个数字时会出现问题: 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});
但这失败了。 任何帮助都将不胜感激

  • 关于金牛座问题-通过
  • 关于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);
    
  • 作为通过
    -o modules.jmeter.properties传递的内容,应该通过
    props
    速记,而不是
    vars

    演示:


    有关在JMeter测试中使用Beanshell测试元素的JMeter和JavaAPI的更多信息,请参阅指南

    谢谢@Dmitri T。我将在下周查看此消息,看看问题是否得到解决。我会更新。