postman简单操作

一、接口简介

接口:前端和后端通过接口交互(因为前端和后端的语言不一致),接口会返回一种通用的数据类型JSON(所有的语言都认识)。

  • 前端:负责页面展示。

                     Web开发语言:html(页面),js(页面动画效果),css(页面上色)

                     ios开发语言:object-c,swift

                    Android开发语言:Android

  • 后端:负责主要逻辑,操作各种数据库。

                   开发语言:Java,python,php,go等

接口文档:请求url,请求方式,参数,返回参数说明

get请求和post请求区别:get请求没有请求体,它的数据是在url里面放的

  • get请求:用来向服务器获取数据
  • post请求:用来向服务器发送数据

HTTP请求包括

  • 请求行:由下面三部分组成
  1. 请求方法 (GET/POST/DELETE/PUT/HEAD)
  2. 请求资源的URI路径
  3. HTTP的版本号   eg:GET /index.html HTTP/1.1 
  • 请求头:存放一些额外信息(用的什么浏览器)
  1. User-Agent:用户代理,它是一个HTTP头的名字,用来标识应用程序,通常是浏览器,它呈现的是用户和服务器的交互
  2. Referer:当前页面关联的页面
  3. 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请求: 

 

  1. 入参是key-value类型(Body→form-date传参数)
  2. 入参是JSON类型(Body→raw传参数,还需选择JSON)
  3. 传cookie(Headers→填cookie值)
  4. 上传文件(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. 接口测试用例模板

 

posted @ 2020-04-17 00:39  张小歪  阅读(597)  评论(0)    收藏  举报