Postman 测试案例(GET、POST)
HTTP的测试工具,使用比较方便,网站编程必不可少,而且有免费版本,可取官网上下载。对于32位机,下载Postman-win32-6.1.4-Setup.exe。
下面给出两个例子,一个是GET方法,一个是POST方法。被测试程序是一个使用Flask的程序,也一并给出代码,使得可以全面体会。
Flask是一个基于python的网站的框架,可使用标准的pip install flask下载。
Postman有许多功能,本文仅介绍最核心的发GET、POST的方法。
先介绍python程序,如下图。
首先现创建一个Flask的实例,赋予变量app。
@app.route是调用app(继承的Flask)的route方法作为装饰函数,把调用app.route时的参数与被装饰的函数联系起来。三个装饰器作用如下:
相对地址‘/’,方法GET(默认),与显示函数index联系起来
相对地址‘/index’,方法GET(默认),与显示函数index联系起来
相对地址‘/postjson’,方法POST,与显示函数postJsonHandler联系起来。
from flask import Flask from flask import request, jsonify app = Flask(__name__) @app.route('/') #默认methods=['GET'] @app.route('/index') #默认methods=['GET']
def index():
response = {
'message': 'morning',
'from': 'index'
}
return jsonify(response), 200
@app.route('/postjson', methods=['POST'])
def postJsonHandler():
print(request.is_json)
content = request.get_json()
print(content)
return 'JSONposted'
app.run(host='0.0.0.0', port=8090)
就是说
当浏览器的相对地址为‘/’或‘/index’时,按GET方法(浏览器地址栏中获取参数,本例没有参数),调用index函数。
当浏览器的相对地址为‘/postjson’时,按POST方法(从信息体中获取参数),调用postJsonHandler函数。信息将存于request中,其中方法get__json,分离数据,并以JSON(Javascript Object Notation)表示。
先运行上面的Flask程序,然后运行Postman。当出现界面后,如有一个如下图的对话框,其右上角有关闭键(红圈处),使关闭对话框,不生成Request、Collection等。
下图是第一个tab的画面:
图中有四个红圈:
‘+’:生成新的tab,每个tab可以用来设置不同的请求。图中有两个tab,其名称以URL地址栏中的内容命名,方便切换到相应的URL。
URL地址栏。在图中打入的为localhost:8090/index,其中
localhost为本地域名,127.0.0.1。在上面的程序中的域名为0.0.0.0,表示本地域名,运行后的本地域名一般为127.0.0.1。但flask运行后有提示,但有时提示的仍为0.0.0.0,如:
* Running onhttp://0.0.0.0:8090/ (Press CTRL+C to quit)。
所以为保险起见,本地域名以localhost为好。
8090是端口号
/index是相对URL地址
请求方式。设为GET,表示以GET方法请求,信息位于URL栏。
服务器回答信息。
按键Send后,服务器回答信息见红框,与程序中相应信息一致。
{ 'message': 'morning', 'from': 'index' }
第二个tab的名称是localhost/postjson,见下图。
按一下步骤,都是红圈:
在地址栏中,填入localhost/postjson;
请求方式,选择POST。信息将在信息体中传送;
选择Body(信息体);
选择raw;
同行最右面将出现下拉,选择JSON(application/json)
下面键入
{
'device': 'TemperatureSensor',
'value': '20',
'timestamp': '25/01/2017 10:10:05'
}
按键Send
返回JSON posted,并在
服务器显示上有
True
{'device': 'TemperatureSensor', 'value': '20', 'timestamp': '25/01/2017 10:10:05'}
表示服务器接收到在信息体中的信息。