使用jmeter工具实现性能测试
作者:互联网
使用JMeter工具做性能测试
使用Jmeter工具做性能测试
JMeter执行原理
JMerer通过线程组来驱动多个(也可以理解为LR⼯具⾥⾯的虚拟⽤户)运⾏测试脚本对⽬标服务器发起⼤量的⽹络请求,在每个客户端上可以运⾏多个线程组,也就是说⼀个测试计划⾥⾯可以包含N个线程组。
线程数
⼀个线程可以理解为对应模拟⼀个⽤户,所以线程数越多,那么也就认为可以模拟的⽤户数越多。
Ramp-Up时间(秒)
该属性指的是所有线程从启动到开始运⾏的时间间隔,单位是秒,也就是说所有线程在多⻓时间内开始执⾏,如线程数设置50,设置的时间为5秒,那么计算的公式为:每秒执⾏线程数=线程数/Ramp-Up
具体如: 如设置的线程数为50,Ramp-up的时间为10,那么也就是说开启执⾏后,每秒会启动5个线程,如果Ramp-Up设置为0,那么开始执⾏后,50个线程会⽴刻启动。
停⽌线程
停⽌线程指的是如果请求失败,就停⽌当前线程执⾏,不再继续执⾏。如果线程数很多的,那么导致的结果是停⽌ 的线程就会很多,处于真正运⾏的线程会很少,最后导致服务器的负载不够,⼀般不建议构选改选项。 停⽌测试 如果请求失败,那么停⽌所有线程执⾏,也就是说停⽌整个测试。
启动下⼀个进程循环
如果请求出现问题,同⼀脚本中的其他请求就都不再执⾏,直接执⾏下⼀个进程的信息。如登录后下⼀个请求是查 看个⼈主⻚,但是因为登录出错,下个接⼝查看个⼈主⻚就不会被执⾏。
继续
如果有⼀个请求错误,其他的请求会继续,不会因为有⼀个请求错误的导致其他请求终⽌。
⽴即停⽌测试
如果请求失败,⽴即停⽌整个测试场景的执⾏。
负载测试和压力测试的区别?
负载测试指的是逐渐增加系统负载,观察系统在不同负载情况下的运行情况
1、验证服务被部署的系统出现资源瓶颈的时候,服务依然能够提供产品的特性 2、找到系统的最大饱和状态,或者是最大的处理极限,为系统后续的容量规划提供参考的数据
压力测试指的是系统在强负载情况下持续运行,观察系统的运行情况
该方法是指系统在一定饱和状态下,具体如CPU,内存等饱和使用的情况下,系统能够处理的会话能力,以及系统是否会出现错误,比如TimeOut,OOM,OverStackExpection(堆栈异常)。压力测试的特点: • 检查系统在处于压力情况下时应用的性能表现 • 等价于负载测试,使系统的资源处于一个瓶颈的状态(建议CPU和内存在75%以上) • 这种方式一般用于测试系统的稳定性
可靠性测试 给系统加载一定的业务压力,让应用持续运行一段时间,测试系统在这种条件下是否能稳定运行。
稳定性测试和可靠性测试区别?
可靠性测试
系统在运行过程中,即使是高负载,其失效率也应控制在预期效果里,否则就是可靠性低。
稳定性测试
对系统加载一定的压力,持续运行一段时间,根据并发量或系统监控等来观察系统的稳定性。
调度器
所谓调度器可以理解为设置何时开始运⾏。 持续时间 测试计划持续多⻓时间 启动延迟 从当前时间延迟多⻓时间开始运⾏测试,也就是说点击执⾏后,仅仅是做初始化的场景,不会执⾏测试,等待延迟 到达后开始运⾏测试,执⾏的时间为持续时间设置的时间。
Label:取样器名称
Samples:取样器运⾏次数
Average:单个请求的平均响应时间
Median:50%请求的响应时间 90%Line:90%请求响应时间 95%Line:95%请求响应时间 99%Line:99%请求的响应时间
Min:请求的最⼩响应时间
Max:请求的最⼤响应时间
Std.Dev:响应时间的标准⽅差
Error%:事务错误率
Throughput:吞吐率,也就是TPS KB/sec:每秒数据包流量
Avg.Bytes:平均数据流量
Received KB/sec:每秒从服务器端接收到的数据量
SentKB/sec:每秒从客户端发送的请求的数量
参数化:相同的测试步骤,不同的测试数据,那么这个时候我们把测试的数据分离到文件中,在JMeter中,是通过CSV数据文件设置来实现的。
标签:负载,请求,性能,系统,线程,测试,时间,jmeter 来源: https://www.cnblogs.com/shang123/p/16595857.html