【问题标题】:JMeter JavaSampler : How to invoke methods from external jars?JMeter JavaSampler:如何从外部 jar 调用方法?
【发布时间】:2017-12-18 02:28:55
【问题描述】:

只是给你一个我想要实现的背景:

我的功能测试团队有一个基于 REST 架构的 Java 库,其中包含 HTTP 调用。我基本上想重用罐子并以更高的并发性调用方法。我只是想知道如何使用 JMeter 的 JavaSampler 来实现这一点?

示例:假设我想做一个 100 个用户的登录和注销测试,我的 jar 为我提供了登录和注销功能,那么我的测试会是什么样子?任何关于这方面的建议都会对我入门非常有帮助。

【问题讨论】:

    标签: java performance jmeter performance-testing


    【解决方案1】:

    选项 1 - 使用 Groovy

    1. 将实现您的功能的 jar 添加到 JMeter Classpath
    2. 重启 JMeter 以获取它们
    3. JSR223 Sampler 添加到您的测试计划中,确保选择groovy 作为语言并确保选中Cache compiled script if available
    4. 将要并行运行的代码放入“脚本”区域并使用JMeter Thread Group 设置并发。

    选项 2 - 使用 Java Request

    创建您自己的实现JavaSamplerClient 接口的类,并创建您自己的setupTest()getDefaultParameters 尤其是runTest() 方法的覆盖。您可以查看以下现有类以供参考:


    选项 3 - 使用 jmh

    JMH 代表Java Microbenchmark Harness,因此如果您只需要测量方法执行时间,即使没有 JMeter 也可以做到,请查看Getting Started With JMH 指南以获取更多信息。

    【讨论】:

      【解决方案2】:

      将 jar 文件放在 jmeter 文件夹内的 lib 文件夹中。

      重启并尝试导入相应的类。

      【讨论】:

        【解决方案3】:

        这适用于我的 BeanShell 后处理器 (jmeter 3.2):

        1. 将外部 jar 文件放在 lib\ext 文件夹中
        2. 重启 jmeter
        3. 在 BeanShell 脚本中导入包

        然后我可以在我的脚本中引用相关的类。

        【讨论】:

          【解决方案4】:

          您需要创建一个实现AbstractJavaSamplerClient 的类,并将您的代码写入 runTest() 方法。

          JavaSamplerClient 的runTest() 方法在这里没有默认实现,所以子类必须至少定义这个方法。

          【讨论】:

            【解决方案5】:

            可以在Test Plan中添加Jar文件

            检查此link。其中包含使用外部 jar 的分步详细信息

            【讨论】:

              猜你喜欢
              • 2012-11-02
              • 2013-09-24
              • 2018-05-08
              • 2015-08-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-02
              相关资源
              最近更新 更多