Bootstrap

Jmeter笔记:压力测试

1.简介

压力测试(Stress Test):也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。
TPS:每秒事务数。一个事务是指客户端向服务器发送请求然后服务器做出反应的过程,具体的事务定义,可以是一个接口、多个接口、一个业务流程等等。

        以单接口定义为事务举例,每个事务包括了如下3个过程:向服务器发请求;服务器自己的内部处理(包含应用服务器、数据库服务器等);服务器返回结果给客户端。如果每秒能够完成 N 次以上3个过程,TPS 就是 N

QPS:每秒查询率。指一台服务器每秒能够响应的查询次数,用于衡量特定的查询服务器在规定时间内所处理流量多少,主要针对专门用于查询的服务器的性能指标。

        QPS 基本类似于 TPS,但是不同的是,对于一个事务访问,会形成一个 “ T ”;但一次 " T " 中,可能产生多次对服务器的请求,服务器对这些请求,就可计入 QPS 之中。

并发数:指系统同时能处理的请求数量,同时反应了系统的负载能力。这个数值可以分析机器1S内的访问日志数量来得到
吐吞量:吞吐量是指系统在单位时间内处理请求的数量,TPS、QPS都是吞吐量的常用量化指标。

总结

(1)如果是对一个查询接口压测,且这个接口内部不会再去请求其它接口,那么 TPS = QPS,否则,TPS ≠ QPS

(2)如果是容量场景,假设 N 个接口都是查询接口,且这个接口内部不会再去请求其它接口,QPS = N * TPS 

2.Jmeter参数

 线程数:用于设置并发数量,也就是多少个用户同时访问

Rame-Up Period(in seconds):控制每隔多少秒内启动线程,例如100线程,设置10s。10s内启动100线程数。

循环次数:用于设置线程组的循环次数

调度器:设置压测的持续时间、延时时间

常数吞吐量定时器:根据TPS值来设定目标TPS,注意单位是分设置时TPS*60

只有此线程(this thread only):控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的target Throughput 乘以该线程的数量

所有活动线程(all active threads):设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程

当前线程组中的所有活动线程(all active threads in current thread group):设置的target Throughput 将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和all active threads 选项的效果完全相同

所有活动线程(共享)(all avtive threads (shared)):与all active threads的选项基本相同。唯一区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行

当前线程组中的

;