Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)

一、前言

  前面文章已经介绍Apache JMeter的基本概率和如果使用,但作为一个开发人员,自己写的代码都应该要好好的COD EREVIEW,好好的自测吧。但是有些场景比如高并发、负载和性能测试的时候,不借助工具是不好进行测试的。Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试,因此也建议大家使用这款工具进行测试,比如秒杀、高并发下送券送积分活动等。代码层面咱再另外分析,实际场景可定会更加复杂,这里先分享下自己的一次完整的测试用例。有不对的或者错误的地方还希望大家指正。


二、准备工作

  2.1 新增一个测试积分,输入名称后点击保存到一个地方,我这里选的D盘
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第1张图片

 

  2.2  新增一个线程组命名并保存
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第2张图片

 

  2.3  新增一个默认的HTTP Cookie 管理器,如果是服务器要验证登录信息等,可以添加对应的会员登录信息。
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第3张图片

 

  2.4 新增HTTP信息头管理器!参数Content-Type:application/json,表示你的POST请求是JSON格式的
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第4张图片

 

  2.5 HTTP请求默认值,这个管理器可以添加多个的,发起时可以组合成一个,非常方便
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第5张图片

 

  2.6 添加HTTP请求以及相应的监控器,这里因为配置了默认的HTTP默认参数,所有HTTP请求这里可以不填.
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第6张图片

  2.7 设置用户领取积分限额,这个在自己的代码层设置

    point.setMaxTotalLimit(Long.valueOf(100000)); //总发送积分数
    point.setMaxLimit(Long.valueOf(1000)); //每人最大领取数
    point.setNumPerDay(Long.valueOf(10)); //每人每天最大领取数
    point.setPoint(1); //单次发放积分数

三、测试结果

  3.1 图形监听结果
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第7张图片

  3.1 http请求监听查看树结果
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第8张图片

  3.1 Summary Report看板
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第9张图片

 

  3.1 数据库查看成功领取积分数记录,这里查到正确领取次数为10次,并没有出现超发的情况!
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第10张图片

 

四、总结

  4.1 乱码问题,如果出现返回结果乱码问题,可以在D:\apache-jmeter-3.2\bin目录下的jmeter.properties文件 把sampleresult.default.encoding=UTF-8
    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第11张图片

    Apache JMeter 记一次使用HTTP工具POST提交JSON数据进行送积分高并发压测(二)_第12张图片

  4.2 Summary Report监听器相关参数解释:

    • Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
    • #Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
    • Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
    • Median:中位数,也就是 50% 用户的响应时间
    • 90% Line:90% 用户的响应时间
    • Min:最小响应时间
    • Max:最大响应时间
    • Error%:本次测试中出现错误的请求的数量/请求的总数
    • Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction perSecond 数
    • KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

 

转载于:https://www.cnblogs.com/molao-doing/articles/7205275.html

你可能感兴趣的:(json,测试,数据库)