【问题标题】:how to create and call a custom function in jmeter如何在 jmeter 中创建和调用自定义函数
【发布时间】:2013-05-20 17:27:12
【问题描述】:

我正在使用 JMeter 进行负载测试,我正在创建 1000 个线程,每个线程发送一个 http 请求如下:

{"email" : "test${__threadNum}@test.com"}

这很好,现在我需要添加一个更复杂的场景。我需要传递使用我的自定义加密方法加密的电子邮件。

something like:  {"email" : MyCustomClass.encypt("test${__threadNum}@test.com")}

有没有办法从 JMeter 调用自定义 java 类。

【问题讨论】:

  • 对此有何反馈?如果答案是好的,你应该接受它,以便它帮助别人
  • 其实我想包含我的jar,然后从那个jar中调用一个方法,到目前为止我没有成功。
  • 你把罐子放在哪里了?你确定没问题吗?如果是,请查看 jmeter.log 并显示错误
  • 我把它放在 lib/ext 文件夹中
  • 你必须把它放在 lib 而不是 lib/ext

标签: java jmeter load-testing performance-testing


【解决方案1】:

您可以使用 JSR 223 采样器或预处理器,并使用 Groovy 作为底层语言。 为此,在 jmeter/lib 文件夹中添加 groovy-all.jar。

如果你想使用你已经存在的jar,也把它放在jmeter/lib中。

【讨论】:

  • 在jmeter中调用java方法的语法是什么。我希望在请求正文 {"email" : MyCustomClass.encypt("test${__threadNum}@test.com")} 中有这样的内容,但不确定语法
  • 采样器(groovy 或 beanshell)使用 vars.put (''test'', the var) 放置 var,然后将其与 ${thevar} 一起使用
【解决方案2】:

我找到的最佳解决方案是编辑文件 BeanShellFunction.bshrc 并在其中添加 java 方法,

String encryptSession(String email) {
    // TODO encrypt session!
    return new String(email);
}

然后将其添加到 http 请求正文中:

${__BeanShell(encryptSession("test${__threadNum}@test.com"))}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多