Postman接口测试工具使用

本文介绍了Postman这款用于发送API请求的工具,包括安装方法、基本接口请求、Mock功能、变量设置、断言测试、数据驱动测试以及Cookie和token的处理。详述了如何使用Postman进行接口自动化测试和登录后的cookies管理。
摘要由CSDN通过智能技术生成

Postman介绍

Postman是一款请求服务接口的工具,可以用来做一些基本的接口请求,也可以使用Postman做一些复杂的自动化接口测试

Postman安装与基本使用

Postman安装
  • 安装分为两种
    • 直接安装Chrome浏览器的插件版
      由于Postman放弃了对Chrome浏览器插件版本的支持,但是我们现在依然可以使用一些老旧版本的进行安装使用,但是由于稳定性以及支持等,我们推荐使用客户端版本
    • 下载电脑对应版本的客户端版本
      • 打开官方网站:https://www.getpostman.com/
      • 点击Download the App进入下载页面,选择自己系统对应版本
      • 下载好安装包进行安装,安装软件较为简单,双击即可自动安装
      • 等待安装完成,打开软件会提示登陆等,可以直接关掉登陆页面,然后就可以看到我们的软件首页面在这里插入图片描述

Postman接口请求

  • Postman面板介绍
    • 其中test按钮我们可以进行一些测试断言
      在这里插入图片描述
简单接口请求
  • 添加mock接口进行测试
    • 新建文件夹用来存放mock的jar包和配置文件
    • 新建配置文件mock.json文件
[
  {
    "description": "第一个测试接口",
    "request": {
      "uri": "/demo01",
      "method": "get",
      "queries": {
        "name": "张三",
        "age": "18"
      }
    },
    "response": {
      "status": 200,
      "json": {
        "code": 200,
        "msg": "请求成功"
      }
    }
  }
]
  • 执行java -jar moco-runner-0.12.0-standalone.jar http -p 8888 -c mock.json启动mock
    在这里插入图片描述

  • 使用postman进行我们刚才添加的mock接口进行测试
    在这里插入图片描述

  • 调用百度查询IP的接口,使用浏览器的开发者工具进行请求信息的抓取,进行百度IP查询接口的调用请求
    在这里插入图片描述

在这里插入图片描述

  • 我们通过对一些参数的改变和去掉参数列表中部分参数,观察我们的接口是否能正常访问等等的一些测试在这里插入图片描述
带有header头部信息的接口请求
  • 我们在之前的mock中添加一个带有header信息的请求
{
	"description": "第一个测试接口",
  "request": {
    "uri": "/demo02",
    "method": "get",
    "headers":{
    	"content-type":"application/json;charset=utf8"
    },
    "queries": {
      "name": "张三",
      "age": "18"
    }
  },
  "response": {
    "status": 200,
    "json": {
      "code": 200,
      "msg": "带有header的请求成功"
    }
  }
}
  • 使用postman进行请求
    在这里插入图片描述
进行Post请求
  • 使用mock添加一个post请求
{
	"description": "第一个测试接口",
  "request": {
    "uri": "/demo03",
    "method": "post",
    "headers":{
    	"content-type":"application/json;charset=utf8"
    },
    "json": {
      "name": "张三",
      "age": "18"
    }
  },
  "response": {
    "status": 200,
    "headers":{
    	"content-type":"application/json;charset=utf8"
    },
    "json": {
      "code": 200,
      "msg": "带有header信息的post的请求成功"
    }
  }
}

在这里插入图片描述

如果是需要上传文件的请求
第一种可以在请求中选择body–>binary进行文件的选择以及上传
第二种可以使用form-data–>在下面的Key输入框最后面选择类型为file文件类型

变量设置

变量设置
  • 变量分为全局变量和局部变量

  • 创建变量点击postman右上角的小齿轮打开设置在这里插入图片描述
    在这里插入图片描述

  • 如果是全局变量在输入值的地方直接输入{{name}}进行调用在这里插入图片描述

  • 如果是局部变量则需要在设置环境变量的地方进行切换才可以识别

    局部变量和全局变量同时存在的时候,局部变量的优先级比全局变量高,会优先被使用
    在这里插入图片描述

测试沙箱和断言

编写一些脚本需要使用JavaScript语言进行编写

在这里插入图片描述
在这里插入图片描述

使用设置变量
// 获取一个变量
var name1 = pm.environment.get("name");
var age1 = pm.environment.get("age");
// 使用js的日志功能打印变量
console.log(name1,age1)
// 进行变量的设置
// 在此处设置变量值后,会相对应的改变我们设置的变量值
pm.environment.set("name", "李白");
// 进行变量清除
pm.environment.unset("name");
Test断言功能

需要注意的事有些汉字可能会变为Unicode,可能需要点击Raw来查看具体的返回信息,如果是Unicode则需要注意反斜杠的转义

// 获取请求的状态码进行断言
pm.test("请求状态码200", function () {
    pm.response.to.have.status(200);
});

// 响应内容包含某个字符串
pm.test("内容包含某些信息", function () {
    pm.expect(pm.response.text()).to.include("带有header信息的post的请求成功");
});
// 对json的值进行校验
pm.test("对返回的json中的code的值进行校验", function () {
  	// 获取到返回的json数据
    var jsonData = pm.response.json();
    pm.expect(jsonData.code).to.eql(200);
});
// 请求的响应值等于一个字符串
pm.test("对响应的结果进行完全判断是否和给出的一致", function () {
    pm.response.to.have.body("{\"code\":200,\"msg\":\"带有header信息的post的请求成功\"}");
});
// 对响应中的header中的Content-Type值进行检查
pm.test("header中是否包含Content-Type头信息", function () {
    pm.response.to.have.header("Content-Type");
});
// 响应时间断言,响应时间小于200毫秒
pm.test("断言响应时间是否小于200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
// 响应状态:成功的post请求
pm.test("post的请求结果中的状态码是否在200,201,202中", function () {
    pm.expect(pm.response.code).to.be.oneOf([200,201,202]);
});
// 状态码包含某个字符串
pm.test("状态码是否包含200这个字符串", function () {
    pm.response.to.have.status("200");
}); 
// 将xml转换为jsonObject
var jsonObject = xml2Json(responseBody);

测试管理-测试集和数据驱动

执行测试集
  • 我们可以使用postman自带的测试集对我们添加好的测试集进行统一测试
    在这里插入图片描述
    在这里插入图片描述
使用数据文件进行动态数据使用
  • postman支持json以及CSV格式的数据文件,我们建议使用CSV格式,此格式可以使用Excel打开,更利于我们管理
  • 使用notpad++创建一个带有数据的CSV文件,记得文件编码必须为UTF-8
    在这里插入图片描述
  • 使用数据文件后,内容的读取在我们postman中可以使用data来代替我们CSV的数据需要什么直接data.列即可
  • 重新使用runner进行测试,并选择我们刚才的CSV文件
    在这里插入图片描述
  • 点击进行测试
    在这里插入图片描述

Postman进阶-Cookie与token以及参数传递

cookies信息添加
  • 在postman中我们可以使用默认的header头部信息中添加cookies信息
    在这里插入图片描述

  • 也可以使用postman中提供的cookies信息的添加面板进行添加
    在这里插入图片描述

  • cookies的信息我们可以使用我们的Chrome浏览器进行查看,或者在接口文档中有时候也会提供

    一般来说,我们如果把所有的cookies信息全部添加上去那是肯定没有问题的,但是有些网站的cookies信息非常之多,而且信息量非常之大,一般我们只需要添加SESSIONID等信息即可,或者如果是别的一些信息的话,也可以询问开发或者在接口文档中获得相关的提示或者信息
    一般我们进行接口请求的时候需要cookies信息往往是登陆之后的操作需要使用到cookies信息,postman一般在我们调用登陆接口的时候就已经帮我们把所需要的cookies信息缓存到本地
    在这里插入图片描述

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值