JMeter基础:配置元件

JMeter的配置元件有很多的功能,读取文件数据,设置公共请求参数,赋予变量值等,以便后续采样器使用。

 

CSV Data Set Config

作用:从文件中读取数据,并将它们拆分后存储到变量中,适合处理众多变量。

JMeter 2.3.4以后的版本,支持CSV文件中有标题行,如果变量名为空,那么文件的第一行将被读取,并被解释为列名的列表。

JMeter基础:配置元件_第1张图片

  • Filename:文件的名称。填写文件路径
  • File encoding:一般设置UTF-8
  • Variable Names:变量名列表(逗号分隔)
  • Delimiter:默认逗号
  • Allow quoted data?:CSV文件是否容许值被引用,选择true或者false
  • Recycle on EOF?:达到文件结尾后,是否从文件开始循环重新读取(默认True)。

Recycle选项设置为True时,当到达文件尾,会从文件第一行重新开始读取。

如果Recycle选项为False,那么到达文件尾部时所有变量都将被置为

  • Stop thread on EOF?:达到文件结尾后,线程是否该终止。

Recycle on EOF 和Stop thread on EOF的关系:


当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,因为既然前面已经设置了文件是不停的循环读取,后面的控制stop就相当于失效;
当Recycle on EOF 选择false时,Stop thread on EOF选择true,则当线程数超过文件里的参数的个数时,实际请求数为参数的个数;
当Recycle on EOF 选择false时,Stop thread on EOF选择flase,当线程数超过文件里参数的个数时,实际请求次数为线程数,但当线程数超过参数次数时,由于没有参数,所以结果仍然是失败的。

  • Sharing mode:如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件名test${__threadNum}.csv,并将“sharing mode"设置为"Current thread"

All threads:文件在所有线程间共享。

Identifier:所有线程共享相同的标识,共享相同的文件。如有4个线程组,测试人员可以使用一个通用ID,以便在两个或多个线程组之间共享文件。

Current thread:每个文件会针对每个线程单独打开。

Current thread group:每个文件会针对每个线程组打开一次。

 

HTTP授权管理器

可以帮助测试人员指定针对Web页面的一个或多个登录。如果没有定义,HTTP客户端采样器默认使用pre-emptive校验,要禁止这一功能,做如下设置: jmeter.propertied中:设置 httpclient.parameters.file=httpclient.parameters  httpclient.parameters中:设置 http.authentication.preemptive$Boolean=false ,上面的设置只影响HTTPClient采样器(SOAP采样器,也使用HTTPClient). 注意,如果在一个采样器的作用域范围内有多个授权管理器,那么目前没办法确认JMeter使用哪个授权管理器。

Base URL: 一部分或者完整的URL,用于匹配一个或者多个HTTP 请求URL。例如:指定一个Base URL(http://jakarta.apache.org/restricted/),对应用户名“jmeter",密码”jmeter".如果测试人员发送一个HTTP请求到 URL(http://jakarta.apache.org/restricted/ant/myPage.html),授权管理器就会发送用户名为"jmeter"登录信息

username:校验用的用户名

Password:该用户的密码

Domain:针对NTLM使用的域

Realm:针对NTLM使用的realm

 

HTTP Cache Manager

用来为其作用域内的HTTP请求提供缓存功能。

如果“Use Cache-Control/Expires header When ..."选中,那么会根据当前时间来选择。

如果请求是”GET",而时间指向未来,那么采样器就会立即返回,而无须从远程服务器请求URL,这样是为了模拟浏览器的操作,请注意Cache-Control头必须是“pulic”的,并且只有"max-age"终结选项会被处理。

如果请求文档自从其被缓存以来没有发生任何改变,那么响应包体就会为空。

 

HTTP Cookie管理器

主要有两个功能:

一个功能是:像web浏览器一样存储和发送Cookie。如果有一个HTTP请求和相应里包含Cookie,Cookie管理器会自动存储Cookie,那么接下来针对特定web站点的所有请求中使用该Cookie。可在结果树中查看。

接收到的Cookie可以被保存为变量,须定义属性"CookieManager.save.cookie=true"。另外,在被存储前Cookie名称会加上前缀“COOKIE_",要恢复早前处理方式,则定义属性”CookieManager.name.prefix="(一个或多个空格)。

如果启动了该功能,那么名称为TEST的Cookie,可以通过${COOKIE_TEST}加以引用。手动为Cookie管理器添加一个Cookie(为所有JMeter线程所共享)。

 

HTTP请求默认值

设置HTTP请求使用的默认值,一般是多个接口有一些公共参数时会使用请求默认值。配置完默认值后,在创建 各个HTTP 请求时就可以不必加这些公共参数了,Jmeter 会在发送请求时自动把把这些公共参数加上。

JMeter基础:配置元件_第2张图片

HTTP请求默认值的Value有两种写法,一种是具体的值,比如图上的"10040",另一种是引用一些已经定义好的变量${VARIABLE} ,比如${ffAppID}

参数列表:

JMeter基础:配置元件_第3张图片

Attribute Description Required

Name

组件名 No

Server

域名或IP No
Port 端口 No
Connect Timeout 连接超时时间(单位毫秒) No
Response Timeout 响应超时时间(单位毫秒) No
Implementation 实现方式,默认值为Jmeter属性:jemter.httpsampler No
Protocol 协议,HTTP or HTTPS No
Method 请求方法:HTTP GET or HTTP POST No
Path 请求资源路径 No
Send Parameters With the Request 参数列表 No
Server (proxy) 代理服务器的域名或IP No
Port 代理服务器的端口 No, unless proxy hostname is specified
Username 代理服务器的用户名 No
Password 代理服务器的密码 No
Retrieve All Embedded Resources from HTML Files 告诉Jmeter解析HTML文件并发送所有资源请求(包括图片,java小程序,JS,CSS等) No
Use concurrent pool 用一个连接池来获取嵌入的资源 No
Size 用于获取嵌入式资源的并发连接池大小 No
Embedded URLs must match: URL匹配,过滤 No

 

HTTP信息头管理器

可添加或者重载HTTP请求头,JMeter目前支持多个信息头管理器,信息头目将被合并起来构成采样器列表。如果一个待合并条目匹配一个已经存在的信息头名,那么它就会替代目前的条目,除非条目值是空,在这种情况下已经存在的条目会被移除,这容许用户设置一系列默认信息头,并对特定采样器加以调整。

JMeter基础:配置元件_第4张图片

Name(header):请求头的名称,比如Content-Type

Value:请求头的值,比如application/json

 

登录配置元件

为采样器添加或重载用户名和密码。

 

用户定义的变量

定义初始化一系列变量,都在初始化阶段处理。

JMeter基础:配置元件_第5张图片

 

Random Variable

被用来产生随机数字字符串,接下来将其存放到变量之中。

  • Variable Name: 变量名,用于保存随机字符串
  • output format:使用java.text.DecimalFormat格式字符串,例如”000"会产生至少3个数字的随机数,或者“USER_000"产生的输出格式为USER_nnn,如果不指明,就是用long.toString()来产生数字
  • Minimum Value:产生随机数的最小值(整数)
  • Maximum Value:产生随机数的最小值(整数)
  • Seed for Random function:随机数产生器的种子,默认为当前时间(以毫秒为单位)
  • Per Thread(User)?:如果为False,则随机数产生器在线程组的所欲线程共享,为True,则每个线程都有自己的随机数产生器。
  • 计数器:容许用户创建一个计数器,可在线程组中任何地方被引用
  • 简单配置元件:可以在采样器中添加或者重载任意值

你可能感兴趣的:(Jmeter)