我有一个TCP采样器的测试计划,使用TCP采样器配置定义了HOST和PORT。
我已经为TCP sampler config中定义的TCP连接定义了'port'值,我需要这个值(TCPSampler.port = 3001)作为对服务器的请求的一部分。
我正在尝试使用beanshell预处理器捕获并将其存储在用户定义的变量上。
关于如何实现这一目标的任何想法。
高级感谢您的帮助。
答案 0 :(得分:0)
将以下代码放入“要发送的文字”输入
TCPSampler.port=${__BeanShell(ctx.getCurrentSampler().getPort();,port)}
细分包括:
ctx
- 是JMeterContext类实例的快捷方式。有关所有可用方法,请参阅JavaDoc 因此__Beanshell函数执行脚本并将结果保存到port
变量中,以后可以在当前线程组中的任何位置访问该变量。
对于Beanshell PreProcessor(如果您仍想使用它),相关代码将如下所示:
int port = sampler.getPort();
vars.put("port", String.valueOf(port));
有关Apache JMeter中Beanshell脚本的全面信息,请参阅How to use BeanShell: JMeter's favorite built-in component指南。 `