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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容