Jmeter压测总结


emmmmm,主要是名词解释、Jmeter配置、服务器运行命令。

 

压测名词

QPS = 1000/RT ,即 1000ms 除以平均响应时间,即 1秒内处理多少个请求

 

 

1、关于TPS、QPS区别

 

我日常都会使用TPS,每秒事务数,之所以是事务这个概念,是因为我们在请求过程中会增加检查点,检查点成功就是事务成功,检查点失败就意味着失败,所以我们的请求就是一次事务,故TPS=QPS(每秒请求说),所以大部分条件下,这两个概念不用纠结的!

 

那么什么时候不相等呢?

 

举个例子,我需要进行一次查询,但这个查询需要调用A服务和B服务,而调用B服务需要2次调用,那么这种情况,以我查询这个场景成功作为一次事务的话,我一秒请求一笔就是1tps,当然对于A系统是1tps=1qps的,但对于B系统而言,就是2qps,因为调用了两次(如果只看B服务的话,把每次请求当做一次事务的话2qps=2tps,还是可以等同的)

 

所以仅仅是关注维度的不同,绝大多数时候我们不用去刻意区分的,毕竟我可以说我流程是1tps,B系统受到的双倍额压力是2tps的量(压测过程中也务必关注这样的流量放大服务,因为很有可能前面的服务抗的住,后面扛不住),这样也是完全没有问题的。

 

Jmeter配置

 

 

 

Linux服务器运行

二、Linux服务器安装Jmeter

1、将本地的Jmeter文件打包成zip文件:apache-jmeter-3.0_json.zip,再上传到服务器

2、在服务器解压缩,生成jmeter-3.0目录

1)安装unzip:apt-get install unzip

2)解压缩:unzip apache-jmeter-3.0_json.zip

3、将jmeter-3.0目录 放到 /usr/local下

4、配置Jmeter环境变量。vi /etc/profile,再添加如下变量

    export JMETER_HOME=/usr/local/jmeter-3.0

    export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

   export PATH=$JMETER_HOME/bin:$PATH

5、source /etc/profile (让配置文件立马生效)

6、查看是否安装成功,执行命令:jmeter -v

 

三、接口测试

1、将本地生成的jmx文件上传到服务器

2、输入命令:# jmeter -n -t /home/jessica/httpThread.jmx -Jconut 500-l log.jtl,查看结果

     参数说明:

      -n:以NoGUI方式运行脚本

                     -t:后面接脚本名称

                     -l:后面接日志名称,保存运行结果

3、查看log.jtl,返回200,说明运行成功(可以将log.jtl发送到windows下查看:添加聚合报告,在聚合报告中,点击浏览,打开该文件)

 4、注意:客户端和服务器的Jmeter版本最好保持一致,不然运行脚本时会报如下错误

 -h 帮助 -> 打印出有用的信息并退出 -n  GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JMeter 测试脚本文件 -J 是设置本地jmeter属性,引用变量参数 -G 是设置serverjmeter属性 -l 日志文件 -> 记录结果的文件 -r 远程执行 -> Jmter.properties文件中指定的所有远程服务器 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

-h 帮助 -> 打印出有用的信息并退出 -n  GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JMeter 测试脚本文件 -J 是设置本地jmeter属性,引用变量参数 -G 是设置serverjmeter属性 -l 日志文件 -> 记录结果的文件 -r 远程执行 -> Jmter.properties文件中指定的所有远程服务器 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

 

 

 

 

Jmeter 工具使用步骤:https://mp.weixin.qq.com/s/pb3jwOiRS7uszmMHK7QFIA

 

 

压测过程中遇到的问题:

1、内存溢出,由于client没有关闭造成,在setup中初始化,在teardown中关闭即可

JVM_ARGS="-Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=1024m" jmeter -n -t test.jmx -JthreadCount=1 -Jcycle=2000 -l log.jtl

2、找不到gui 导致无法编辑,下载3.2版本

3、找不到keytool,默认在jdk安装目录bin目录下,将该文件,添加到环境变量即可

 

.压测QPS压不上去原因

l Jmeter设置线程属性的时候,不要设置永远,设置循环次数,建议设置很多很多,如1000000。先前我们设置永远的时候,就一直压不上去,后来改设置大的循环次数的时候,QPS就可以压上去了

ll 属性设置好还是压不上去,看jmeter加了很多查看结果树等,这样大大影响的qps,去掉这些后qps就上去了---我们在做测试的时候遇到该问题,删除各种查看结果树就能压上去了

 

posted @ 2019-10-21 08:55  闪耀的学士帽  阅读(635)  评论(0编辑  收藏  举报