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 是设置server的jmeter属性 -l 日志文件 -> 记录结果的文件 -r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器 -H 代理主机 -> 设置 JMeter 使用的代理主机 -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
-h 帮助 -> 打印出有用的信息并退出 -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter -t 测试文件 -> 要运行的 JMeter 测试脚本文件 -J 是设置本地jmeter属性,引用变量参数 -G 是设置server的jmeter属性 -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就上去了---我们在做测试的时候遇到该问题,删除各种查看结果树就能压上去了
原文地址:https://www.cnblogs.com/good-time/p/11696491.html