JMeter基础:配置元件

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

 

CSV Data Set Config

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

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

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

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

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

  • 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 会在发送请求时自动把把这些公共参数加上。

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

参数列表:

AttributeDescriptionRequired

Name

组件名No

Server

域名或IPNo
Port端口No
Connect Timeout连接超时时间(单位毫秒)No
Response Timeout响应超时时间(单位毫秒)No
Implementation实现方式,默认值为Jmeter属性:jemter.httpsamplerNo
Protocol协议,HTTP or HTTPSNo
Method请求方法:HTTP GET or HTTP POSTNo
Path请求资源路径No
Send Parameters With the Request参数列表No
Server (proxy)代理服务器的域名或IPNo
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目前支持多个信息头管理器,信息头目将被合并起来构成采样器列表。如果一个待合并条目匹配一个已经存在的信息头名,那么它就会替代目前的条目,除非条目值是空,在这种情况下已经存在的条目会被移除,这容许用户设置一系列默认信息头,并对特定采样器加以调整。

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

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

 

登录配置元件

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

 

用户定义的变量

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

 

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,则每个线程都有自己的随机数产生器。
  • 计数器:容许用户创建一个计数器,可在线程组中任何地方被引用
  • 简单配置元件:可以在采样器中添加或者重载任意值
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页