我正在使用jmeter工具对N个用户进行压力测试。
我使用ant和jenkins自动化测试,我的构建文件被配置为运行目标,即jmeter脚本。
工作正常。
现在我正在尝试参数化jenkins,即尝试在运行时传递用户数“N”有没有办法完成它? 请指教。
Ant脚本:
<project basedir=".">
<property environment="env"/>
<property name="jmeter-home" location="D:/apache-jmeter-2.7"/>
<path id="ant.jmeter.classpath">
<pathelement location="${jmeter-home}/extras/ant-jmeter-1.0.9.jar" />
</path>
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" classpathref="ant.jmeter.classpath" />
<target name="clean">
<delete dir="results"/>
<delete file="jmeter.log"/>
<mkdir dir="results/jtl"/>
<mkdir dir="results/html"/>
</target>
答案 0 :(得分:1)
见https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build。您可以为作业定义参数。然后你只需要将它传递给和-Denv_entry =值(正常的JVM Sswitch,你可以在Jenkins的Ant步骤的高级设置中找到它),它可以将它传递给jmeter(参见这篇文章:http://jmeter.apache.org/usermanual/get-started.html#override)
编辑: 您根本不在蚂蚁脚本中运行JMeter。所以一步一步:
-DTHREADS=value
<property environment="env"/>
<jmeter jmeterhome="c:\jakarta-jmeter-1.8.1" testplan="${basedir}/loadtests/JMeterLoadTest.jmx" resultlog="${basedir}/loadtests/JMeterResults.jtl"> <jvmarg value="-Xincgc"/> <jvmarg value="-Xmx128m"/> <jvmarg value="-DTHREADS=${env.THREADS}"/> </jmeter>
然后你将在JMeter中拥有一个系统属性。如果你想拥有一个JMeter属性,请使用-JTHREADS = $ {env.THREADS}。
EDIT2: 加上这个:
<taskdef name="jvmarg" classname="org.programmerplanet.ant.taskdefs.jmeter.Arg" classpathref="ant.jmeter.classpath"/>
然后应该工作。
答案 1 :(得分:0)
我认为如果你没有尝试N次运行Jenkins作业,这会是一个更好的方法,但是将这个N参数传递给你的ant脚本(参见关于如何从jenkins将参数传递给ant的其他答案)并制作处理并行启动测试N次。