jmeter 接口测试之 post 请求

本贴最后更新于 2045 天前,其中的信息可能已经东海扬尘

前言

我相信很多人都知道 get 和 post 是 HTTP 协议中两种发送请求的方法,但我猜测很多人和笔者一样,虽然知道,但如果面试官问我 get 请求和 post 请求的区别是什么?我估计自己会懵逼 10 秒。。。

接下来,跟随笔者,一起理解下 get 和 post 的含义

GET:用来从服务器上获取数据,只是通过查询获取数据,不会修改服务器上的数据

POST: 可以用来从服务器获取数据,但也可以向服务器发送修改数据请求,从而使得数据库的数据发生变化,比如,我们在微信上发表评论、在技术 blog 上回帖等就使用到 post 的了

理解完含义后,我们来看看 get 请求和 post 请求的区别

1 参数提交的方式不同

这一点是最容易理解的,因为我们在操作过程中就可以看到 GET 请求的参数是放在 URL 里的,会通过 url 地址?来传递参数,将用户提交的信息显示在地址栏中;POST 请求也可以把数据传输到服务器上,但是不是利用 URL,而是利用 HTTP request 请求报文头,post 请求目前借助于表单产生

2 post 请求比 get 请求安全,关于这一点,网上有大神做了很好的解释,大家可以自行百度,因为笔者目前无法很好地解释。。

3 get 请求对数据内容和数据值编码都有限制,post 请求没有编码和长度限制,目前 get 请求的参数只能是 ASCII 码,所以中文需要 URL 编码

好啦,因为能力有限,目前先把容易理解的区别记录下来,接下来进入正题

我们知道常见的接口测试类型就是 get 型接口和 post 型接口,前面几篇 blog 基本上都是介绍的 get 型接口测试,get 型的参数通常写在 url 中,而 post 型的不能用 url 传递参数,而必须写在请求体中提交给服务器。今天我们主要就是来介绍在 jmeter 中如何发送 post 请求数据,这里,需要根据 post 请求的格式分为两种情况,一种是 map 格式,另一种就是 json 格式,笔者之前就是混淆了,导致运行一直报错

一 map 格式

post 请求数据为 map 格式,map 格式就是我们常说的键值对,即 key-value 键值对,此处请求的参数通常添加在 Parameters 参数表中,具体操作如下,此处拿笔者在本地用 Python 写的接口作为例子

第一步:打开 jmeter,创建线程组和 HTTP 请求

TestPlan-->右击-->添加-->Threads(Users)-->线程组

线程组-->右击-->添加-->Sampler-->HTTP请求

第二步:对 HTTP 请求页面进行设置

HTTP请求页面:
名称:post请求之map格式(此处可以默认不填)
注释:可以为空
协议:可以为空(默认是http协议)
服务器名称或ip:127.0.0.1
端口号:可以不填(默认80)(可以输入命令:vim /etc/httpd/conf/httpd.conf
在http.conf文件中可以查看到端口号)
方法:POST
路径:/Demo1
Content encoding:utf-8
点击Parameters,然后点击添加,名称输入name,值输入branda
其他内容默认

78.png

第三步:添加察看结果树

线程组-->右击-->添加-->监听器-->察看结果树

第四步:运行并查看结果

79.png

二 json 格式

json 格式的操作步骤和 map 格式有很多相似的地方,不同的是,json 格式需要在请求头中声明下请求参数的格式是 json

第一步:打开 jmeter,创建线程组和 HTTP 请求

TestPlan-->右击-->添加-->Threads(Users)-->线程组

线程组-->右击-->添加-->Sampler-->HTTP请求

第二步:对 HTTP 请求页面进行设置

HTTP请求页面:
名称:post请求之json格式(此处可以默认不填)
注释:可以为空
协议:可以为空(默认是http协议)
服务器名称或ip:127.0.0.1
端口号:可以不填(默认80)(可以输入命令:vim /etc/httpd/conf/httpd.conf
在http.conf文件中可以查看到端口号)
方法:POST
路径:/Demo2
Content encoding:utf-8
点击Parameters,然后点击添加,名称输入name,值输入branda
其他内容默认

80.png

第三步:添加 HTTP 信息头管理器,并对页面进行设置

线程组-->右击-->添加-->配置元件-->HTTP信息头管理器

在HTTP信息头管理器页面:
1 点击添加
2 名称输入Content-Type,值输入application/json

81.png

第四步:运行并查看结果

图片 82.png

以上,over

原创申明:以上内容都是笔者个人经验总结,仅供参考,如需转载,请注明出处

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...