我想在JMeter测试计划中获取线程和采样器名称,并将其保留在变量中。
我已经使用BeanShell后处理器保留了测试计划的名称:
导入org.apache.jmeter.services.FileServer;
字符串testPlanName = FileServer.getFileServer()。getScriptName(); vars.put(“ testPlanName”,testPlanName)
我在电子邮件通知中使用它来发送消息,例如“测试计划$ {testPlanName}已收到响应代码$ {responseCode}
但是我想以相同的方式包括线程名称和采样器名称。
我已经尝试添加BeanShell后处理器.getThreadname()和.getSampleName()并导入import org.apache.jmeter.samplers.SampleResult;但这不起作用。
如何获取该名称并将其用作变量?
答案 0 :(得分:2)
共有三个函数,您可以在BeanShell中使用它们:
samplerName
函数返回当前采样器的名称(即标签)。 该功能不适用于没有关联采样器的Test元素。例如测试计划。配置元素也没有关联的采样器。但是,某些配置元素是由采样器直接引用的,例如HTTP Header Manager和Http Cookie Manager,在这种情况下,这些功能是在Http Sampler的上下文中解析的。预处理器,后处理器和断言始终具有关联的采样器。
示例:${__samplerName()}
TestPlanName函数返回当前测试计划的名称(可在“包括计划”中使用以了解调用测试计划的名称)。
示例:${__TestPlanName}
请注意,__ TestPlanName将返回测试计划的文件名,该名称可能与测试计划名称不同。
线程组名称函数仅返回正在执行的线程组的名称。
示例:${__threadGroupName}
有关使用BeanShell
的完整详细信息,请参阅:
答案 1 :(得分:0)
您可以使用BeanShell将线程和采样器名称保存为参数:
String _threadGroup = ctx.getThreadGroup().getName();
String _sampleName=ctx.getCurrentSampler().getName();
或
String _sampleLabel = SampleResult.getSampleLabel();