• Jmeter书中不会教你的(99)——java request实例


    简单来说java request就是在jmeter界面通过传入一些设置的参数给特定的java代码去处理,最后在jmeter中输出结果。

    比如以下,设置两个参数,选择test.MyJavaRequest类,这个是一个自行创建的java代码,将这个java代码导出为jar包后存放在/lib/ext下,这时候再java request下拉菜单中会自动加载这个类。

    这个java代码怎么写?在jmeter中使用的需要按固定格式

    一、在eclipse创建一个java工程,比如JavaRequest

    二、在src下创建package包,如test

    三、在test包下创建类,比如MyJavaRequest.java

    四、右击工程,将以下jar包加入到build path

    五、类MyJavaRequest实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写

    需要改写以下四个方法

    public Arguments getDefaultParameters()  设置默认的参数,就是jmeter界面上看到的默认参数在此设置

    public void setupTest(JavaSamplerContext arg0)在测试方法前做一些初始化工作,如读取参数值,每个线程只执行一次

    public SampleResult runTest(JavaSamplerContext context) 开始测试,在这里可以使用setupTest中初始化的参数值

    public void teardownTest(JavaSamplerContext arg0) 测试结束时调用,每个线程只执行一次

     

    具体代码如下:实现读取参数值,设置取样器名称"test speed of print something",设置响应结果

    1. package test;
    2. import org.apache.jmeter.config.Arguments;
    3. import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
    4. import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    5. import org.apache.jmeter.samplers.SampleResult;
    6. import java.util.Random;
    7. public class MyJavaRequest extends AbstractJavaSamplerClient{
    8. private String a;
    9. private int b;
    10. //jmeter gui参数
    11. @Override
    12. public Arguments getDefaultParameters() {
    13. Arguments params = new Arguments();
    14. params.addArgument("String1", "hello");
    15. params.addArgument("number2", "1234");
    16. return params;
    17. }
    18. @Override
    19. public void setupTest(JavaSamplerContext arg0) {
    20. a = arg0.getParameter("String1");
    21. b = arg0.getIntParameter("number2");
    22. }
    23. public SampleResult runTest(JavaSamplerContext context) {
    24. SampleResult results = new SampleResult();
    25. results.setSampleLabel("test speed of print something");
    26. Random r = new Random();
    27. try {
    28. results.sampleStart();
    29. System.out.println(a + " " + b);
    30. Thread.sleep(r.nextInt(100));
    31. results.setSuccessful(true);
    32. }catch(Exception e) {
    33. results.setSuccessful(false);
    34. e.printStackTrace();
    35. }finally {
    36. results.sampleEnd();
    37. }
    38. results.setResponseData("a is " + a + " and b is " + b,null);
    39. return results;
    40. }
    41. @Override
    42. public void teardownTest(JavaSamplerContext arg0) {
    43. System.out.println("test is over");
    44. }
    45. }

    六、将此工程导出为jar包,并将此jar包放入jmeter的lib/ext下

    eclipse中file>export

     七、重新打开jmeter在java request取样器中选择要测试的类

     

     

  • 相关阅读:
    机器学习第十课--提升树
    CSS选择器
    从零开始探索C语言(八)----指针
    高阶组件使用
    BFC(块格式化上下文)
    x86计算机的启动初期流程 Linux 启动流程
    element ui级联选择器数据处理
    痞子衡嵌入式:说说职业生涯第一个十年
    数据结构-堆(带图)详解
    如何进入互联网行业,成为产品经理?没有项目经验如何转行当上产品经理?
  • 原文地址:https://blog.csdn.net/agrapea/article/details/125395582