基于Postman的API自动化测试

1、安装

两种安装方式,我热衷于以chrome插件形式安装

Chrome插件

Mac App

2、发送请求

Postman最基础的功能就是发送http请求,支持GET/PUT/POST/DELETE,还有很多我不认识的http方法。

通过填写URL、header、body等就可以发送一个请求,这对于我们平时做一些简单的测试是够用的。

如果你的应用需要用到登录验证,可以通过填写Authorization以满足你的需求。

另外也可以使用Chrome浏览器已经登录的cookie,同步浏览器的cookie需要安装另一个插件Interceptor(拦截机)。它可以在你发送请求时帮你将已经存在于浏览器的数据随header请求,另外它可以将浏览器的请求写到postman的历史中(需要开启“Request Capture”)。

3、集合

每次配置完一个请求都可以保存到一个集合中,如此一来,下次测试可以直接从集合中找到你要执行的测试。

集合不单单只有分类和存储功能,Postman支持一键运行整个集合内的测试。

我们可以把一个请求当做一个Test Case, 那么集合就是一个Test Suite。

每个集合都对应一个URL,可以通过Share按钮获得你的集合URL,这个URL可以用于分享给你的队友,或者用于Newman执行。

Newman是Postman的一个命令行工具,可以让API测试加入到你的持续集成任务上。

4、环境变量

当做API测试时,你可能经常需要切换不同的设置。比如,开发环境的API设置、测试环境和产品环境的API设置,你可能需要在不同的测试环境下使用不同的配置。为此Postman提供了环境变量,这样你就可以通过修改环境变量,而不需修改请求了。

你可以通过右上角的下拉菜单选择环境,可以通过点击右侧的小眼睛来查看当前环境变量。

5、API测试

Postman测试沙箱是一个JavaScript执行环境,可以通过JS脚本来编写pre-requist和测试脚本。pre-requist可以用来修改一些默认参数。

Postman沙箱集成了几个工具库,比如lodash、SugarJs、tv4,还有一些内置函数如xml2JSON..

tv4用于验证JSON数据,通过编写JSON Schema来验证,JSON Schema的语法请参照这里

测试语法:

// description 为该测试的描述

// value 只要Boolean(value)不等于false,这个测试就是PASS

tests[description] = value   // example

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

我们以github status的接口为例:

url: https://status.github.com/api/status.json

tests["Status code is 200"] = responseCode.code === 200;   // validate json schemavar schema = {

properties: {

status: {type: 'string'},

last_updated: {type: 'string'}

}

};

tests["Valid data schema"] = tv4.validate(responseBody, schema);   // check status

var jsonData = JSON.parse(responseBody);

tests["Github status is good"] = jsonData.status === 'good';

运行结果:

示例

受 http://httpbin.org/ 启发,Postman也提供了一套入门的API http://dump.getpostman.com/ ,接下来我们将利用这套API做完整的测试。

1、创建一个环境变量

这个接口现在好像不支持创建用户了,我们假设已经创建成功了,因为这不影响我们后续操作

3、获取用户的Token

Token用于授予终端请求和访问权限的。我们可以通过POST用户名和密码请求 {{url}}/blog/users/tokens/ 来获取用户的Token,这个Token将用于其他请求中。

{

"username": "abhinav",

"password": "abc"

}

5、创建一篇文章

如果上面的测试是在主窗口或者集合运行器中执行,那么 user_id 和 token 会自动地被添加到环境变量中。

为了创建一篇文章,我们需要发送一个POST请求到 {{url}}/blog/posts ,并将 user_id 和 token 添加在URL参数中。POST的请求Body如下:

{

"post": "This is a new post"

}

6、检查返回数据

如果上述的请求成功的话将返回一个带有post_id的JSON。我们将在这里验证是否创建文章成功,并且将文章ID保存到环境变量。将下面这段代码添加到测试编辑器中:

var data = JSON.parse(responseBody);   if (data.post_id) {

tests["post_id found"] = true;

postman.setEnvironmentVariable("post_id", data.post_id);

}   else {

tests["post_id found"] = false;

}

7、获取一篇文章并验证JSON

我们将通过上面返回的文章ID来获取我们创建的文章。这里我们将用到Postman内置的 tv4 JSON 验证器来检查服务器响应的JSON。

创建一个GET请求到 {{url}}/blog/posts/{{post_id}},并将下面这段代码添加到测试编辑器中:

var schema = {

"type": "object",

"properties": {

"content": "string",

"created_at": "integer",

"id": "integer"

},

"required": ["content", "created_at", "id"]

};

var data = JSON.parse(responseBody);

var result = tv4.validateResult(data, schema);

tests["Valid schema"] = result.valid;

8、一键运行与分享集合

我们将上述每一个测试保存到PostmanTest的集合中,这样我们就可以在任何时候打开和运行你想要的测试,并且可以一键运行所有,或者将集合分享给你的小伙伴,也可以获取嵌入式代码(如下面的按钮)。

postman如何测试php接口_基于Postman的API自动化测试相关推荐

  1. postman如何测试php接口_使用postman玩转接口测试

    (一)前言: 之前搞自动化接口测试,由于接口的特性,要验证接口返回xml中的数据,所以没找到合适的轮子,就自己用requests造了个轮子,用着也还行,不过就是case管理有些麻烦,近几天又回头看了看 ...

  2. postman如何测试php接口_接口测试工具postman

    一. 安装 2. 注意事项:建议安装在非系统盘,即C盘以外的盘,路径最好用全英文路径 3. 打开chrome ->更多工具 ->拓展程序 ->加载本地已解压的postman至chro ...

  3. postman socket接口测试_基于postman测试接口(整套接口测试)

    可以解决的问题 几百个接口人工测试接口过于繁杂 大多测试无法使用请求结果当参数 可以使用随机参数 支持swagger信息导入 随账号持久化保存数据 对集合一键测试 自定义可视化结果 开启控制台 单个测 ...

  4. c语言实现http服务器_基于postman实现http接口测试过程解析_服务器其它

    这篇文章主要介绍了基于postman实现http接口测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 无意中发现了一个巨牛的人工智能教程, ...

  5. soapui工具_基于开源的API测试工具!不再为web服务负载测试而发愁

    通过一个可视化.拖拽式的界面,LoadUI允许您实时.交互式地创建.配置和重分配负载测试.在单一测试环境下,LoadUI提供完整的测试覆盖,支持所有标准的协议和技术.它功能强大,能从任意数量的本地和远 ...

  6. python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

    Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...

  7. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

    背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...

  8. java调用金蝶云接口_调用金蝶web api

    1.金蝶系统需要证书的安装:安装证书方法: 2.查询web api接口 1).登陆金蝶云星空 2).打开web api模块 3).接口调用. 3.金蝶云调用示例 :金蝶云调用示例参考 4.注意事项: ...

  9. linux测试自动化,一种基于Linux系统下自动化测试RoCE性能的方法及系统与流程

    本发明涉及自动化测试的技术领域,特别涉及一种基于Linux系统下自动化测试roce性能的方法及其系统. 背景技术: 现在迅速发展的服务器行业,对网络服务性能提出了越来越高的要求.特别是在互联网行业以及 ...

最新文章

  1. 基础认证伪造工具phishery
  2. AI开发者大会:2020年7月3日09:50--10:10唐杰《人工智能的下一个十年》
  3. matlab 工业相机 曝光时间_实战 | 相机标定
  4. 用python爬虫抓站的一些技巧总结
  5. 使用TWebBrowser组件保存网页为html和mht文件 收藏
  6. 微信小程序开发工具 清除授权缓存/文件缓存/登录缓存等等
  7. 【教训】rm -fr ./* 教训
  8. 百度Q2智能云增长强劲;据悉史上最大 AI 芯片诞生!中兴与奇瑞成立合资公司一起加快开发5G汽车……...
  9. 小程序运行时相关信息
  10. python进阶19垃圾回收GC
  11. 如何看公司的财务数据
  12. 2015年第46周五
  13. 怎么设置java内存_如何修改jvm内存 内存设置过大
  14. 【Java基础-Java运算符】
  15. 数学分析-1.2数列和收敛数列-例题1、2、3
  16. 杭州图书馆对所有读者免费开放 包括乞丐【让我感动的图书馆】
  17. 圆周率100位可以这样速记
  18. 白杨SEO:360搜索排名核心技巧是什么?网站怎么做360的SEO优化排名?
  19. windows编程经典书籍
  20. 记2017深圳寻找工作

热门文章

  1. 系统设计面试的答题思维框架
  2. 分享一个Go项目的整洁架构模板
  3. Laravel核心解读--Database(二) 查询构建器
  4. springboot整合Apollo
  5. Codeforces 847H - Load Testing
  6. R语言-merge和rbind
  7. centos 7下Hadoop 2.7.2 伪分布式安装
  8. Ios开发之定位CLLocationManager
  9. 分项:我从世界上最成功的人身上学到的10件事
  10. WINDOWS8.1 安装 .NET35方法