Jmeter 如何获取测试计划中的线程组数
我有一个小脚本,它有自己的属性和一个线程组。有时,我需要将这个测试脚本合并到一个更大的测试计划中,该计划包含多个线程组。我需要一种方法来说明是否只有一个线程组,然后应用这些用户定义的变量。有什么想法吗?我想我应该添加一个If控制器,但我似乎找不到我应该设置的条件。您可以添加关于您的, 例如,如果您的小脚本是1.jmx,请检查Jmeter 如何获取测试计划中的线程组数,jmeter,Jmeter,我有一个小脚本,它有自己的属性和一个线程组。有时,我需要将这个测试脚本合并到一个更大的测试计划中,该计划包含多个线程组。我需要一种方法来说明是否只有一个线程组,然后应用这些用户定义的变量。有什么想法吗?我想我应该添加一个If控制器,但我似乎找不到我应该设置的条件。您可以添加关于您的, 例如,如果您的小脚本是1.jmx,请检查 ${jexl3( "1.jmx" == "${__TestPlanName}")} 此外,您还可以在测试计划中添加一个变量,名为amILong,值为true,并检查它是
${jexl3( "1.jmx" == "${__TestPlanName}")}
此外,您还可以在测试计划中添加一个变量,名为
amILong
,值为true,并检查它是否存在。实际上,您可以在测试计划中获得线程组的数量,但它需要一些脚本编写(假设使用)
groovy
languageimport org.apache.jmeter.engine.StandardJMeterEngine
导入org.apache.jmeter.threads.ThreadGroup
导入org.apache.jorphan.collections.HashTree
导入org.apache.jorphan.collections.SearchByClass
导入java.lang.reflect.Field
def engine=ctx.getEngine()
def test=engine.getClass().getDeclaredField(“测试”)
test.setAccessible(true)
def testPlanTree=(HashTree)test.get(引擎)
def threadGroupSearch=newsearchbyclass(ThreadGroup.class)
testPlanTree.traverse(threadGroupSearch)
def threadGroups=threadGroupSearch.getSearchResults().size()
log.info('在测试计划中检测到'+线程组+'线程组')
如果(线程组==1){
道具放置('foo','bar'))
}
否则{
道具放置('foo','baz'))
}
foo
JMeter属性,其值为bar
,在其他情况下,属性值将为baz
。如果需要,即在If控制器中,您可以通过as${{uu P(foo,)}
引用属性
演示:
更多信息:我不知道为什么这两个答案都被否决了。它们看起来都是很好的答案,我现在就试试。非常感谢。我只能将投票改为0票或-1票。怪人你只能投一次票,如果有人投了-1票,那么你可以投+1票,投0票。事实上,我不确定我想做的事情是否可行。似乎If控制器中的用户定义变量元素不管If条件如何都会运行…基本上,如果脚本单独运行,我需要设置某些变量,但是如果它合并并在更大的脚本中运行,它应该使用更大的脚本变量…嗯,我被难倒了
import org.apache.jmeter.engine.StandardJMeterEngine
import org.apache.jmeter.threads.ThreadGroup
import org.apache.jorphan.collections.HashTree
import org.apache.jorphan.collections.SearchByClass
import java.lang.reflect.Field
def engine = ctx.getEngine()
def test = engine.getClass().getDeclaredField("test")
test.setAccessible(true)
def testPlanTree = (HashTree) test.get(engine)
def threadGroupSearch = new SearchByClass<>(ThreadGroup.class)
testPlanTree.traverse(threadGroupSearch)
def threadGroups = threadGroupSearch.getSearchResults().size()
log.info('Detected ' + threadGroups + ' Thread Groups in the Test Plan')
if (threadGroups == 1) {
props.put('foo', 'bar')
}
else {
props.put('foo', 'baz')
}