我似乎花了太长时间试图找到一种获取信息的方法,例如Zero=np.zeros(shape=(100, 100),dtype=np.uint8)
count=0
count1=0
for (x, y) in labels:
component = uf.find(labels[(x, y)])
labels[(x, y)] = component
if labels[(x, y)]==0:
Zero[y][x]=int(255)
count=count+1
if count<=32:
continue
elif count>32:
Zeroth = Image.fromarray(Zero)
Zeroth.save(os.path.join(dirs, file_+'_Zero.png'), 'png')
if labels[(x, y)]==1:
One[y][x]=int(255)
count1=count1+1
if count1<=32:
continue
elif count1>32:
First = Image.fromarray(One)
First.save(os.path.join(dirs, file_+'_First.png'),'png')
我希望在两种不同的编程语言中使用https://jmeter.apache.org/usermanual/functions.html,在Groovy代码中(而不是BeanShell等)和Java。
在groovy中,我尝试过使用machineName
,ctx
和vars
无效。
同样,发现如何在Java Sampler中执行相同操作也很棒。据我所知,我可以得到一些信息,例如:使用props
的线程编号,但我找不到交互/使用主要JMeter函数的方法。
一种方法可能是重新实现这些功能,特别是在它们被描述的情况下,例如: &#34; machineName函数返回本地主机名。这使用Java方法JMeterContextService.getContext().getThreadNum()
并将其传递给InetAddress.getLocalHost()
&#34;但我希望没有必要......
谢谢。
答案 0 :(得分:4)
最好的选择是将函数调用放到&#34;参数&#34;部分并将其返回值称为脚本体中的Parameters
或args[0]
,如
def machineName = Parameters
您可以通过MachineName class的实例执行此操作,例如:
def machineName = new org.apache.jmeter.functions.MachineName().compute()
您可以使用JMeterUtils辅助类来执行此操作,如:
def machineName = org.apache.jmeter.util.JMeterUtils.getLocalHostName()
最后(但不推荐这样做,因为编译脚本的缓存不可用)你可以将任何JMeter函数内联到脚本体中
def machineName = '${__machineName()}'
有关JMeter中Groovy脚本的更多信息:Apache Groovy - Why and How You Should Use It