Jmeter使用入门(3)

2022-01-08 12:57

t01885d58f9215e7832

理解:常规意义上的线程组,即虚拟用户组。

SetUp Thread Group:

控件截图:

t014f799e5f5a17a19d

理解:测试初始化操作,即线程组开始之前执行的内容。

实际使用:可用于初始化测试环境,测试数据准备等。

TearDown Thread Group:

控件截图:

t01d42b8132033a5e69

理解:测试执行后操作,即线程组执行完成后执行的内容。

实际使用:可用于清理测试环境,清空测试数据等。

测试片段(Test Fragment)

理解:与线程组同级别,但是默认不会执行。只有当他被模块控制器引用的时候才会被执行。

控件截图:

t01b5d809b604539399

逻辑控制器(Logic Controller)

理解:用来控制采样器的执行顺序

分类:

控制采样器的逻辑执行顺序,如Loop Controller、If Controller等

对采样器进行分组,方便控制的,如Throughput Controller、Transaction Controller

控件截图:

t01cb182b09d539daa8

常用控件:

简单控制器(Simple Controller):

作用:这是Jmeter里最简单的一个控制器,它可以让我们组织我们的采样器和其它的逻辑控制器(分组功能),提供一个块的结构和控制,并不具有任何的逻辑控制或运行时的功能。

循环控制器(Loop Controller):

作用:指定其子节点运行的次数,可以使用具体的数值(如下图,设置为5次),也可以使用变量

1、Forever选项:勾选上这一项表示一直循环下去

2、如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环控制器的子节点运行的次数为两个数值相乘的结果。

t015182a1b65fcce0a3

仅一次控制器(Once Only Controller):

作用:在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,登录场景经常会使用到这个控制器。

注意:将Once Only Controller作为Loop Controller的子节点,Once Only Controller在每次循环的第一次迭代时均会被执行。

ForEach控制器(ForEach Controller):

作用:ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值。如下图:

参数:

Input Variable Prefix:输入变量前缀

Output variable name:输出变量名称

Start index for loop(exclusive):循环开始的索引(这里如果不填写,默认从1开始,如果没有1开始的变量,执行时会报错)

End index for loop(inclusive):循环结束的索引

Add"_"before number:输入变量名称中是否使用"_"进行间隔。

t0131fdb640dbea3abb

用户自定义变量:

变量名前缀为ForEach Controller中Input variable prefix定义的name + 下划线(上图中我们勾选了下划线)+数字编号

t01d562a3a1bfebd65f

执行结果:

总共执行了3次,每次执行时会把获取到的变量值赋值给输出变量outNmae,其它地方可以通过${outNmae}进行调用。

t01de7b3f2c5e945bc4

事务控制器(Transaction Controller):

作用: 事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。

t01f84dcb4ee5a18d0f

参数:

Generate parent sample:(选中这个参数结果展示如下图红框,否则显示为下图蓝框)

Include duration of timer and pre-post processors in generated sample:选中这一项会统计定时器(timer)的时间,否则只统计采样器(sample)的时间

t01f1d4ac67c9e59c3c

If 控制器(If Controller):

作用:根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行判断(如下图红框内的文字)。

t01828e70a110401a0c

参数:

Interpret Condition as Variable Expression?:选中这一项时表示:判断变量值是否等于字符串true(不区分大小写)

Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式

示例一:使用变量的方式进行判断:

t014d0b762a792c9d44

示例二:选中Interpret Condition as Variable Expression?

t0140f7fd29ac7969f4

t01ef657e42b6fa0b0dt01ea7f4eb2d94b257e

Switch控制器(Switch Controller):

作用:Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式:

第一种是数值,Switch控制器下的子节点从0开始计数,通过指定子节点所在的数值来确定执行哪个元素。

第二种是直接指定子元素的名称,比如采样器的Name来进行匹配。当指定的名称不存在时,不执行任何元素。

当Value为空时,默认执行第1个子节点元素。

示例:

1、Switch Controller选择的值为login page

t011851bbdba8e14e21

2、执行结果:

t016d176b5bf775e764

吞吐量控制器(Throughput Controller):

作用:控制其下的子节点的执行次数与负载比例分配,也有两种方式:

Total Executions:设置运行次数

Percent Executions:设置运行比例(1~100之间)

t01f03995e322c0fc3d

示例:

1、设置线程组循环5次:

t01affd40eaac8dfef7

2、Throughput Controller1的子结点执行3次:

t01bc9581ad907370bf

3、Throughput Controller2的子结点执行(40% * 线程组循环次数5)= 2次:

t01f86d7924bfd4c467

执行结果:

t01e2c7d5cdaacea5f4

随机控制器(Random Controller):

作用:随机执行其下的所某个子结点

随机顺序控制器(Random Order Controller):

作用:随机执行其下的所有子结点

配置元件(Config Element)

理解:为测试提供数据支持的控件

控件截图:

t0196e77cd7da23d1c2

常用控件:

CSV Data Set Config

理解:读取txt,csv格式的测试数据

使用说明:

新建一个txt文件

t01f32517a1281277bf

设置CVS 配置参数

t018239366a4078e8fc

CSV Data Set Config各个参数的简要说明:

FileName:csv文件或txt文件路径,可用相对路径

File Encoding: 文件编码格式设置

Varible Names: 定义文本文件中的参数名,可设置多个参数,参数之间逗号分隔.定义后可在脚本中引用,引用方式${name}

Delimiter(use "\t" for tab):指定参数分隔符号

Allow Quoated data: 是否允许引用数据

Recycle on EOF: 是否循环取值

Stop Thread on EOF: 当Recycle on EOF为false并且Stop Thread on EOF为true,则读完csv文件中的记录后,停止运行

Sharing Mode: 设置是否线程共享

使用场景:可用于多个jmx模块情况下读取服务器配置,或存储id,账号等测试数据。

t0164ebd02c879e28e1

HTTP Cookie管理器

特性:

1,象浏览器一样的存储和发送Cookie。如果你请求一个站点,然后他的Response中包含Cookie,Cookie Manager就会自动地保存这些Cookie并在所有后来发送到该站点的请求中使用这些Cookie的值。(在View Results Tree的Request界面可以看到被发送的Cookie Data, 同时每个线程的Cookie Manager是相互独立的)

接受到的Cookie的值能被存储到JMeter 线程变量中(2.3.2版本后的JMeter不自动做这个事情)。要把Cookies保存到线程变量中,要定义属性"CookieManager.save.cookies=true"。

线程变量名为COOKIE_ + Cookie名。属性CookieManager.name.prefix= 可以用来修改默认的COOKIE_的值。

2,手动添加Cookie到Cookie Manager,需求注意的是这些Cookie的值被会所有线程共享

定义:属性"CookieManager.save.cookies=true"

在jmeter.properties文件中增加CookieManager.save.cookies=true,然后在Debug Sampler中就能看到COOKIE_xxx这样的变量,或者也可以使用正则表达式来提取Cookie的值

实例截图:t01e5f8e84d7f9745a2

使用注意事项:

路径必须填写,否则会导致nocookie

路径和域组成完整的访问地址,谁访问谁就用对应的cookie

Cookie不是跨域的

不同的逻辑控制器中要分别放cookie管理器,或放在该cookie逻辑控制器同级,否则会不生效

t01c469a1aec75093fa

HTTP信息头管理器

理解:定义信息头,在其覆盖下的所有元件都会使用该信息头。例如定义在测试计划中的信息头,即该测试计划所有请求的信息头。

实例截图:

t010c81e893fb7b5477

JDBC Connection Configuration


Jmeter使用入门(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:去除图片水印常用且简单的5种水印去除法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: