一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“JMeter测试HTTP GET(附实例)”。
一、HTTP Request配置项解析
Web Server:
1.Protocol [http]:
若为HTTP协议可以不填写(默认为HTTP);
若为HTTPS协议可以填写“https”;还可以为FILE协议(本地文件传输协议);
2.Server Name or IP:
HTTP/Web服务器的域名或IP地址,本机可以使用localhost或127.0.0.1表示;
3.Port Number:
HTTP/Web服务器的监听端口,若为HTTP协议,默认端口为80;若为HTTPs协议,默认端口为443。使用默认端口可以不填,非默认端口必填。
HTTP Request:
1.Method:
请求方法,测试GET请求,请选择“GET”。
2.Path:
HTTP请求行中的request-target,可以使用绝对地址或相对地址。
比如: http://www.test.com/ecshop/index.php (绝对地址)
/ecshop/index.php(相对地址)
注意: 若使用绝对地址,则会覆盖“Web Server”中的配置。
3.Content-encoding:
通常用于在发送POST、PUT、PATCH请求时对message-body进行内容编码,以防止请求出现乱码或服务器无法正确处理请求。
注意其与请求的首部字段“Content-encoding”无关。
4.Redirect Automatically:
自动重定向。在JMeter中不记录重定向的过程,只能看到最终的重定向请求。
5.Follow Redirects:
跟随重定向。在JMeter会详细记录重定向的过程,可以看到多个重定向请求。
其中4与5是互斥的。
比如,使用http://www.sina.com.cn/访问新浪,会有一次重定向:
第一次请求: GET http://www.sina.com.cn/ 重定向返回: Location:https://www.sina.com.cn/
第二次请求: GET https://www.sina.com.cn/
若设置自动重定向,在查看结果树中只能看到最终的请求:GET https://www.sina.com.cn/
若设置跟随重定向,可以看到全部的两次请求。
6.Use KeepAlive:
勾选在请求中加入首部字段“Connection: Keep-Alive”,否则设置为“Connection: Close”,默认为勾选。
7.Use multipart/form-data:
是否以multipart/form-data传输message-body。
8.Browser-compatible headers:
勾选此项,在使用multipart/form-data时,会抑止Content-Type与Content-Transfer-Encoding首部字段,仅发送Content-Disposition首部字段。
二、应用案例
▲ 测试案例说明
1. 接口说明:
查询被购买商品的总金额接口
2. 请求方式:
HTTP GET请求
3.接口地址:
/ecshop/upload/goods.php
4. 请求参数:
1) 输入参数:
2) 请求示例:
GET /ecshop/upload/goods.php?act=price&id=9&attr=227&number=1&1551081863462462
HTTP/1.1
Accept: */*
X-HttpWatch-RID: 22945-10042
Referer: http://localhost/ecshop/upload/goods.php?id=9
Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like
Gecko
Host: localhost
Connection: Keep-Alive
Cookie: ECS[history]=9; ECS[visit_times]=2;
ECS_ID=2a50bfdc24b5443814e73a5783912e21a55af811
5. 返回参数:
1) 响应参数:
2) 响应实例:
HTTP/1.1 200 OK
Date: Mon, 25 Feb 2019 08:16:27 GMT
Server: Apache/2.2.4 (Win32) PHP/5.2.4
X-Powered-By: PHP/5.2.4
Cache-control: private
Content-Length: 50
Keep-Alive: timeout=5, max=86
Connection: Keep-Alive
Content-Type: text/html; charset=utf-8
{"err_msg":"","result":"\uffe52298\u5143","qty":1}
▲ 测试步骤
1.在“Test Plan”节点上右键,选择Add-->Threads(users)-->Thread Group;
2.在“Thread Group”节点上右键,选择Add-->Sampler-->HTTP Request;
3.在“HTTP Request”节点上右键,选择Add-->Listener-->View Results Tree;
4.选中“HTTP Request”对HTTP请求进行配置;
5.点击“Save”,保存测试计划;
6.点击“Start”,运行JMeter测试。
HTTP GET请求的参数有两种基本的配置方法:
1. 放在Path配置项中:
2. 放在Parameters选项卡中: