利用Jmeter发送Java请求的实战记录

第一次遇到了需要用Jmeter发送Java请求的情况,也是网上查过很多资料才成功。做一个记录,做一个分享。

Jmeter去发送Java请求,就是需要你有测试类的jar包放到Jmeter的lib/ext目录下,新建Java请求才可以。这个我们用到的测试类,开发给到以后我们需要自己去做一下调整,使用Eclipse工具来写。

实现过程

1.首先创建好工程,用到两个Jmeter包-ApacheJMeter_java.jar、ApacheJMeter_core.jar,直接从Jmeter复制项目里,并且右键Buid Path就可以了。

2.测试类需要继承AbstractJavaSamplerClient,点击报错进行导包和添加实现方法。runTest方法就是核心方法,所实现的代码逻辑在这里。

 

3.写一个简单的demo,两个数相加为sum结果。初始化一个SampleResult,然后sr.sampleStart()作为Jmeter开始统计响应时间标识,相加过程为正式的逻辑代码,把返回结果放入sr并设置字符集,sr.setSuccessful()设置成功与否,最后加上sr.sampleEnd()结束统计响应的标识,返回sr即可。

4.导出jar包,放到Jmeter-lib/ext目录,添加一个Java请求,选择我们test下的TestSum就可以了,测试结果如下:
 

 

5.简单的测试写完之后,我们再进行改造代码,传入的int参数不能是固定的,需要我们在Jmeter中传入不同的参数进行测试,首先把刚才定义好的参数(8和6)去掉,在getDefaultParameters方法中去初始化一个参数集,把入参放进params;setupTest方法做一些Jmeter测试前的初始化工作,可以在这里获取我们输入的参数。重新打包测试,我们就可以自定义两个入参的值了。

 

 

6.到这里应该都大概知道怎么做了,附上本次代码,可以作为一个模板,直接在上边进行修改即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

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 TestSum extends AbstractJavaSamplerClient {

  

    private String number1;

    private String number2;

  

    @Override

    public Arguments getDefaultParameters() {

        Arguments params = new Arguments();//初始化一个参数集

        params.addArgument("num1", "");//把入参放入params

        params.addArgument("num2", "");

        return params;

    }

  

    @Override

    public void setupTest(JavaSamplerContext arg0) {

        number1 = arg0.getParameter("num1");//获取入参,赋值给变量

        number2 = arg0.getParameter("num2");

    }

  

    @Override

    public SampleResult runTest(JavaSamplerContext arg0) {

        //int number1 = 8;// 定义一个int参数8

        //int number2 = 6;// 定义一个int参数6

        SampleResult sr = new SampleResult();// 初始化一个SampleResult

        sr.setSamplerData("请求参数num1:" + number1 + "\n请求参数num2:" + number2);// 参数放进sr

        try {

            sr.sampleStart(); // jmeter 开始统计响应时间标识

            int sum = Integer.parseInt(number1)+Integer.parseInt(number2);// 定义sum等于两个参数相加,正式的逻辑代码

            sr.setResponseData("两个数相加的结果是:" + sum, "utf-8");// 结果放入sr,并设置字符集

            sr.setDataType(SampleResult.TEXT);

            sr.setSuccessful(true); // 设置响应执行成功

        } catch (Throwable e) {

            sr.setSuccessful(false);// 有异常,执行失败

            e.printStackTrace();

        } finally {

            sr.sampleEnd(); // jmeter 结束统计响应时间标识

        }

        return sr;

    }

  

}

真实的项目往往是复杂的,查看结果树自定义返回什么内容,如有定义好的返回结果resultData,sr.setResponseData(resultData, "字符集")即可。

​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
qq群号:485187702【暗号:csdn11】
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值