编写jmeter脚本的原则和正确执行方式

一、前言

  jmeter是一款开源的java语言编写的性能测试工具,很容易上手。但是,在不同的测试人员来使用情况下,得到的性能测试结果会有很大的不同,下面我们来稍微说明下。

二、编写jmeter的原则

  1、提取公共部分,做到精简化

    

 

   说明:上述的脚本包含了多个http请求,每个脚本都有请求host和port,即繁琐也不好维护

  良好的习惯:

  线程组---添加---配置元件---HTTP请求默认值,在此基础上维护host和port

   2、禁用查看结果树

    在我们进行脚本调试的时候,通常会使用查看结果树来验证数据返回的正确性。但是,此组件本身是比较消耗客户端性能的,一般来说,在调试的时候,使用一个查看结果树就可以了,在正式压测的时  候,还要进行对其禁止,不然容易漏掉

   3、简化脚本逻辑

  不要过多的使用if判断和循环等插件,虽然能让我们比较容易的进入测试场景,但这样会增加脚本的复杂性,影响压测客户端的发起效率。需要做的是增加前和增加后,对比性能测试结果,是否可去掉

  4、减少使用不必要的插件

  比如使用 JMeter 去监控服务器资源,这样的监控不仅简单粗糙,而且较大地影响 JMeter 的压力发起的效率。客户端就做客户端的事,服务端的资源监控有更好的更加专业的解决方案

三、正确执行jmeter的方式

  1、命令行执行脚本

  jmeter工具是跨平台的,在windows、mac和linux环境下都能运行。它提供了两种运行方式,图形化和命令行。图形化方式是在windows或mac上比较常用来方便调试脚本用的。官方并不建议在正式压测上使用此方式,而是建议命令行方式。并且,大多公司的PC是在局域网上的,信息安全部或多或少会对个人办公电脑进行网络带宽限制,所以还是需要找一个不受网络带宽影响的服务器,使用命令行方式运行脚本,排除压测客户端的性能瓶颈带来的TPS上不去的问题。

  jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder] 

  -n 表示在非 GUI 模式下运行 JMeter;

  -t 表示要运行的 JMeter 测试脚本文件,一般是 jmx 结尾的文件;

  -l 表示记录结果的文件,默认以 jtl 结尾;

  -e 表示测试完成后生成测试报表;

  -o 表示指定的生成结果文件夹位置

   具体可参考此博客

  2、分布式执行脚本

  根据多年的实践经验得出,单节点的jmeter在实际压测时,设置的并发线程最好不要超过1000,因为线程数越往上,压测的客户端发起效率并不会越好,甚至会降低,所以此时必须要使用jmeter的分布式压测方案

  具体可参考此博客

  3、编写beansehll脚本记录接口的返回数据(特别是报错信息)

  待续...

  4、JMeter+InfluxDB+Grafana方案监控每个接口的实时处理能力

  待续...

  

  

  

posted @ 2021-01-21 00:28  未来可期_Durant  阅读(338)  评论(0编辑  收藏  举报