热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

接口测试工具——Postman

一、简介与安装1、postman下载(可以安装程序或者Google插件,推荐安装程序,下面介绍程序安装)官网下载&#x


一、简介与安装


1、postman下载

(可以安装程序或者Google插件,推荐安装程序,下面介绍程序安装)

官网下载:https:www.getpostman.com/downloads/

下载完成后注册,注册了可以直接登录

注意!!   postman不能重复安装,如果卸载后想安装,必须安装更新版本 !!


2、安装newman插件:用来借助postman生成测试报告


先安装node.js

(验证是否需要下载node.js:使用win+R,输入cmd 打开终端 → 然后输入:npm -v)


  • 若能显示版本号,则无需安装node.js(说明已经安装过了)
  • 若显示'npm' 不是内部或外部命令,也不是可运行的程序或批处理文件。则需要下载
  • 下载链接:https://nodejs.org/zh-cn/download/

安装newman插件

确保node.js已经安装,然后输入在线安装命令:npm install -g newman 

 验证newman是否安装成功:

win+r ,然后cmd打开终端输入命令:newman -v,显示版本号则安装成功


 安装newman-reporter-html

安装命令:npm install -g newman-reporter-html

安装完成页面截图:


2、postman简介


postman是什么?

postman是一款强大网页调试工具的客户端,postman为用户提供强大的Web API & HTTP 请求调试功能。postman 能够发送任何类型的HTTP请求(GET,HEAD,POST,PUT),附带任何数量的参数+headers,是一款非常实用的调试工具。


二、postman的基本使用


案例一 (get搜索请求) 


使用 postman 发送 http请求,访问 tpshop 商城的搜索接口


1、先从 tpshop商城页面(利用开发者工具)或抓包工具获取搜索接口的请求方式和请求URL

 2、打开postman,输入获取的请求方式和请求URL,发送http请求


案例二 (post搜索请求)


使用 Postman topshop 商城 登录接口 发送一个密码错误的 登录请求


获取数据:

  • 请求方法:POST
  • URL:http://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&t=0.2295404999013686
  • 请求头:Content-Type:application/x-www-form-urlencoded
  • 请求体:username=13800138006  password=6666  verify_code=FBFC

使用Postman 组织上述数据,发送 http请求。测试登录接口。

 


!若请求头content-type的值在请求体中没有,则选择raw,josn



 三、postman高级用法


1、管理测试用例集Collections

add folder 添加子文件夹     add request 添加请求


2、用例集导出、导入

导出:

 导入:


四、断言


1、Postman 断言简介


  • 利用 Postman 自带的断言机制,帮助我们自动判断 预期结果 和实际结果是否一致。
  • 使用的 是 Javascript 脚本语言,写在 Tests 的标签页中。在 TestResults 标签中显示。

2、常用断言


断言响应状态码   

Status code: Code is 200

//断言状态码为200 

pm.test("Status code is 200", function () {

    pm.response.to.have.status(200);

});

pm : postman 的 一个实例

test:postman实例 的 一个方法,有两个参数:

  •  参数1:“Status code is 200”,断言完成后,给出的提示信息
  • 参数2:匿名函数的调用

 pm.response.to.have.status(200);:postman的响应结果中,有一个状态码 200

断言响应体是否包含某个字符串  

Response body: Contains string

pm.test("Body matches string", function () {

    pm.expect(pm.response.text()).to.include("string_you_want_to_search");

});

Body matches string:断言完成后,给出的提示信息

 pm.expect(pm.response.text()).to.include("string_you_want_to_search");:postman的响应结果中包含“string_you_want_to_search”字符串

断言响应体是否等于某个字符串(对象)

Response body: Is equal to a string

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

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

});

 pm.response.to.have.body("response_body_string");:postman的响应结果中有响应体为“response_body_string”

断言JSON数据  

Response body: JSON value check

//断言响应体中的json数据

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

    var jsonData = pm.response.json();

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

});

 var jsonData = pm.response.json(); :定义一个变量jsonData,值为json格式的响应体数据

 pm.expect(jsonData.value).to.eql(100);:postman 预期 json格式的响应结果中,xxx(key)的值为 xxx

!value可以替换为:status、msg

断言响应头  

Response headers: Content-Type header check

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

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

});

 pm.response.to.have.header("Content-Type");:postman响应结果中,响应体有“Content-Type”

3、postman断言工作原理



五、全局变量和环境变量


六、postman请求前置脚本


1、概念

时间戳:当前系统时间


  • 表示方法:从1970年1月1日 00点00分00秒 到现在所经历的秒数
  • 获取时间戳的代码:var timestamp = new date().getTime()

请求前置脚本:


  • 书写在“Pre-request Script”标签中
  • postman 在http请求发送之前,会自动执行该脚本中的代码

2、案例


调用百度首页接口,传时间戳给服务器


 


3、工作原理


七、postman关联


1、postman关联的介绍

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时需要用到关联处理

postman的关联:用来解决接口和接口之间调用依赖关系。需要借助全局变量、环境变量

步骤(以 A接口 返回的数据,供 B接口使用 为例):


  1. 组织 A接口http请求数据,发送 A接口 请求。
  2. 获取 A接口 返回的 响应数据,写入全局、环境变量中
  3. 组织 Bhttp请求,从 全局、环境变量中 获取 A返回的数据。

2、案例


请求获取天气接口, 提取响应结果中的 城市,将城市名,给百度搜索接口使用。

 实时天气接口:http://www.weather.com.cn/data/sk/城市代码.html

北京实时天气接口:http://www.weather.com.cn/data/sk/101010100.html

 检查:view→show postman console

完成!


3、批量执行测试用例


八、postman生成用例报告


使用Newman生成测试报告

使用 newman 命令,运行导出的测试集脚本,打开 cmd 输入:


newman 测试脚本文件 -e 环境变量文件  -d 测试数据文件 -r html --reporter-html-export-测试报告名称.html

(红色部分根据实际情况添加,环境变量有无?外部测试数据有无?)



!!如果添加 “-r html” 参数之后,执行命令报错!是由于没有安装 newman-reporter-html 插件 或 安装失败。 


生成报告步骤:

  • 导出用例集(建议,创建空目录存储用例集。 不建议目录层级过深)
  • 在 用例集所在目录的地址栏输入 cmd 打开终端。
  • 键入命令,生成测试报告



推荐阅读
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • java实现rstp格式转换使用ffmpeg实现linux命令第一步安装node.js和ffmpeg第二步搭建node.js启动websocket接收服务
    java实现rstp格式转换使用ffmpeg实现linux命令第一步安装node.js和ffmpeg第二步搭建node.js启动websocket接收服务第三步java实现 ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
author-avatar
小北甜甜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有