Jmeter之HTTP Request Defaults

一、HTTP Request Defaults的作用: 
  该组件可以为我们的http请求设置默认的值。假如,我们创建一个测试计划有很多个请求且都是发送到相同的server,这时我们只需添加一个Http request defaults组件并设置“Server Name or IP”,然后添加多个http请求且不设置"server name or ip",这些http请求会默认使用Http request defaults组件设置的值。 
 

HTTP Request Defaults 
Name: HTTP Request Defaults 1 
Comments: 
Web Server 
Server NarPort Number: 
Timeouts (milliseconds) 
HTTP Request 
Implementation: 
Path: 
Parameters 
HttpClient4 
Connect: 
Protocol [http]: http 
Response: 
Content encoding: 
Send Parameters With the Request: 
Name: 
aaa 
Proxy Server 
Server Name or IP: 
Value 
Add from Clipboard 
POI Number: 
Encode? 
Delete 
Up 
username 
Include Equals? 
Password 
Embedded Resources from HTML Files 
D Retrieve All Embedded Resources Use concurrent pool. 
Size: 
URLs must match:

 

 
参数列表: 

 

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 

  
二、特别注意: 
  在Jmeter之Http Cookie Manager这里我们说过,一个测试计划最好只有一个Manager组件,因为Jmeter无法处理多个Manager的情况。但在一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加。 
例子: 
  如下,定义了两个HTTP Request Defaults组件,一个Http sampler(one什么也不填写),一个View Resuls Tree: 
HTTP Request Defaults1:Server Name or IP: www.baidu.com,一个参数:aaa=111 
  

Test Plan 
Thread Group 
HTTP Request Defauts2 
one 
View Resuts Tree 
Debug Sampler 
HTTP Cookie Manager 
Work aench 
HTTP Request Defaults 
Name: HTTP Request Defaults 1 
Comments: 
Web Server 
Server 'Port Number: 
Timeouts (milliseconds) 
HTTP Request 
Implementation: 
Path: 
Parameters 
HttpClient4 
Connect: 
Protocol [http]: http 
Response: 
Content encoding: 
Send Parameters With the Request: 
Encode? 
Inclu

 

 
HTTP Request Defaults2:Server Name or IP: www.qq.com,两个参数:bbb=22,aaa=333 
 

Test Plan 
Thread Group 
HTTP Request Defautsl 
one 
View Resuts Tree 
Debug Sampler 
HTTP Cookie Manager 
Workaench 
HTTP Request Defaults 
Name: HTTP Request Defaults2 
Comments: 
Web Server 
Server 'Port Number: 
HTTP Request 
Implementation: 
Path: 
Parameters 
ame: 
000 
aaa 
Timeouts (milliseconds) 
Connect: 
Protocol [http]: 
Response: 
Content encoding: 
Send Parameters With the Request: 
Encode? 
Inclu.

 

 
运行结果: 
 

Test Plan 
Thread Group 
HTTP Request Defautsl 
HTTP Request Defauts2 
one 
View Resurs T 
Debug Sampler 
HTTP Cookie Manager 
Work aench 
View Results Tree 
Name: View Results Tree 
Comments: 
Write results to file / Read from file 
Filename 
Text 
Log/Display Only: Errors Successes 
Sampler result Request Response data 
GET http:/twww baidLLcom/?aaa=111&OOO=222&aaa=333 
no coo les 
Request Headers 
Connection: keep-alive 
Host www baiducom 
user-Agent Apache-HttpClient/426 (java 1 S)

 
总结: 
1、一个测试计划中可以有多个Defaults组件,多个Defaults组件的默认值会叠加,如上图,虽然两个Defaults 组件都定义了参数aaa,但发出的请求还是会叠加起来。 
2、两个default中都定义的"Server Name or IP",显示在发送请求时只能使用一个,这里使用的是第一个default定义的值www.baidu.com 

posted @ 2017-11-28 12:32  春田花花同学会  阅读(143)  评论(0编辑  收藏  举报