压测-JMeter

一.名词解释
1.throughput:吞吐量(每秒执行的线程数)
持续时间=最后一个线程启动的时间+最后一个线程持续的时间-第一个线程启动的时间
吞吐量=总的线程数/持续时间=100/4.524=22.1个线程/sec

TPS(TransactionsPerSecond)每秒事务数
一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS:Query Per Second ---- 每秒查询率,每秒访问服务器资源多少次

RPS:Requests Per Second(每秒发送请求数;吞吐率),指客户端每秒发出的请求数。

Tps即每秒处理事务数,包括了
1)用户请求服务器
2)服务器自己的内部处理
3)服务器返回给用户
这三个过程,每秒能够完成N个这三个过程,Tps也就是N;

Qps基本类似于Tps,但是不同的是,对于一个页面的一次访问,形成一个Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。
例如:访问一个页面会请求服务器3次,一次访问,产生一个“T”,产生3个“Q”

RPS有些地方也叫做QPS,在不单独讨论“事务”的情况下可以近似对应到Loadrunner/jmeter的TPS(Transaction Per Second, 每秒事务数)。计算公式:Requests per second = Complete requests / Time taken for tests,即吞吐率 = 总请求数 / 处理这些请求的总完成时间。
吞吐率是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。

2.响应时间(RT Response Times)

二。Jemter 配置
3.线程数:模拟用户请求数
4.Rame-Up-Time :请求数全部执行完的时间数,线程数*循环次数
如线程数100,rame-up-time为2,则2秒内触发100个请求
线程数100,rame-up-time为0,则100个请求同时触发(并发数100)

同步定时器:
模拟用户组的数量:为到集合点释放的线程数
超时时间:
超时时间如果设置为0,线程将会等待线程数达到了设置的值才释放。如果线程数不足集合点中设 置的数,就会一直处于等待当中。
如果设置时间大于0,那么如果超过设置的最大等待时间后还没达到模拟用户组中设置的值,线程组将不再等待,释放已到达的线程。
使用同步定时器做性能测试时,聚合报告中的响应时间一般会大于接口真实的响应时间,可以通过其他的监控工具查看接口真实的响应时间

常量吞吐量定时器(Constant Throughput Timer) 的主要属性介绍:

目标吞吐量(每分钟)-- Target throughput(in samples per minute):注意这里是每分钟发送的请求数,因此,若对应测试需求要求的20 QPS ,这里的值应该是1200 。

基于计算吞吐量–Calculate Throughput based on :有5个选项,分别是:

只基于此线程–This thread only :控制每个线程的吞吐量,选择这种模式时,总的吞吐量为设置的 target Throughput 乘以线程的数量。

为了维持相同吞吐量每个线程会延迟一段时间

针对所有线程–All active threads :吞吐量被分配到所有线程组的所有活动线程的总吞吐量。每个线程将根据上次运行时间延迟。在这种情况下,每个线程组需要一个具有相同设置的固定吞吐量定时器。(不常用);把所有线程的吞吐量合在一起作为因子计算,设置的target Throughput 将分配在每个活跃线程上,每个活跃线程在上一次运行结束后等待合理的时间后再次运行。活跃线程指同一时刻同时运行的线程。

针对当前线程组中的所有线程–All active threads in current thread group :吞吐量被分摊到当前线程组所有的活动线程上。每个线程将根据上次运行时间延迟。设置的target Throughput将分配在当前线程组的每一个活跃线程上,当测试计划中只有一个线程组时,该选项和All active threads选项的效果完全相同。

All active threads (shared ):与All active threads 的选项基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程上一次运行结束后等待合理的时间后再次运行;每个线程是根据线程的上次运行时间来延迟。相当于让所有线程组整体排队。(不常用)。

All cative threads in current thread group (shared ):与All active threads in current thread group 基本相同,唯一的区别是,每个活跃线程都会在所有活跃线程的上一次运行结束后等待合理的时间后再次运行;每个线程是根据组中的线程的上一次运行时间来延迟。相当于线程组组内排队。(不常用)

当然,Constant Throughput Timer只有在线程组中的线程产生足够多的request 的情况下才有意义,因此,即使设置了Constant Throughput Timer的值,也可能由于线程组中的线程数量不够,或是定时器设置不合理等原因导致总体的QPS不能达到预期目标。

二.绝对并发、相对并发、持续并发
1.相对并发:指在一个时间段内发生的事情
在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动2000个线程,其对应的相对并发为1000(线程数/启动时间)

2.绝对并发:指在同一时刻发生的事情
2.1线程数100,rame-up-time为0,则100个请求同时触发
2.2一般使用同步定时器实现绝对并发,即当所有请求集合完毕之后一块出发
(使用同步定时器做性能测试时,聚合报告中的响应时间一般会大于接口真实的响应时间,可以通过其他的监控工具查看接口真实的响应时间)

3.持续并发压测
设置线程组、循环次数=勾选“永远”,调度器(持续时间),这种方式可以控制压测周期时间

三.常见压测需求
1.一个用户以 20QPS 的频率访问服务器,持续10秒,查看服务器的平均响应时间?
等同于(一个用户每秒访问20次服务器,持续10秒,查看服务器的平均响应时间?)
2.求页面负载达到20 QPS时的响应时间
(控制首页发送请求的负载为20QPS)
设置定时器的Target throughput为1200/分钟(20 QPS),设置Calculate Throughput based on 的值为All active threads 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值