什么是压测,为什么要进行压力测试?JMETER工具的使用.

1.背景介绍

性能测试是通过自动化的测试工具模拟多种正常峰值和异常负载条件来对系统的各项性能指标进行测试。 性能测试包括,负载测试,强度测试,容量测试

通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变 化的情况.

压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试.

在Web性能测试领域,有两种工具广泛使用:LoadRunner和JMeter.

2.知识剖析

1.性能测试的目的

性能测试的目的是验证软件系统能否达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈, 以优化软件,最后起到优化系统的目的.包括以下结构方面:

1.评估系统的能力;

2.识别系统中的弱点;

3.系统调优;

4.测试软件中的问题;

5.验证稳定性(Resilience)和可靠性(Reliability);

2.性能测试的常见指标

对于B/S架构,一般关注Web服务器性能指标:

avg rps:平均每秒钟的响应次数=总次数/秒数
avg time to last byte per terstion(mstes):平均每秒业务脚本的迭代次数
successful rounds:成功的请求
failed rounds:失败的请求
successful hits:成功的点击次数
failed hits:失败的点击次数
hits per second:每秒点击次数
successful hits per second:每秒成功的点击次数
failed hits per second:每秒失败的点击次数
attempted connections:尝试连接数
throughput:吞吐率

3.JMeter常用测试单元

1.线程组,所有测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组之下.常用参数:
设置线程数量(Numbers of Threads)
设置线程启动周期(Ramp-Up Period)
设置执行测试脚本的循环次数(Loop Count)
2.控制器
采样器,被JMeter用来向服务器发送请求,并等待响应;
逻辑控制器,控制JMeter的测试逻辑,特别是何时发送请求.
3.监听器,提供了对JMeter在测试期间收集到的信息的访问方法.

4.定时器,默认情况下,线程在发送请求之间没有间隔,添加一种定时器,以便设定请求之间间隔多长时间.

5.断言,检查从服务器获取的响应内容.

6.Sample与采样器紧密相连,不发送请求,可以添加或者修改请求.

7.前置处理器,在采样器发出请求之前做一些特殊操作.

8.后置处理器,在采样器发出请求之后做一些特殊操作,常用来从响应中提取数据.

4.JMeter执行顺序规则

配置元件----前置处理器----定时器----采样器---- 后置处理器(除非服务器响应为空)-----断言(除非服务器响应为空)----监听器(除非服务器响应为空)

5.JMeter测试结果

label:定义HTTP请求名称
samples:表示这次测试中一共发出了多少个请求
average:平均响应时长,默认情况下是单个request的平均响应时长
median:中位数,50%用户的响应时长(50%阈值)
90%line:90%用户的响应时长(90%阈值)
min:访问页面的最小响应时长
max:访问页面的最大响应时长
error%:错误请求数量/请求总数
throughput:默认情况下表示每秒完成的请求数
KB/sec:每秒从服务器接收到的数据量

3.常见问题

请求数据中有乱码!

4.解决方案

设置HTTP请求,参数中的值显示为中文,但系统接受数据时,中文显示为乱码;在“查看结果树”中,查看HTTP请求,请求参数中的中文数据显示乱码。

在HTTP请求页面,Content encoding设置为utf-8即可。

6.扩展思考

性能测试结果的分析在完成JMeter测试脚本执行后.首先要做的就是判断收集到的测试数据是否真实有效,对无效的测试数据进行分析, 无端了浪费时间和精力.通常判断测试数据是否有效的方法如下:

分析在整个测试执行期间,测试环境是否稳定正常. 常见异常:CPU占用达到100%,内存占用很高,测试网络出现拥塞导致响应延迟,待测系统参数配置错误(JDBC连接池等);
检查JMeter测试脚本参数是否设置合理,建行擦JMeter运行模式是否合理,如Ramp-Up Period参数设置.
检查测试结果是否暴露了系统瓶颈.重点关注异常的测试结果,如果测试结果一切正常,首先需要考虑的是并发数是否足够多,压测是否足够大,或者待测系统是否存在压力屏蔽机制等.

参考文献

文献一:  https://blog.csdn.net/m0_37327416/article/details/78120465

文献二:  http://www.cnblogs.com/yangxia-test/p/3964881.html<
 

 

你可能感兴趣的:(java)