Postman

接口工具

postman,jmeter,soupui(webservice),apipost,fiddler,charles

界面

在这里插入图片描述
请求模块:

Authorization:postman	自带的鉴权功能
Headers					请求头
Body					post请求传参
none					没有参数
form-data				既有文件又有键值对
raw						传json,txt,xml,html,js
binary					把文件以二进制的方式传输
Pre-request sciprt		接口请求之前的脚本 js
Tests					断言的代码
Cookies					Postman的cookie的管理器
code					生产接口自动化脚本

响应模块:

Body					返回的数据
Pretty					以json格式展示
Raw						以文本的格式展示
Preview					以网页的格式展示
cookie					返回的cookie信息
Headers					响应头
TestResults				断言结果
status					状态码
time					消耗的时间
size					字节数

在这里插入图片描述

在这里插入图片描述
新建界面
在这里插入图片描述
在这里插入图片描述

Get请求

搜索“聚合数据”网站,选择一个数据模拟发送请求,运行后的参数必须和接口文档一致(Get请求)
在这里插入图片描述
在这里插入图片描述

Post请求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
保存接口数据
在这里插入图片描述

Postman内置的动态参数

企业中做接口测试的时候经常会出现接口不能把参数写死

时间戳				{{$timestamp}}
生成0-1000的随机整数	{{$randomint}}
生成一个GUID的字符串	{{$guid}}  很长的一个字符串

例如:时间戳
在这里插入图片描述

Postman环境变量和全局变量

开发环境,测试环境,预颁发环境,线上环境每种环境地址都不一样,要实现自动化需要一个全局变量的ip,不需要每个都重新填一遍

添加环境(环境变量和Globals也好都是全局变量,一般环境变量用于环境,全局变量Globals用于用例,这两种是不允许冲突的)
在这里插入图片描述

比如这是开发环境的地址,设置不同环境的地址
在这里插入图片描述
切换环境测试
在这里插入图片描述
全局变量
在这里插入图片描述
在这里插入图片描述

接口关联(Json提取/正则表达式提取)

第一种:Json提取器

//提取access_token的值
var jsValue = JSON.parse(responseBody)
console.log(jsValue.accesse_token)
//把提取的值保存到全局变量
pm.globals.set("access_token",jsValue.access_token)

接口关联(CRUD的时候不需要每个接口进行修改,利用全局变量实现接口关联,创建-获取-编辑-删除四个接口只需要写一个创建,提取全局变量就能实现接口关联)

比如有个token值被每个接口都使用,都重复,没必要每次都重新输入,只需要提取出来做全局变量然后用{{}}显示

提取access_token
在这里插入图片描述

将token设置为全局变量

var jsValue = JSON.parse(responseBody)
console.log(jsValue.man)
pm.globals.set("man",jsValue.man)

在这里插入图片描述

点send发送请求后,提取出来的值就会出现在全局变量列表(Globals)中
在这里插入图片描述
在这里插入图片描述
双大括号取token,用到这个变量的接口都可以改为{{}}取值进行接口关联
在这里插入图片描述

第二种方式:使用正则表达式提取

match:匹配一种规则
new RegExp()新建一种规则
.+?

//使用正则表达式提取
// "id": 779,     =>   "id":(.+?),
var flag_id = responseBody.match(new RegExp('"id":(.+?),'))
console.log(flag_id)
pm.globals.set("id",flag_id );

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

在这里插入图片描述
之后所有需要用到的id都可以用全局变量{{}}替换,进一步实现接口互联
在这里插入图片描述
在这里插入图片描述
第三种:使用cookie提取器
在这里插入图片描述

进行批量测试实现自动化(接口都ctrl+s保存一下)
在这里插入图片描述
在这里插入图片描述
串行的
在这里插入图片描述

八种断言方式

//b八种断言方式,八大元素定位 

重要://1.断言返回码为200		用于状态断言
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

重要://2.断言返回的结果中包含有一个指定的字符串	用于业务断言
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("人物类");
});

重要://3.对返回的结果做json字段检查		用于业务断言
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.result[0].name).to.eql("人物类");
});

重要://4.断言返回的结果等于一个字符串  用于业务断言
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});

//5.断言响应头中包含有指定的响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Date");
});

重要://6.断言接口的请求的时间少于200毫秒		用于性能断言
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

//7.断言一个post请求的返回的状态码是否在指定的范围里面
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 200]);
});

//8.断言返回的状态码信息中包含指定的字符串
pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK");
});

在这里插入图片描述

精确断言

比如我们需要精确断言某个参数值,可以将参数设置为全局变量

加前置脚本:
在这里插入图片描述

在这里插入图片描述

全局断言

一般应用于状态断言

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
运行
在这里插入图片描述
Postman实战


版权声明:本文为weixin_45173721原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。