性能测试遇到的问题

本文总结了JMeter性能测试中常见的问题及解决方案,包括ServerAgent配置、正则表达式使用、登录处理、报告生成及性能调优等。通过具体实例介绍了如何优化测试脚本并分析性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题1:跨线程调用cookie失效-解决方法:跟随重定向勾选去掉
自动重定向:200 2XX
跟随重定向:302 3XX cookie没有跟随重定向而丢失

问题2:ServerAgent启动后无法查看ERROR: java.net.ConnectException: Connection refused: connect
linux:/sbin/iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
windows:控制面板-防火墙-入站-新建规则-端口4444

问题3:常用的函数

文本:文本${__Random(1,100,)}
时间:${__time(yyyy-MM-dd HH:mm:ss,)}
日期:${__RandomDate(,2021-09-01,2021-11-01,,)}
设置全局变量:${__setProperty(cookie,${cookie},)} 引用:${__P(cookie,)}
生成唯一值
Random rand = new Random();
String value = "bh"+Thread.currentThread().getId()+System.currentTimeMillis()+rand.nextInt(1000);    
vars.put("unique",value);
log.info(vars.get("unique"));

问题4:关于登录
1.登录抓取了Cookie,发现由多个拼接而成。我也直接提取拼接的内容,因而做了无用功。这里可以先用postman去调试,到底需要jsession还是token还是拼接,实际验证只需要token就可以登录。还有,录制或抓取脚本前,最好清缓存!!!若登录有重定向,取消勾选“跟随重定向”,即可获取cookie值

问题五:报告隐藏辅助请求(如登录一次)
(1) 添加Simple Controller-添加后置处理器prev.setIgnore()

问题六:关于jmeter配置
(1)生成报告没有汇总事务 user.properties文件中的show_controllers_only=true
(2)响应结果乱码:jmeter.properties文件中的sampleresult.default.encoding=UTF-8
(3)设置中文:jmeter.properties文件中的language=zh_CN

问题七:脚本简化

问题八:jmeter生成html测试报告

linux:不存在jtl时生成html: jmeter -n -t E:\ciis5.jmx -r -l  E:\result.log -e -o E:\result

window:存在jtl时

1.聚合报告(一个jtl即可):写入E:\result.jtl文件

2.jmeter的bin目录下打开cmd执行:jmeter -g E:\result.jtl -o E:\result

性能调优-测试总结
1.应该先看是所有系统功能都慢,还是单个的系统功能慢
2.看一下服务器资源占用的情况,主要就包括了你的内存,还有cpu。
3.如果说这个比较正常的话,然后再看一下当前这个页面调用了哪些SQL语句,看下直接把这个SQL语句放到数据库里面去查询一下,看一下反应的速度。
4.如果搜SQL语句也没什么问题,那就直接再看一下那个Java的后台的日志。
5.看一下日志里面相同的几个时间间隔时长最长的是哪一个,然后再针对这个时间看一下具体的。
6.如果是运行一段时间后变慢,重启之后又正常,大概率是fullgc频繁,JAVA存在内存泄露等问题。
  如果人多的时候慢,CPU使用率不高,且程序运行内存足够,那有可能是某个使用很频繁的功能,上面有了锁机制,产生了争用。

性能测试问题
数据库连接超时-数据库连接数设置的太少
内存溢出- jmap -heap (pid)进程  查看堆内存使用情况;jmap -histo (pid)进程 查看前面几个有自己应用程序方法
cpu内存过高- jstack (pid)进程>>log 根据十六进制的线程查找问题日志
tps、cpu下降几乎为0-死锁
线程阻塞和线程死锁的异同对比:
①相同点:都是代码加锁导致
②不同点:阻塞只有一个锁,发生阻塞后只是性能慢,程序可运行;
 死锁嵌套枷锁,发生死锁后服务器不相应请求,cpu资源利用率为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值