如何为Java Request编写JMeter测试

时间:2014-04-25 07:34:39

标签: java jmeter

我需要在内存数据库中进行负载测试。

我想使用JMeter,并且我需要编写一个实现JavaSamplerClient的类。

我根本不知道从哪里开始。 JMeter网站提供的功能对我帮助很小。这是我第一次做这样的事情而且我已经迷失了好几天了!

所以也许你可以通过解释我的班级应该如何设置的基础知识来帮助你?我可能需要导入的软件包?因为每当我试图告诉它实现JavaSamplerClient时,我都会收到错误。

也许可以简要总结一下这一切是如何运作的?类似于JMeter中指定的方法运行多少次?或者这里发生了什么?

3 个答案:

答案 0 :(得分:9)

要在JMeter中使用Java Request,您必须创建一个继承自JavaSamplerClient的Java类。 为此,如果您正在使用Eclipse,则必须下载两个jar文件并将它们添加到类路径中。 这两个jar文件是ApacheJMeter_core.jarApacheJMeter_java.jar 你的班级将是这样的:

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class javaRequest extends AbstractJavaSamplerClient {

        @Override
        public void setupTest(JavaSamplerContext context){
        // TODO Auto-generated method stub

        super.setupTest(context);
        }
        @Override
        public Arguments getDefaultParameters() {
        // TODO Auto-generated method stub  


        }
        @Override
        public SampleResult runTest(JavaSamplerContext arg0) {
            // TODO Auto-generated method stub

            SampleResult result = new SampleResult();

                boolean success = true;

                result.sampleStart();

                // Write your test code here.

                //


                result.sampleEnd();

                result.setSuccessful(success);

                return result;

        }
        @Override
        public void teardownTest(JavaSamplerContext context){
            // TODO Auto-generated method stub
            driver.quit();
            String verificationErrorString = verificationErrors.toString();
            if (!"".equals(verificationErrorString)) {
                fail(verificationErrorString);
                System.out.println(verificationErrorString); 
            }
            super.teardownTest(context);
        }
}

有关更多信息,您可以访问此链接  http://www.javacodegeeks.com/2012/05/apache-jmeter-load-test-whatever-you.html/comment-page-1/#comment-8288 还有这个页面 How to use CSV Data Set with junit request test in jmeter

答案 1 :(得分:7)

您的自定义类需要实现JavaSamplerClient或扩展AbstractSamplerClient

绝对最小值是runTest()方法实现。

我建议查看现有JavaTest和SleepTest Java Request采样器的来源:

  • /src/protocol/java/org/apache/jmeter/protocol/java/test/JavaTest.java
  • /src/protocol/java/org/apache/jmeter/protocol/java/test/SleepTest.java

来源可从JMeter download page

获取

或者有一些指南,其中包含简单工作Java请求的示例。

  1. Beanshell vs JSR223 vs Java JMeter Scripting比较基准 - 用于生成大型随机字符串
  2. 等非常基本的内容
  3. WebSocket Testing With Apache JMeter - 通过Java Request实现全功能的Websocket客户端实现
  4. 编译类后,将其打包到.jar并放到JMeter安装的/ lib / ext文件夹中。您的课程应该来自Java Request下拉列表。

    希望这会有所帮助。

答案 2 :(得分:0)

Dmitri和Imen的答案是正确的。

这是一个可行的示例项目。

它使用Gradle并包含有关如何构建和执行它的说明。这应该是一个很好的参考点。

https://github.com/dgroomes/jmeter-playground

此外,这是有关在JMeter工具中提供自定义插件的官方JMeter文档:https://jmeter.apache.org/usermanual/get-started.html#classpath