JMeter快速入门知识系列(3)JMeter测试HTTP GET请求

3.1 HTTP协议简介

超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。从2007开始到2014为止,经过多年的努力,RFC2616和RFC2617已经被废弃,被新的RFC7230-RFC7239共10个文档所代替。

下面对HTTP协议的介绍都是基于最新的RFC7230-RFC7239。

HTTP报文格式

1.请求方法

传统HTTP请求方法:

RESTful HTTP请求方法:

状态码

首部

3.2 HTTP Request(GET)

配置项

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/访问新浪,会有两次重定向:

第一次请求: GET http://www.sina.com/ 重定向返回: Location: 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.可带查询字符串的请求方法

GET请求带查询字符串是最常见的,除此之外,DELETE、POST、PUT、PATCH也可以携带查询字符串,不过处理的方式不同:

a.GET、DELETE会将查询字符串附加在请求request-target之后;

b.POST、PUT、PATCH将查询字符串作为message-body单独发送。

2.查询字符串生成

a.直接放在Path配置项中(?后的一串字符,但不包括片段信息,各name=value通过&连接,name=可选)

比如,Path设置为:/ecshop/upload/goods.php?act=price&id=9&attr=227&number=1&1551081863462462

则查询字符串为:act=price&id=9&attr=227&number=1&1551081863462462

b.由“Parameters”选项卡中参数列表的“name/value”名值对生成(以name=value形式通过&连接)

比如:

Name Value

username zhangsan

password 123456

则生成的查询字符串为:username=zhangsan&password=123456

c.根据“Parameters”选项卡中参数列表的“name/value”名值对生成字符串并追加到Path中的查询字符串末尾(两者以&连接),

此规则仅对于GET请求有效。

比如,Path设置为: /index.php?cc=3

参数列表中的“name/vaue”名值对为:

Name Value

a 1

b 2

则生成的查询字符串为:cc=3&a=1&b=2

3.无名参数处理

对于POST、PUT与PATCH方法,若没有上传文件,并且参数没有对应的参数名,则将参数值之间连接起来作为message-body。

这些值的末尾不会加入行结束符,可以调用KaTeX parse error: Expected group after '_' at position 2: {_̲_char(13,10)}来插…{__char(13,10)}

line2

则message-body为:

line1

line2

对于其他请求方法比如GET,若参数没有参数名,则JMeter会忽略该参数。

4.当请求只有未命名的参数(或根本没有参数)

可以将请求参数放入“Body Data”选项卡中(也可以放在Parameters选项卡中)。一般用于发送如下类型的请求:

a.GWT RPC HTTP

b.JSON REST HTTP

c.XML REST HTTP

d.SOAP HTTP

在“Body Data”模式下,除了最后一行之外,每行末自动附加CRLF。要在最后一行数据之后发送CRLF,只需确保其后面有空行即可。

5.POST、PUT与PATCH方法的请求,message-body可以是如下之一:

a.在“File Upload”选项卡中,不设置“Parameter Name”,设置“MIME Type”为Content-Type;

b.在“Parameters"选项卡中,不设置“Name”;

c.将请求参数放在“Body Data”选项卡中。

6.参数的Content-Type设置

a.参数仅放在“Parameters”选项卡中,默认为“application/x-www-form-urlencoded”;

b.参数放在“Body Data"选项卡中,默认为“text/plain”;

c.参数仅放在"Files Upload”选项卡中,默认为“multipart/form-data”;

d.参数放在“Parameters”与“Files Upload”两个选项卡中,默认为“multipart/form-data”。

若要指定Content-Type,可以在取样器请求下添加一个HTTP首部管理器,并在其中设置Content-Type首部字段与值域。

3.3 应用案例

测试案例说明

1.接口说明:

查询被购买商品的总金额接口。

2.请求方式:

HTTP GET请求。

3.接口地址:

/ecshop/upload/goods.php

4.请求参数:

4.1输入参数:

4.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. 返回参数:

5.1响应参数:

5.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选项卡中:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343