JMeter& Jenkins - 将jmeter参数传递给下游构建

时间:2018-01-16 21:11:24

标签: jenkins jmeter

设置 - 使用jenkins参数testApp和testEnv的jenkins作业。执行批处理如下所示:

C:\jmeter\apache-jmeter-3.2\bin\jmeter.bat -n -t 
C:\JMeter\Scripts\API_scripts\%testApp%.jmx -Jtestenv=%testEnv% -JtestApp=%testApp% -JtestBrowser=NA -l 
C:\AUTO_Results\jtl\%testApp%_%testEnv%.jtl

构建后操作

使用全局规则解析控制台输出(构建文件),以便在Jenkins控制台窗口中记录的失败将认为JMeter脚本失败。 (讨论Jenkins shows JMeter script failure even though the script actually passed

触发参数化构建 - 这是一个单独的jmeter脚本,可以使用PASS / FAIL更新Wiki页面并上传JMeter报告。

enter image description here

问题 - 如何让下游触发构建使用上游脚本中的参数?我设置了Parameter = Current构建参数,但它没有应用这些参数。另外,在上游构建完成之前,我不知道testResult参数的值。我尝试将%testResult%= PASS添加到'预定义参数'框

1 个答案:

答案 0 :(得分:1)

根据Parameterized Trigger Plugin页面:

  

参数部分可以包含以下一项或多项的组合:

     
      
  • 一组预定义属性

  •   
  • 从触发构建的工作空间读取的属性文件中的属性

  •   
  • 当前版本的参数
  •   
  • Subversion修订:确保触发的项目使用触发构建的相同修订版构建。您仍然必须确保这些项目实际配置为检出正确的Subversion URL。
  •   
  • 将矩阵执行限制为子集:允许您指定与在矩阵项目配置中使用的相同的组合过滤器表达式,并进一步限制要运行的下游矩阵构建的子集。
  •   

所以你基本上需要复制你想要在当前的“下游”工作中拥有的参数。

作为当前性能插件限制的解决方法,您可以考虑使用Taurus工具作为包装器运行JMeter,它具有灵活且功能强大的pass/fail criteria子系统,它基本上将返回Jenkins非零退出代码触发在测试中出现问题时构建失败。如果一切顺利,金牛座退出代码将为0,詹金斯认为这是成功的。查看How to Run Taurus with the Jenkins Performance Plugin文章了解更多详情。