问题1:如何在大并发测试下,让登录或者后续接口只执行一次?
分析:
这个问题网上的答案其实很多,但是大多不靠谱。
比如推荐使用仅一次控制器,但是仅一次控制器对线程组无效;
比如推荐跨线程组调用,但是这样比较繁琐,新人也搞不定;其实只要各位对元件熟悉,这个问题很简单
下图100线程:
添加一个吞吐量定时器,选择总数计算
问题2:在Jmeter压测过程中有哪些大的性能消耗?
分析:
压测过程中如果加入了数据的读写,会不会影响性能结果?
我们知道,读写本地文件是需要和磁盘做交互的。磁盘在系统中处于最底层,速度是最慢的。
频繁的磁盘交互会极大的增加性能开销,影响测试结果。会降低实际的tps。
解决方案:
首先把cookie存到系统属性里面。存属性就相当于存到了应用缓存,缓存的查询效率是最高的。
\({__setProperty(cookie,\){cookie},)}
后续请求处理cookie的时候,直接从属性表里面提取${__P(cookie,)}
问题3:如何识别tps拐点?
分析:
先分析下面这张图。下面这张图上展示了阶梯负载量,响应时间,tps三种数据
从图上能看出来三个趋势
-
tps升到一个相对高点之后,长期维持稳定,不再升高
-
运行一段时间之后,响应时间开始逐渐升高,但是趋势不明显
-
随着负载越来越高,tps长期保持稳定
分析:
在负载逐渐升高的情况下,tps却长期不变。这并不是说明性能很稳定,而是说明我们单位时间内的单线程tps是在逐渐降低的(单位时间tps/总线程)
再分析响应时间,我们的响应时间其实也是在逐渐升高,从侧面反映出线程的tps是在下降的。
但是具体在多少负载量的时候我们的瓶颈点已经到来?
这张图上不好计算,我们换一个监听器
这张图的趋势就比较明显了。随着负载升高,线程的tps逐渐达到一个高点,然后开始下降。那么这个最高点就是我们的性能瓶颈点
问题4:Jmeter的4444端口无法监听远程服务器怎么解决?
解决方案:
4444端口在阿里云和腾讯云服务上,是默认不开放的。
想要监听到,有两种办法,一种是防火墙开放4444端口,一种是更换端口
命令如下
./startAgent.sh --udp-port 0 --tcp-port 1234
问题5:远程机执行Jmeter脚本,怎么自动切换csv参数路径格式?
解决方案:
只需要在参数路径中加入一组函数,就可以实现参数路径自动定位,如下
{__P(user.dir,)}{__P(user.dir,)}{__P(file.separator,)}test.txt`
这一组函数的作用是,不论在Linux还是在本机,都可以自动切换路径格式,不需要手动修改。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!