postman实现接口自动化

下载

    Postman | Apps

Windows installation

Download the setup file

Run the installer


谷歌自带chrome插件,不过已经不再做支持,故推荐用chrome app,本文仅对APP使用讲解

后续补充插件使用方法

1. 安装postman 

2. 登录Postman(如果没注册,则先注册)

3. 打开postman, 简单介绍下布局

整体布局


文件导入

1.     以文件方式导入 

2.    以文件夹方式导入

3.    以文本方式导入


collection

1. collection 相当于测试套,将每个cases都置于文件夹下,每个case对应一个http请求

2.  运行时可以以collection 为单位

3. 可以监控,间断执行

。。。。

其他功能 可参考postman 官方文档

用例管理

2. 在web上查看用例内容

点击 “view in web”

app端点击查看

web端展示更加直观,但是不可执行,仅显示用例的详细内容,同时支持分享和发布

页面内容




点击 Publish


选择环境变量


发布完成

用例执行

1. 点击左上角 Runner

方法一

或者直接从collection 方式打开


方法二

按下图所示进行选择

选择运行条件

运行结果

结果分析

1. 查看请求与响应,从而判断是否执行正确


用例编写

url: 访问地址

Authorization:  鉴权

Headers:   http请求头

Pre-request-Script:  预置条件,一般由js编写

Tests:  运行结果测试判断,校验结果是否正确,如是否返回200,是否结果包含某个字段等

辅助工具: (以下仅对fidller做讲解分析)

1.    fidller 抓包分析

2.    也可以通过浏览器F12来辅助测试

3    chrome插件,可以记录每次访问的请求,效果更显著

捕获浏览器发送的各种请求,然后撰写用例

url获取:

fiddler抓包分析


Url获取

Headers获取


fiddler抓包分析



请求头部

请求参数:

对于请求参数中的区别,可以参考

postman中 form-data、x-www-form-urlencoded、raw、binary的区别 - CSDN博客

fiddler参数



请求参数

请求返回结果


fiddler响应



postman 请求响应



以上仅对单个请求进行了模拟,如果要串联很多请求组合模拟功能实现则需要用到环境变量,以达到承上启下的效果。

比如下一个请求需要引用到上一个请求返回的结果中某个参数,则可以通过变量提取将该字段置于变量池中。那么之后的请求可以对其直接引用或者更新其值。

环境变量

局部变量: 仅在当前collection中适用

globals变量: 对所有collection都适用

变量可以直接定义,亦可以在用例执行时生成


局部变量


全局变量


变量管理:

自定义


直接对变量池中变量进行赋值

用例执行过程中生成


在test中获取


代码编写

      由于postman有自己的语法,所以进行脚本开发时需要按照postman自身的语法格式来编写

postman老版本和新版本语法有些许不同,具体可参考官方手册了解。

脚本用的最多的是在 pre-request-script 和 test

各自都有语法提示,直接进行引用就可以达到预期

常用的脚本:

1. 设置变量:

pm.environment.set("branchId", jsonData.branchId);  新版本

postman.setEnvironmentVariable("user", u_id);    老版本

2. 判断返回200 

tests["Status code is 200"] = responseCode.code === 200;      老版本

pm.test("Status code is 200", function () { pm.response.to.have.status(200);});     新版本

3. 从返回中提取变量

4. 在预置条件中,可以用js编写 方法,但是该方法仅对本次请求生效

5. 打印日志 console.log("applyJson:", result);

可通过console台查看效果

6. 中断:在用例联调中最常用并且重要的语句,可让collection在运行时在指定位置退出

postman.setNextRequest(null);

7. postman语法中需要以 “分号“结尾。

随机数

PostMan 除了提供环境变量和全局变量外,还提供了三种随机数。

{{$guid}}

:添加一个V4风格GUID

{{$timestamp}}

:将当前的时间戳,精确到秒

{{$randomInt}}

:添加0和1000之间的随机整数


代码中循环的控制

外部循环:

    要实现请求循环,只能通过指定下一个请求对应的name,跳到指定请求,继续往下走。否则只能一步步请求串联起来,这样代码会显得很冗余

内部循环:

    代码内部循环,可以用js代码实现

外部请求循环


备注:

postman还可以通过newman+jenkins 可以实现CI,这里不做详述

老版本的postman和新版本的postman都存在一些bug, 建议用5版本


postman官方文档:

Introduction

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容