(二)性能测试理论知识-并发
-
并发
- 相对并发
- 绝对并发
- 线程
- TPS
- 用户数
不同并发
-
相对并发
指在一个时间段内发生的事情
jmeter又如何实现相对并发的呢?一般采用线程组实现相对并发,在jmeter中的测试计划去添加线程组,设置线程属性。
(1)新增线程组

(2)线程组界面配置详解

名称:定义线程组名称,若只有一个线程组,默认即可。
注释:描述线程组注释,可为空。
在取样器错误后要执行的动作:取样器发生错误要执行哪个动作,包含继续、启动下一进程循环、停止线程、停止测试、立即停止测试五个动作:
- 继续:取样器发生错误,忽略错误,继续执行。
- 启动下一进程循环:取样器发生错误,忽略错误停止当前线程循环,执行下一个循环。
- 停止线程:当前线程运行完毕后,停止所有线程
- 停止测试:停止测试计划,如果一个测试计划下有多个线程组,那么所有线程组都会停止
- 立即停止测试:整个测试计划会立即停止运行
线程数:设置线程数,可以在测试计划的用户自定义变量中设置变量,在这里引用测试计划的变量 ${uesrs}
ramp-up时间: 设置启动所有线程需要的时间,我需要启动10个线程,并且10s启动一个线程,所以我的ramp up的值就是10*10=100s。我需要启动30个线程,并且设置的ramp up的值是120s,那我就是120/30=4s每4秒启动一个线程。
循环次数:设置线程组中的每个线程循环次数
永远:勾选此项表示线程组中的线程永久执行下去
same user on each iteration:每次迭代使用相同的线程
延迟创建线程直到需要:如果勾选了此选项,那么线程只会在合适的需要用到的时候创建
调度器:线程调度器包含持续时间、启动延迟两个选项
- 持续时间:设置线程组运行多长时间,单位是秒
- 启动延迟:设置线程启动延时时间,单位是秒
相对路径的实际案例。
(1)之内启动10个线程,其对应的相对并发为5(线程数/启动时间),在没有添加其他逻辑控制器或定时器的情况下,线程属性中设置循环次数为3次,则sampler总共执行30次(线程数*循环次数)

(2)使用表格察看运行结果:每个线程都会运行3次

-
绝对并发
指在同一时刻发生的事情

- 设置集合点数:2,超时时间>2*1000/(10/2)=400ms
运行

2.设置集合点数:7,超时时间:0

运行结果:剩下2个请求,无法构成7个集合数,导致一直等待。点击stop剩下2个请求运行后结束执行

3.设置集合点数:7,超时时间:1500

运行:剩下2个请求,无法构成7个集合数,通过日志可以看到等待时间超过了1500ms,执行这两个请求后将终止运行

4.设置集合点数:20>10(线程数),超时时间0,将无法发送请求。点击stop会将30次请求全部执行,并不能按20个绝对并发执行
-
线程
线程组:就是一个线程组,里面有若干个请求。
线程:一个线程就是一个“虚拟用户”。
例如:1个线程组里面有10个请求,线程数为10个,跑完后得到:
理解为:(10个线程数)10个人,每个人都要跑这10个请求,所以:10*10=100:
并发数:100;线程数:10;
PS:线程组也可以看作是一个虚拟用户组。线程组中的每一个线程都可以理解为一个虚拟用户。
-
TPS
Transactions Per Second(每秒传输的事物处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。执行一次事务(包括请求、请求服务器、等待服务器返回等等,比如一个TPS事务,可能触发3个QPS请求)
一个接口一秒钟能承受50个并发,不代表可以有50个吞吐量。
吞吐量与系统性能息息相关。
设置长时间跑接口,比如1秒50并发,持续60秒——发现实际接口请求数1461个,时间60秒,TPS参数较稳定。
TPS=请求数/时间,TPS大概在23左右,所以当前这个接口,系统能处理的事务在23个左右。
工作中,一般把TPS当成并发,也就是1s内有多少完成的事务数,根据上面的例子,就是TPS=23/s
-
用户数
在线用户数:已登录系统的用户数。
并发用户数:同时操作的用户数,一般测试的时候并发用户取在线用户的20%-30%进行测试,在线用户数不是所有用户都正在并发交互,如一个网页,可能有20%是在浏览,20%在提交事务,50%在挂着没操作,所以真正的并发的用户不多。
系统用户数:系统注册用户数。
原文链接:https://www.cnblogs.com/lucky-happy/p/10537993.html

浙公网安备 33010602011771号