无论是接口调试还是接口测试,postman都算的上很优秀的工具,好多接口测试平台、接口测试工具框架的设计也都能看到postman的影子,我们真正了解了这款工具,才可以在这个基础上进行自己的设计和改造。

-简介

界面介绍

主要界面功能介绍

工作台页面主要介绍

-postman基础用法介绍

-postman高阶应用

环境变量

全局变量(Globals)

Environment变量

collection用例集

用例集创建

用例集执行

用例集分享,导入导出

-生成API文档

-JavaScript脚本

Postman Sandbox

常用的库和使用程序

Pre-request JavaScript

Tests

-Mock Server

创建mock server

编辑mock response(创建example)

使用mock server

简介

相似工具: 命令行curl fiddler

下载地址:官网下载https://www.getpostman.com/

如果我的文档看不明白直接看官方文档吧:https://learning.getpostman.com/docs/postman/launching_postman/installation_and_updates/

postman功能介绍:

  1. 请求调试
  2. 代理抓包
  3. 环境变量设置
  4. 导入与导出
  5. 生成在线API文档
  6. 自动化测试
  7. mock server

界面介绍

主要界面功能介绍

l   New: 新建,可以创建request(请求),collection(请求集),environment(环境变量)等。

l   Inport:导入,可以直接导入postman请求集,curl等一些请求文件。

l   Runner: 执行请求,可以选择执行请求的collection,并且添加执行参数,例如执行时间,执行次数等等。

l   Workspace: 工作台,可以选择使用个人工作台或团队工作台,可以创建team并且邀请成员加入一起编辑使用请求集。

l   History: 历史请求,所有调试的历史请求数据

l   Collection: 请求集,可以创建保存,将某些请求放到一起形成请求集

l   Environment: 环境变量,管理设置的环境变量,可以设置全局环境变量,也可新建环境,添加环境变量

工作台页面主要介绍

l   请求方法: 支持get,post,put,patch等请求方法

l   URL: 可以直接输入请求URL,也可以通过环境变量设置,自定义URL

l   Params: 请求参数

l   Authorization:  认证鉴权,支持多种授权鉴权

l   Header: 请求头

l   Body: 请求体,包含form-data,json,文件上传等

l   Pre-request-Script: 请求脚本,可以在请求发起前执行的脚本

l   Tests: 接口测试,请求完成后进行的测试脚本

l   Cookies: 可以为请求添加cookies

l   下面就是response的一些信息,返回数据,返回头,cookie,测试结果等

postman基础用法介绍

以一个线上课程请求实例来介绍:

URL: http://101.201.177.5/app/api/study/course/list

  1. 创建request, 输入请求名,请求介绍以及所属请求集
  2. 选择请求方法,请求URL,请求参数,header(该实例有token校验)
  3. 点击send发送请求,查看response
  4. 点击save,保存该请求实例

基本上,如果是简单的接口调试就是按照以上的步骤进行操作

postman高阶应用

环境变量

全局变量(Globals)

场景:以线上课程为例,请求线上课程需要在header中添加认证,那么每次请求都添加吗?我们可以设置全局变量

  1. 添加global
  2. 设置变量名和value值

variable: 变量名

initial value: 分享出去给team中的人用时的变量值

current value: 当前自己使用该变量时变量的值

3. 在请求中使用全局变量 格式:{{ 变量名 }}

Environment变量

场景:以线上课程为例,首先在本地环境调试,然后发布到测试环境还需要测试,发布到线上还需要调试,那每次都更换URL吗?

设置environment变量,可以选择相应环境,每个环境里有单独的环境变量使用

  1. 添加environment变量
  2. 设置environment变量

    设置:环境名

    variable: 变量名

    initial value: 分享出去给team中的人用时的变量值

    current value: 当前自己使用该变量时变量的值

  3. 使用environment

在postman中使用环境,预览环境变量,使用环境里设置的环境变量

使用语法:{{ 参数名 }}

collection用例集

在postman中,所有的请求并不都是独立存在的,我们可以根据项目,根据业务,根据接口的关联性,依赖性创建请求集来管理我们的接口。

用例集创建

New”-> “Collection”-> “Name”; “Description”

输入用例集名称,描述,authorination,pre-request,test等,如果添加了这些配置,那么会对集内的所有请求生效

用例集执行

场景:以线上课程为例,我想看下线上课程列表,线上课程详情等相关接口是否都正常?频繁请求这些接口是否有异常?这就可以使用runner,但是runner本身并不能作为一个压测工具,因为runner执行是阻塞队列,串行执行请求,并不能拿来做并发测试,但是可以简单看一下接口的健壮性,如果想对接口进行简单的压力测试,可以使用ab,jmeter等工具

  1. 选择runner,点击进入runner设置界面
  2. 选择collection,选择环境,设置运行参数

    choose collection: 选择要运行的用例集

    Environment: 选择环境变量

    Iterations: 设置循环次数

    Delay: 每次循环的间隔

    Log Responses: 响应日志,默认

    Data: 选择csv文件(可以添加测试数据,在tests中用data参数访问)

    通过对运行参数的设置可以完成简单的并发测试

    可以通过console查看具体的request请求,通过run result查看测试结果

用例集分享,导入导出

场景:如果后端同学完成了接口调试,前端是否可以直接拿到相关项目的接口做联调?或者前端调试问题需要进行mock server,如何拿到别人的接口数据。

有2种方法可以选择

  1. 建立team workspace,分享给团队人员

    将个人工作台的collection,分享到team workspace,这样team里的人就可以在team workspace中看到

  2. 直接导出文件,然后给其他人再导入 返回文档

生成API文档

我们可以直接将collection生成API在线文档

  1. 如果是自己直接查看自己写的接口的在线文档
  2. 生成在线文档给到其他人共享 返回文档

    发布生成一个api文档链接

JavaScript脚本

Postman Sandbox

Postman sandbox 是一个JavaScript执行环境,可以在为请求编写预请求脚本和测试脚本时使用它。

常用的库和使用程序

l   Lodash: js实用程序库

l   Cheerio:核心jQuery Api的快速精简实现

l   Tv4json模式验证器: 针对json-schema的v4验证json对象

l   CrytoJS: 标准和安全的加密算法。支持的算法:AES,DES,EvpKDF,HMAC-MD5,HMAC-SHA1 / 3/256/512,MD5,PBKDF2,Rabbit,SHA1 / 3/224/256/512,TripleDES

l   Xml2Json: xml文件转换为json对象

Pre-request JavaScript

预请求脚本:在发送请求前执行的脚本

应用场景:

  1. 请求前添加动态请求参数
  2. 请求前添加cookie,header,设置环境变量等

那么预执行脚本可以有哪些操作呢?postman给我们设置好了一些常用的操作

返回文档

返回文档

返回文档

大体上有这么几种,当然不仅仅这些,可以自己写js脚本来实现自己的需求

  1. 获取全局变量, 设置全局变量
  2. 获取局部环境变量,设置局部环境变量
  3. 清空全局变量,清空局部环境变量
  4. 发送一个请求

Tests

在请求完成后,我们也通过脚本进行测试或进行一些置后的操作,例如重置环境变量,新增环境变量,或者是一些校验代码

postman提供的快捷方法有这些:

  1. // 测试返回状态码

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("string_you_want_to_search");

});

3.//测试解析json数据

pm.test("Your test name", function () {

var jsonData = pm.response.json();

pm.expect(jsonData.value).to.eql(100);

});

4.//测试是否等于某个字段

pm.test("Body is correct", function () {

pm.response.to.have.body("response_body_string");

});

5.//检查header

pm.test("Content-Type is present", function () {

pm.response.to.have.header("Content-Type");

});

6.//请求时间校验

pm.test("Response time is less than 200ms", function () {

pm.expect(pm.response.responseTime).to.be.below(200);

});

7.//返回值在某个区间

pm.test("Status code name has string", function () {

pm.response.to.have.status("Created");

});

8.//使用json schema 校验结果

var schema = {

"items": {

"type": "boolean"

}

};

var data1 = [true, false];

var data2 = [true, 123];

pm.test('Schema is valid', function() {

pm.expect(tv4.validate(data1, schema)).to.be.true;

pm.expect(tv4.validate(data2, schema)).to.be.true;

});

Mock Server

应用场景: 后端接口写的差不多的时候可以直接将postman文件发给前端做mock server,如果前端需要本地复现问题也不需要线上跑业务拿数据再复制下来查看,可以直接用postman中的接口文件做mock server

如何为一个collection创建mock server?

创建mock server

1)         直接创建mock server

“new”-> “mock server”

输入method,URL path,返回值,它会自动给生成collection及mock URL 以及保存example

2)         给collection创建mock server

在collection中创建一个mock server,创建完成后需要把collection中的请求接口保存为example,编辑返回值等等

编辑mock response(创建example)

编辑mock地址,以及response body,mock地址要用生成mock server时的那个地址,也可以将这个地址设置为环境变量,方便使用。

使用mock server

直接使用生成的mock server地址加请求path 就可以看到mock数据了。

PostMan的详细介绍的更多相关文章

  1. [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍

    绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...

  2. linux配置网卡IP地址命令详细介绍及一些常用网络配置命令

    linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...

  3. _MSC_VER详细介绍

    _MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...

  4. php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

    以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...

  5. RabbitMQ消息队列(一): Detailed Introduction 详细介绍

     http://blog.csdn.net/anzhsoft/article/details/19563091 RabbitMQ消息队列(一): Detailed Introduction 详细介绍 ...

  6. doT.js详细介绍

    doT.js详细介绍   doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...

  7. Linux截屏工具scrot用法详细介绍

    Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

  8. Oracle Merge into 详细介绍

    Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...

  9. cPage分页详细介绍

    asp.net中各种数据控件,datalist.gridview.Repeater等分页是最常用的功能,几乎任何一个B/S项目,无论是系统还是网站都会用到.分页时,读取整个数据,直接绑定到控件,都可以 ...

随机推荐

  1. MySQL 子查询(二)

    接上篇文章,从这节起:MySQL 5.7 13.2.10.5 Row Subqueries 五.行子查询(ROW Subqueries) 标量子查询返回单个值,列子查询返回一个列的多个值.而行子查询是 ...

  2. 谷歌浏览器添加插件时显示程序包无效:"CRX_HEADER_INVALID" 解决办法

    今天在添加谷歌插件的时候,却发现谷歌浏览器显示 程序包无效:"CRX_HEADER_INVALID",现整理解决方法如下: 下图是下载好的 .crx 结尾的插件. 将插件的后缀名改 ...

  3. (八)Activiti之流程变量和局部流程变量

    一.流程变量 1.1 概念 如果,当流程走到"学生请假"这个任务节点的时候,此时可以用TaskService设置流程变量,变量值包含请假人.请假时间.请假理由等信息,这些信息存在表 ...

  4. eclipse智能提示报错(to avoid the message, disable the...)

    然后这里可能会再报别的错误  我的做法是   再重新将 code recommenders 打开 ********************************** 为什么会出现 这样错误呢 ? 简 ...

  5. Windows 下 mysql 5.7 设置 区分大小写(敏感),设置默认编码 utf8mb4

    修改编码 c盘下搜索 C:\ProgramData\MySQL\MySQL Server 5.7 在该my.ini文件下进行配置修改 [client] default-character-set = ...

  6. ASP.NET WEB应用程序(.network4.5)MVC Razor视图引擎2 动态数据的呈现

    https://www.cnblogs.com/cynchanpin/p/7065098.html 在MVC3開始.视图数据能够通过ViewBag属性訪问.在MVC2中则是使用ViewData.MVC ...

  7. VBA变量(七)

    变量是一个指定的内存位置,用于保存脚本执行过程中可以更改的值.以下是命名变量的基本规则. 变量名称必须使用一个字母作为第一个字符. 变量名称不能使用空格,句点(.),感叹号(!)或字符@,&, ...

  8. ndk-build 修改输出so位置 (change ndk-build output so lib file path )

    期望的目录结构: Folder --- | --- build.bat | --- Source | --- All sources codes *.cpp *.h | --- Android --- ...

  9. 如何在 vue 2.0+ 中引入全局的stylus文件,且能正常

    由于stylus在引用时,不能像一般的css文件直接在main.js中引用,就算引用了也会只能使用转换后的css,不能使用里面的函数,方法等,原因可能是:在这里引入会被直接编译成css,不能在别的模板 ...

  10. spring-security原理学习

    spring security使用分类: 如何使用spring security,相信百度过的都知道,总共有四种用法,从简到深为:1.不用数据库,全部数据写在配置文件,这个也是官方文档里面的demo: ...