Jmeter体系结构-线程组
前言
Jmeter体系结构我们可以简单分层为:测试计划-->线程组-->元件-->组件。
一个测试计划的下一层就是线程组,线程组下面是所有元件,每一个元件又是多个组件的集合。
Jmeter 自带的线程组控件(Thread Group),是所有测试计划的起始点。一个线程组就是一个虚拟用户组,线程组中的每一个线程都是一个模拟用户。模拟并发测试,即多个线程(虚拟用户)同时去执行相同的任务。线程之间是独立的,单独线程操作变量,不影响其他线程的变量值。
Thread Group
Thread Group是普通线程组,一个线程组就是一个虚拟用户组,线程组中的每一个线程都是一个模拟用户。Jmeter线程组添加路径:Test Plan-->Add-->Threads(Users)-->Thread Group
如上图所示,Jmeter提供三种不同的线程组:
SetUp Thread Group
SetUp Thread Group设置线程组,它是线程组的一种特殊形式,用于在常规线程组开始执行之前执行必要的操作。设置线程组中提到的线程的行为与普通线程组完全相同。设置线程组的目的是将所有预测试操作与普通线程组区分开来,以便在实际测试执行开始之前执行它们。Jmeter自动触发正常线程组之前的设置。例如:
TearDown Thread Group
TearDown Thread Group卸载线程组,它也是线程组的一种特殊形式,用于在常规线程组执行完成后执行必要的操作。设置线程组中提到的线程的行为与普通线程组完全相同。TearDown Thread Group区分普通线程组在于执行所有测试后运行。也就是在执行普通线程组完成后,Jmeter将自动触发TearDown线程组。执行普通线程组完成后,Jmeter将自动触发TearDown线程组。例如:
备注:
默认情况下,如果测试按预期完成,则TearDown Thread Group将不会运行。
如果你想要运行它,则需要从Test Plan界面中选中复选框“Run tearDown Thread Groups after shutdown of main threads”。
线程组的基本设置
添加一个线程组以后,需要进行配置才能更好的满足业务测试的要求。线程组界面中可以设置以下数据,进行控制线程组。如下图所示,我们把线程组的属性分配成:ABC三个区域,接下来分别进行解释。
容错配置
A区域包含的配置信息有线程组的名称和备注,还有处理容错机制的相关的特殊配置。详情如下:
Action to be taken after a Sampler error(取样器错误后要执行的动作):
以上配置就是我们所说的容错机制应用范畴,当测试过程中遇到错误,几种应对执行的策略。
线程配置
Thread Properties部分主要提供线程配置功能,详情见上图B区域。线程数也就是并发数,每个线程将会完全独立的运行测试计划,互不干扰。该区域为线程属性部分,此部分可以设置多个线程数,用于模仿对服务器的并发访问。
例如:Jmeter 将在60秒内启动60个线程的方法是,每秒启动一个线程。
执行原理:
Jmeter 将在 Ramp-Up Period 时间范围内,启动 Number of Threads 个用户(线程),并且使每个用户(线程)重复发出 Loop Count 次请求(采样)。
如下图所示,Jmeter 将在 10S 时间内,启动 100个用户(线程),并且重复发出 1次请求(采样)。
Scheduler Configuration
Scheduler Configuration直译为调度员配置,或者理解为调度器配置。该部分的配置主要是与时间相关,可以配置持续执行时间,配置启动执行延时时间。调度器配置可以更灵活的控制线程组执行的时间。
Duration(seconds) 持续时间(秒):测试计划持续多长时间,会覆盖结束时间。
Startup delay(seconds)启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。
注意:
小结
JMeter 将在 Ramp-Up Period 时间内,启动 Number of Threads 个线程并且利用每个线程重复发出 Loop Count 次请求,线程收到响应后,即发出 Loop 内的下一次请求线程的请求 Loop Count次数达到后,线程即被释放。
文章评论(2)
I was reading some of your blog posts on this website and I think this site is real instructive! Keep on putting up. Ernestine Selig Lenora
Im thankful for the blog post. Really thank you! Really Cool. Jessie Louie Kosaka