Jmeter
段小王爷
金融行业
展开
-
【性能测试】性能瓶颈定位一般思路
整体思路:从前到后,从表象到内部1、首先排除压力机自身的问题,如CPU、内存,网络,脚本编写等2、监控中间件的访问日志,观察响应时间,大体确定耗时处于哪一段3、排查网络问题,监控压力机到后端服务器的网络,以及各服务器间的网络,是否达到网络上限4、监控服务端所有机器的操作系统负载,如CPU、内存、磁盘、网络是否达到瓶颈5、监控应用服务器的日志,查看是否存在ERROR日志,比如TimeOut或其他类型报错 6、监控各中间件的连接数,如nginx、tomcat、mysql等,是否达到上限.原创 2022-05-04 12:09:18 · 569 阅读 · 0 评论 -
【性能测试】SQL优化
1.常见的一些sql优化方案1、在 where 及 order by 涉及的列上建立索引,避免全表扫描,索引不要太多,一个表一般不要超过4个索引2、避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描3、查询语句中不要使用 *,减少内存使用4、尽量减少子查询,使用关联查询(left join,right join,inner join)替代5、减少使用IN或者NOT IN ,使用exists,not exists或者关联查询语句替代6...原创 2022-05-04 11:39:31 · 832 阅读 · 0 评论 -
【性能测试】数据库性能问题-索引&慢查询&执行计划
表现:tps很低,响应时间很长,数据库服务器cpu很高(接近100%),应用服务器负载比较低索引:索引是对数据库表中一列或多列的值进行排序的一种结构,存储了表中的关键字段,使用索引可快 速访问数据库表中的特定信息,类似于书籍中的目录。分析数据库服务器CPU高,一般都是因为SQL执行效率低导致的,可能有以下三方面原因 :1、数据库表缺少必要的索引2、索引不生效3、SQL不够优化应用服务器相对清闲数据库服务器繁忙...原创 2022-05-03 11:40:44 · 753 阅读 · 0 评论 -
【性能测试】分析CPU过高和响应时间长的问题
使用Jprofiler监控分析案例一、cpu负载过高:http://localhost:8080/PerfTeach/CpuTopServlet?id=1cpu消耗高的可能原因1、使用了复杂的算法,比如加密、解密2、压缩、解压、序列化等操作3、代码bug,比如死循环dstat监控起来,先看一下资源是否正常,用5个并发跑60秒CPU:100%TPS才几百,肯定就有问题TOP:JAVA占的CPU最多查看进程,是tomcat使用jprofi原创 2022-05-02 21:54:24 · 2576 阅读 · 0 评论 -
【性能测试】Java性能分析神器-JProfiler安装和简单介绍
Jprofiler是一个重量级的工具,需要分别在服务器和windows都装客户端,会损耗性能,用于发现问题后排查问题,而不是常规的监控JPROFILER工具下载地址:http://www.ej-technologies.com/download/jprofiler/fileslinux下安装:rpm -ivh jprofiler_linux_9_1_1.rpm由于我这个是32位的版本,在这里下载64位的话下载速度非常慢,直到安装完毕提示要注册码,网上搜对应版本的注册码,一大把.转载 2022-05-02 21:33:57 · 393 阅读 · 0 评论 -
【性能测试】线程阻塞
定义在多线程情况下,如果一个线程对拥有某个资源的锁,那么这个线程就可以运行资源相关的代码。其他线程就只能等待其执行完毕后,才能继续争夺资源锁,从而运行相关代码。场景:12306售票系统,当前剩余车票1张,此时有A、B这2个用户同时来购票,系统开启了2个线程来执行业务操作,其中: A 线程刚执行了step1; CPU将执行权切换到B线程; B线程顺利的执行了step1和step2,此时剩余票数为0;CPU将执行权又切换到A线程,A线程继续执行step2,此时票数为 -1,多卖出去一张票!出现.原创 2022-05-01 12:39:33 · 443 阅读 · 0 评论 -
【查看JVM运行状态】
监控jvm的GC情况jstat -gcutil pid 1000 100pid:进程号1000:时间间隔1000ms,即1秒采集一次100:采集100次S0:S0使用的比例S1:S1使用的比例E:伊甸园区使用的比例O:老年代使用的比例M:元数据区使用的比例CCS:压缩使用的 比例YGC:年轻代垃圾回收的次数YGCT:年轻代垃圾回收的时间FGC:老年代垃圾回收的次数FGCT:老年代垃圾回收的时间GCT:垃圾回收的总时间查看jvm配置信息j原创 2022-04-24 22:05:00 · 922 阅读 · 0 评论 -
【JVM内存结构】
如何啃下JVM这座大山,完结撒花!转载 2022-04-24 15:03:36 · 87 阅读 · 0 评论 -
【Nginx监控】
方法1:netstat连接数 Nginx重点监控连接数,一般是通过netstat命令来监控监控80端口的连接数情况netstat -anp | grep :80查看80端口总连接数netstat -anp | grep :80 | wc -l查看nginx所有连接数的状态,分类展示netstat -anp | grep :80 | awk '{print $6}' | sort | uniq -c | sort -rn方法2:ngxtopnginx日志监控工具之ngx原创 2022-04-23 20:56:15 · 2922 阅读 · 0 评论 -
【Redis监控】
方法1:redis-stat下载地址:https://github.com/junegunn/redis-stat可以直接下载安装jar包Usageusage: redis-stat [HOST[:PORT][/PASS] ...] [INTERVAL [COUNT]] -a, --auth=PASSWORD Password -v, --verbose Show more info --...原创 2022-04-23 20:57:22 · 3805 阅读 · 0 评论 -
【java线程监控】Jvisualvm和jstack
Jvisualvm修改配置文件图形界面工具,监控之前先对jvm加监控参数,在tomcat的bin目录下,catalina.sh文件中, 第二行添加:(修改完需要重启tomcat)JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10086 - Dcom.sun.management.jmxremote.ssl=false - Dcom.sun.management.jmxremote.authenticate=false - Djava.rmi.se.原创 2022-04-17 21:03:21 · 716 阅读 · 0 评论 -
【性能监控】超级监控工具-dstat
简介:dstat是一个全能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新安装:yum install -y dstat监控命令:dstat -tcmnd --disk-util参考资料:linux命令---dstat_约会远行的博客-CSDN博客_dstat概述 先献上【官网】和【github】本文中所有资料的均源于此,写的不清楚的地方可以翻阅一下官方文档 dstat 是一个可以取代vmstat,iostat,netstat和ifstat这原创 2022-04-17 17:24:21 · 559 阅读 · 0 评论 -
【性能监控】vmstat
1. 简介vmstat(VirtualMeomoryStatistics,虚拟内存统计) 是Linux中监控内存的常用工具,可对操作系统的虚拟内存、进程、CPU等的整体情况进行监视。2.vmstat的常规用法:vmstat interval times即每隔interval秒采样一次,共采样times次,如果省略times,则一直采集数据,直到用户手动停止为止。简单举个例子:[root@master ~]# vmstat 5procs -----------memory----------原创 2022-04-17 16:49:29 · 192 阅读 · 0 评论 -
【性能监控】磁盘io监控-iostat
概述iostat 主要用于输出磁盘IO 和 CPU的统计信息。iostat属于sysstat软件包。可以用yuminstall sysstat 直接安装。# yum install sysstatiostat 用法用法:iostat [选项] [<时间间隔>] [<次数>]如下图:iostat 用法命令参数:-c:显示CPU使用情况-d:显示磁盘使用情况-N:显示磁盘阵列(LVM) 信息-n:显示NFS使用情况-k:以 ...原创 2022-04-17 11:24:23 · 854 阅读 · 0 评论 -
【JMeter】之websocket接口
http不能主动推送消息,必须要有请求,所以聊天情况下,需要不断去轮询查看服务器是否有消息回复websocket长链接,链接后可以一直发送消息(聊天、直播)抓包websocket接口绿色向上箭头:发出去的消息红色向下箭头:服务器返回的消息使用jmeter工具测试websocket接口插件安装创建连接发送匹配接口(type:match)发送消息(type:normal)获取回复关闭连接备注:1.msgi...原创 2022-04-10 17:38:32 · 3138 阅读 · 1 评论 -
【性能监控】top和free
性能监控是性能测试过程中非常重要的一个环节,当在压测过程中出现性能瓶颈时,需要综合详细的监控数据对问题进行分析。整个系统架构中的每一个环节都需要做监控(压力机、网络、各中间件、各服务器硬件资源等)。做好性能监控,就能帮助你快速的定位问题,找到系统的性能瓶颈。操作系统级别监控 top命令 free命令 ...原创 2022-04-05 21:04:03 · 1590 阅读 · 0 评论 -
【JMeter】命令行模式-生成html报表
Html报表生成步骤:1,进入jmeter的bin目录下,修改reportgenerator.properties2,修改jmeter.reportgenerator.overall_granularity=1000(报表中数据展示间隔1秒)3,创建一个存放数据报表的文件夹4,执行命令:jmeter –g result.jtl –o ./output其中: -g 指定jtl文件的路径 -o 指定html报表生成到哪个文件夹下注意:只有Jmeter3.0版本以上支持此功能...原创 2022-04-04 12:04:15 · 437 阅读 · 0 评论 -
【JMeter】实现文件上传下载
文件上传要点1、文件上传原理是浏览器将本地文件内容通过HTTP发送到服务端,服务端接收到数据后重新创建一个文件2、文件上传的HTTP请求content-type:multipart/form-data,MIME类型为application/octet-stream3、文件上传一般有表单上传和ajax上传两种方式表单上传...原创 2022-04-02 22:04:03 · 335 阅读 · 0 评论 -
【JMeter】jdbc请求
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了 一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序步骤:注册驱动 通过用户名,密码,数据库url等信息,获取jdbc链接Connection 通过jdbc链接,对sql语句进行预编译,得到PreparedStatement 对sql语句进行传参数原创 2022-04-02 13:08:40 · 1143 阅读 · 0 评论 -
【JMeter】逻辑控制器
jmeter中常用的逻辑控制器如下:1、循环控制器:可以设置该控制器内的sampler执行的次数,循环次数与线程的循环次数各自独立2、if控制器:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和字符串都需要加引 号 条件格式: ${ jexl3(条件表达式)} 如:${ jexl3(${num} > 10)}、 ${ jexl3(“${num}” == “10”)}3、仅一次控制器:该控制器内的请求只执行一次,无论线程循环多少次4、fo...原创 2022-03-31 22:11:31 · 1102 阅读 · 0 评论 -
【JMeter】计数器
添加--配置元件--计数器可以指定开始数值原创 2022-03-27 11:50:55 · 333 阅读 · 0 评论 -
【JMeter】后置处理器
JSON提取器专门对json数据进行提取的后置处理器变量名称:自定义的变量名称json路径:见下面链接匹配数字:0代表随机,n代表具体的数字,-1代表所有json路径表达式:https://github.com/json-path/JsonPath正则表达式提取器可以通过正则表达式来获取http请求返回的数据引用名称:匹配后的结果,保存到一个参数中,如param正则表达式:三步走1、拷贝目标数据和左右边界2、把目标数据...原创 2022-03-27 11:24:01 · 479 阅读 · 0 评论 -
【JMeter】断言
json断言只断言存在路径,即key同时断言值正则表达式匹配如果值为null断言非nulljsonpath提取原创 2022-03-20 17:44:35 · 122 阅读 · 0 评论 -
【JMeter】测试项目本地部署项目及域名配置
项目部署java -jar pinter.jar --cn.testfan.ptest.teach.uploadpath=你的本地目录 --server.port=端口号域名设置本地hosts文件配置如下,hosts文件路径为C:\Windows\System32\drivers\etcip 域名如: 47.104.140.177 www.mtxshop.com...原创 2022-03-20 16:42:40 · 1179 阅读 · 0 评论 -
【JMeter】常见接口请求
GET接口GET类型接口可以在浏览器访问形式:http://ip:port/path?参数名=参数值&参数名=参数值参数放在url中或者放在下方POST接口1(key=value)参数为key=value格式的post请求post接口参数放在body里post接口不能在浏览器中访问如:phonoNum=13739666556&email=test@qq.com或者设置Content-Type=application/x-www.原创 2022-03-20 16:06:53 · 3613 阅读 · 0 评论 -
【JMeter】基本元件-取样器
http取样器基本设置协议:不填写默认为http;如果是https,则填写https服务器ip:填写域名或者ip号get请求可以将参数填写到url路径后,使用?拼接参数参数也可以放到下方高级设置在测试过程中如果报错:connection time out error 可以在高级设置中设置时长5000ms在测试过程中如果报错:read time out error 可以在高级设置中响应时长设置时长5000ms需要和开发进行排查原因,为啥会超时..原创 2022-03-20 14:13:10 · 97 阅读 · 0 评论 -
【JMeter】基本元件介绍
线程组设置较大的循环次数(100、1000)来进行测试,来看综合表现(最好的情况、最坏的情况、一般的情况)。10*100和100*10虽然次数是一样的,但是100*10压力会更大,并发数大。压测场景设置:a.循环:次数确定,耗时长不确定b.时长:更常用...原创 2022-03-20 13:24:10 · 281 阅读 · 0 评论 -
【JMeter性能测试】内存溢出及定位
监控jvm的GC情况# 先查看进程号ps -ef|grep java# 监控GC情况jstat -gcutil pid 1000 100原创 2022-02-28 09:53:46 · 2350 阅读 · 0 评论 -
【JMeter】线程死锁问题及分析
寻找状态为block的线程原创 2022-02-27 15:28:09 · 1310 阅读 · 0 评论 -
【JMeter】服务器性能监控工具nmon
Linux服务器性能监控nmon工具上传nmon文件:rz nmon增加执行权限:chmod +x nmon执行程序:./nmonWindows服务器性能监控win+r 输入:perfmon原创 2022-02-06 19:18:49 · 702 阅读 · 0 评论 -
【JMeter】的Beanshell
内置变量:log:写日志搭配控制台和jmeter.log,如log.info("xxxx");vars:操作jmeter变量vars.get("userid");从jmeter中获取${userid}变量的值vars.put("userid","id");将id变量保存到${userid}变量中prev:获取前面sampler返回的信息getResponseDataAsString():获取响应信息getResponseCode():获取响应cod...原创 2022-02-03 20:07:39 · 866 阅读 · 0 评论 -
Cookie Session Token
CookieCookie是客户端保存数据的一种机制会话cookie保存在浏览器内存中,浏览器关闭后就消失了,CTRL+SHIFT+DEL可以删除持久化cookie保存在本地磁盘上,一般会有一定的过期时间例如chrome浏览器:C:\Users\DLZ\AppData\Local\Google\Chrome\User Data\Default\CacheSessionsession是服务端保存数据的一种机制,用户的一些关键信息会保存在session中session保存在服务原创 2022-02-01 16:41:34 · 1079 阅读 · 0 评论 -
【JMeter】连接mysql数据库
1.安装mysql连接驱动下载地址:MySQL :: Download Connector/J将下载的文件解压,jar包可以放到jmeter的安装目录lib下:C:\apache-jmeter-5.2.1\lib2.添加配置元件 JDBC Connection Configuration(右键--帮助)3.添加jdbc-request...原创 2022-01-31 15:57:22 · 1014 阅读 · 0 评论 -
【JMeter】逻辑控制器
仅一次控制器:(右键--帮助)控制器内的请求只执行一次,适用于一次登录,多次购买、交易、查询的场景if控制器:根据判断条件决定是否执行该控制器内的请求,如果是字符串比较条件,参数和字符串都需要加引号循环控制器:可以设置该控制器内的sampler执行的次数,循环次数与线程的循环次数各自独立foreach控制器:可以遍历某个参数数组,循环获取数组中的参数事务控制器:一般不勾选Generate Parent Sample,查看结果树以及聚合报告。include durati原创 2022-01-31 14:28:05 · 295 阅读 · 0 评论 -
【JMeter】的定时器
1.固定定时器:设置固定的等待时间2.统一随机定时器3.同步定时器:集合点策略,适合秒杀场景原创 2022-01-29 20:52:46 · 1083 阅读 · 0 评论 -
【JMeter】的常用元件
调试取样器在脚本编写过程中用来调试线程号:来源函数助手调试运行结果原创 2022-01-15 20:29:08 · 123 阅读 · 0 评论 -
【JMeter】参数化之CSV数据文件
csv文件参数化文件名:若jmeter脚本和csv文件在同一个路径,可用相对路径变量名的使用:${name}是否忽略首行:工具csv文件内容决定线程共享模式:所有线程(jmeter的bug显示为现场)、当前线程组、当前线程调试取样器在脚本编写过程中用来调试线程号:来源函数助手调试运行结果CSV参数化的策略,针对以下三个参数的设置UEC:unique+each+continue 唯一性+迭代+继续True+False+所有线程组True+False.原创 2022-01-15 20:22:30 · 1250 阅读 · 0 评论 -
【JMeter】参数化
jmeter使用参数化有以下几种方式:1.测试计划在测试计划中设置参数,调用参数的方法为${参数名},如下图中调用ip的值:${ip}2.请求默认值添加http请求默认值3.函数助手随机数值、随机字符串...原创 2022-01-02 15:01:11 · 876 阅读 · 0 评论 -
【JMeter】插件安装
下载安装: Documentation :: JMeter-Plugins.orgjmeter - 标签 - 上海-悠悠 - 博客园原创 2021-12-12 21:53:49 · 5589 阅读 · 0 评论 -
【JMeter】压测准备流程
有线上运维数据统计未上线系统---大概评估原创 2021-12-12 21:42:02 · 660 阅读 · 0 评论