postman简单操作
一、接口简介
接口:前端和后端通过接口交互(因为前端和后端的语言不一致),接口会返回一种通用的数据类型JSON(所有的语言都认识)。
- 前端:负责页面展示。
Web开发语言:html(页面),js(页面动画效果),css(页面上色)
ios开发语言:object-c,swift
Android开发语言:Android
- 后端:负责主要逻辑,操作各种数据库。
开发语言:Java,python,php,go等
接口文档:请求url,请求方式,参数,返回参数说明
get请求和post请求区别:get请求没有请求体,它的数据是在url里面放的
- get请求:用来向服务器获取数据
- post请求:用来向服务器发送数据
HTTP请求包括:
- 请求行:由下面三部分组成
- 请求方法 (GET/POST/DELETE/PUT/HEAD)
- 请求资源的URI路径
- HTTP的版本号 eg:GET /index.html HTTP/1.1
- 请求头:存放一些额外信息(用的什么浏览器)
- User-Agent:用户代理,它是一个HTTP头的名字,用来标识应用程序,通常是浏览器,它呈现的是用户和服务器的交互
- Referer:当前页面关联的页面
- cookie:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围
- 请求体:请求体是客户端发给服务端的请求数据,这部分数据并丌是每个请求必须的
HTTP状态码含义:
- 200 #2 请求成功
- 404 #4 代表客户端发出去的请求有问题
- 500 #5服务端有问题
二、postman工具
其中form-date和x-www-form-urlencoded及raw和Binary的区别:
- form-date:传参是key-value类型,可以上传多媒体文件(图片,文件,视频等)
- x-www-form-urlencoded:传参是key-value类型,不可以上传多媒体文件
- raw:Json形式,一般请求参数多用json
- Binary:传二进制文件

注意:
传参是key-value类型和JSON类型:根据接口文档使用,一般参数较多,习惯用JSON
三、postman接口测试
postman工具简单操作总结:
- get请求:(params传参数)
- post请求:
- 入参是key-value类型(Body→form-date传参数)
- 入参是JSON类型(Body→raw传参数,还需选择JSON)
- 传cookie(Headers→填cookie值)
- 上传文件(Body→form-date传参数,选择File→上传文件)
1. get请求

注意:get请求接口测试不需要借助任何工具,可以直接在浏览器调接口
例1:获取学生信息

方法一:直接在浏览器中测get请求接口(传多个参数):URL?参数名1=值1&参数名2=值 2&参数名3=值3

注意:
问题1:粘贴上图中浏览器的url:http://xxx.cn/api/user/stu_info?stu_name=%E5%B0%8F%E9%BB%91&age=18 后,其中 stu_name=小黑 变成 stu_name=%E5%B0%8F%E9%BB%91,是什么原因?
原因:请求接口,发送http请求到服务端,服务端拿到数据(数据库存储),把数据传输到后端,http协议传输过程中不可以有特殊符号或中文,中文要进行url编码。
方法二:借助postman工具测get请求接口

返回结果如下图:

2. post请求,入参是key-value类型
- get请求以外的请求需要借助工具postman。
例2:登录

借助postman工具测post请求(key-value类型)接口:

返回结果如下图:返回sign值

注意:
- 登录一次后,一段时间之内不需要登录,上图的 "sign": "5ea45f2087225fa7419124086f84b5ee" 起的作用 。
- 因为登录后,输入账号和密码,通过登录接口发送到服务端,验证密码(输入的账号密码与数据库存储账号密码对上),通过后,返回凭证,服务端存了一份sessionid,客户端在cookie里存了一份sessionid。客户端再次发请求时,把cookie里面的“键值对”一并发送给服务端,和服务端的“键值对”对上后,说明登录过了。
原理:
- cookie:存在客户端的一个键值对(客户端cookie不存在的情况:删除客户端的cookie)
- session:存在服务端的一个键值对(服务端session不存在情况:服务端失效时间;退出登录)
3. post请求,入参是json类型
例3:添加学生信息

借助postman工具测post请求(json类型)接口:

返回结果如下图:操作成功

4. post请求,需要添加cookie
例4:学生金币充值

借助postman工具测post请求(需要cookie)接口:
下图查看stu_id的值


上图报错“未登录”,所以先登录再充值(1.从登陆接口获取sessionid。2.再把sessionid传给金币充值的接口),在header里面传cookie
方法一:把登录的sign值加到充值金币的header里面

返回结果如下图:操作成功


方法二:使用全局变量的方法,获取登录的sign值加到全局变量里



返回结果如下图:操作成功

例5:请求购物车列表接口(需要先登录,才能进购物车列表)

用postman请求购物车列表接口如下图:报 请登录

登录接口传的token和购物车列表中的X-Litemall-Token值一致:


postman中Headers添加token:

返回结果如下图:

5. post请求,文件上传
例6:文件上传

使用postman工具:

返回结果如下图:操作成功

四、postman的基础操作
1. 保存接口
- 点击Save 按钮,输入接口名称,选择分类,可以新建分类 点击Create Collection


2. IP定义变量
点击设置,选择Globals,定义变量,IP用定义后的变量替换


五、postman接口自动化测试
1. postman批量运行数据
例7:

文件内容如下图:



返回结果如下图:

2. 添加检查点校验接口是否通过
(1)检查点的内容是常量
从返回结果中取常量(包含的字符串),当做检查点
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");});

例8:


返回结果如下图:

(2)检查点的内容是变量
从文件中获取变量(包含的字符串),当做检查点
用pm.variables.get("variable_key")替换
pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search");});
里的"string_you_want_to_search"

例子9:


返回结果如下图:

(3)检查点的内容是精确匹配
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100);});

例9:

取上图接口返回结果的stu_info数组中的第3个,写成stu_info[2].id

返回结果如下图:

3. 接口测试用例模板
![]()

浙公网安备 33010602011771号