使用beanshell预处理器存储Jmeter采样器属性值

使用beanshell预处理器存储Jmeter采样器属性值,jmeter,preprocessor,beanshell,Jmeter,Preprocessor,Beanshell,我有一个使用TCP采样器的测试计划,其中主机和端口是使用TCP采样器配置定义的 我已经为TCP sampler配置中定义的TCP连接定义了“端口”值,我需要这个值TCPSampler.port=3001作为服务器请求的一部分 我正在尝试使用beanshell预处理器捕获并存储在用户定义的变量上 任何关于如何实现这一点的想法 高级感谢您的帮助。将以下代码转换为文本以发送输入 TCPSampler.port=${__BeanShell(ctx.getCurrentSampler().getPort(

我有一个使用TCP采样器的测试计划,其中主机和端口是使用TCP采样器配置定义的

我已经为TCP sampler配置中定义的TCP连接定义了“端口”值,我需要这个值TCPSampler.port=3001作为服务器请求的一部分

我正在尝试使用beanshell预处理器捕获并存储在用户定义的变量上

任何关于如何实现这一点的想法


高级感谢您的帮助。

将以下代码转换为文本以发送输入

TCPSampler.port=${__BeanShell(ctx.getCurrentSampler().getPort();,port)}
具体包括:

函数,该函数允许在脚本的任何位置执行任意beanshell代码 ctx-是类实例的快捷方式。有关所有可用方法,请参见JavaDoc -是前面提到的JMeterContext类方法,它提供对当前采样器实例的访问 类的方法是否与您的情况相同?它将是TCP采样器 所以_ubeanshell函数执行脚本并将结果保存到端口变量中,该变量以后可以在当前线程组的任何位置访问

对于Beanshell预处理器,如果仍要使用它,则相关代码如下所示:

int port = sampler.getPort();
vars.put("port", String.valueOf(port));
有关ApacheJMeter中Beanshell脚本的全面信息,请参阅指南。
`

工作起来很有魅力。。。非常感谢!