variables - 如何在 JMeter 中获取线程和采样器名称
问题描述
我想在 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; 但它不起作用。
我怎样才能得到这些名字并像变量一样使用它?
解决方案
共有三个函数,您可以在 BeanShell 中使用它们:
-
该
samplerName
函数返回当前采样器的名称(即标签)。该功能在没有关联采样器的测试元素中不起作用。例如测试计划。配置元素也没有关联的采样器。然而,一些配置元素被采样器直接引用,例如 HTTP Header Manager 和 Http Cookie Manager,在这种情况下,函数在 Http Sampler 的上下文中解析。预处理器、后处理器和断言总是有一个关联的采样器。例子:
${__samplerName()}
-
TestPlanName 函数返回当前测试计划的名称(可以在 Include Plans 中使用以知道调用测试计划的名称)。
例子:
${__TestPlanName}
请注意,__TestPlanName 将返回测试计划的文件名,它可以与测试计划名称不同。
-
线程组名称函数只返回正在执行的线程组的名称。
例子:
${__threadGroupName}
有关使用的完整详细信息BeanShell
,请参阅:
推荐阅读
- linux - :不是一个有效的标识符 bash 出口说
- angular - Angular:使用搜索选择下拉(Mat-Select)并填写数据库。初始值问题
- javascript - 如何让 svg 图像仅在 div 标签内完全移动?
- r - 有条件地预测 R 中各个日期(取决于降雨量)的每日观察量
- angular - Angular:当 API 使用 Angular 给出错误消息时如何控制台错误消息
- c# - 将 AWS CodeArtifact CredentialProvider 与 .Net Core 一起使用 - 由于找不到指定的命令或文件,因此无法执行
- html-table - 引导表因超过 1,000 行而失败
- docusignapi - DocuSign 在使用 POST 请求发送信封时添加自定义电子邮件消息、主题和语言
- r - 即使支持,Stargazer 也无法识别 tobit
- python - 如何始终使用 Selenium 找到最新的博客文章