2012-10-11 56 views
3

我在我的BeanShell后处理下面的代码执行一个C#程序和它的输出写入到JMeter的控制台:Jmeter,beanshell - 如何将exec()输出写入字符串?

import it.sauronsoftware.base64.Base64; 

prev.setDataEncoding("ANSI"); 
encoded = Base64.encode(prev.getResponseDataAsString()); 
print (exec("C:\\prog\\prog.exe decode " + encoded)); 

它的工作速度不够快,但我想输出从prog.exe传递给一个字符串(然后输出该字符串作为响应数据)。是否有可能使用beanshell后处理器来做到这一点?如果不是,那么最简单的方法是什么?

回答

0

在每个webservice之后使用OS Process Sampler,此采样器将处理响应的解码。

请注意,这正是您在这里做的与Beanshell的额外成本。

它已在JMeter 2.7中引入,并允许您运行C#程序并获取输出为ResponseData。

+0

我不确定它是否适合我的情况,因为我必须首先获得服务器响应才能使用此程序进行处理,并且至少有十几个SOAP采样器在我的测试计划中获得了不同的响应,采样器之间的响应可能很困难。 –

+0

我不明白你为什么觉得这很困难。任何使用日志文件的方式都不是一种选择,因为在加载测试期间,它们将会混合使用 –

+0

只需将后处理器添加到整个线程组中,并将exec()输出提取到字符串中,对于beanshell也可能有用预处理器和断言。但是,OS过程采样器适用于我,因此我将其标记为答案。谢谢你的帮助! –

相关问题