自己使用jmeter的一点心得体会

时间:2024-05-20 21:32:31

自己使用jmeter的一点心得体会

before

之前开发接口没有用jmeter测试过并发,当测过并发以后,

  1. 首先会发现很多的错误
  2. 自己代码写的有很严重的性能的问题,比如查询很慢
  3. 不知道自己的接口的qps是多少,如何能提高qps

after

  1. 首先在测试过并发之后,我自己就发现了一个很严重的问题,就类似减库存,我减到-81,就是因为在并发环境下,让我还有一件商品的时候,80多个请求同时进来,一看还有库存,让后同时减了这么多次,就导致了很严重的问题这个时候我利用锁就解决了这个问题,然后查询的效率其实还能接受
  2. 比如如果每个请求都会去创建一个线程池,那么在高并发下就会创建很多个线程池,导致线程创建过多,系统性能严重下降,所以不用jmter,发现不了这些问题。
  3. jmter里面能够自动的画出性能曲线,方便我们能了解我们接口的吞吐量和变化情况,对接口编写和理解会有更深的了解。

理论

其实使用jmter还是十分简单的,我总结就这么几步

  1. 将jmter的语言设置为中文
  2. 创建一个线程组,先只用一个线程,一个线程跑通再上加
  3. 创建http请求,设置请求头和请求体,token什么的都可以设置
    • token设置 添加->配置元件->http信息头管理器
    • post请求请求体设置 基本->消息体数据
  4. 设置监听器,我比较喜欢的是下面三个
    • 图形结果(可直接看到吞吐量的变化情况)
    • 查看结果树(能够看到每个接口具体返回的数据)
    • 汇总报告(能够汇总所有接口的请求情况)
  5. 请求成功后,把线程数调大,开始愉快的测试吧
    自己使用jmeter的一点心得体会
    自己使用jmeter的一点心得体会

使用过程中遇到的问题?

  1. post请求,请求体中的数据一层不变,如何才能变化呢?
    添加->配置元件->csv Data Set Config 在里面设置,准备一个txt文件,有五行,代表五个参数给参数取名为id ,然后在请求体中写${},就能够自动的获取了,你可以发现调用五次,五次的参数都不相同,这里csv,并不是说你要传csv格式,txt格式也是可以的,设计比较人性化
    自己使用jmeter的一点心得体会
    自己使用jmeter的一点心得体会
    自己使用jmeter的一点心得体会

2.看到有一个名词吞吐量?
吞吐量就是每分钟请求的次数
qps=吞吐量/60
接口的平均响应时间=1/qps

3.接口最快能有多快
根据我的测试,我写了一个最简单的接口,响应都需要花费20ms,也就是qps为50,所以要优化qps,要往50去优化,哪怕这么快的接口,要达到5000个qps,也得需要十台服务器去做负载均衡,5000个qps不是开玩笑的呀!

小总结

性能是程序非常重要的指标,性能曲线在机械领域用的特别多,但是我们在互联网行业,用的还不够
以后,要多用jmter分析自己的程序,及时的解决性能的问题,努力优化加油!!