接口自动化测试工具,Postman使用详解

一、概念

1、Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,Postman分为Postman native app和Postman Chrome app两个版本。目前Chrome app已经停止维护,官方也不推荐使用该版本。
2、官网下载地址:http://www.getpostman.com
3:官方文档:http://www.getpostman.com/docs

二、基础测试流程

1、第一步:新建接口集,管理所有接口

2、第二步:新建接口请求

3、第三步:填写相应参数,添加断言

4、第四步:运行接口集

5、第五步:得到用例结果

三、接口请求方式

1、get请求:点击Params,输入参数及value,可输入多个,即时显示在URL链接上

2、POST请求:
1)参数格式

2)二进制文件提交:

3)可以直接使用快捷方式将body或者params数据导入

四、设置变量与测试沙箱

1、环境变量

 1)第一步:创建 Environment 变量

 2)第二步:调用Environment变量,调用参数方式是:{{变量名称}}

2、全局变量

1)创建Globals变量

 2)调用Globals变量

  3、测试沙箱
    1)Postman测试沙箱其实是结合JS脚本完成测试中的功能,在请求发起前后实现部分测试操作。
    2)常用功能:请求前脚本( pre request scripts )设置请求前置操作如设置变量等。
         请求后对状态码、响应头、响应正文等信息进行断言操作。

五、断言
1、概念:断言就是对预期结果与实际结果的判断,预期==实际,就通过;预期!=通过则失败
  2、Postman的断言是JavaScript语言编写的,写在tests标签页里,在sandbox中运行
  3、常见断言:可参考:https://www.cnblogs.com/suim1218/p/8931159.html
    1)Get an environment variable (获取环境变量)
    2)Get a global variable (获取一个全局变量)
    3)Response body:contains string (检查响应主体是否包含字符串)
    4)Response body:is equal to a string (检查响应主体是否等于一个字符串)
  4、Json断言
    1)编写JS语句:判断返回的结果中city值是否正确
var 变量名 = JSON.parse(responseBody); tests["标题"] = 变量名.键名 === "值"

var 变量名 = JSON.parse(responseBody); tests["标题"] = 变量名.列表名[0].键名 === "值"

 判断data列表中第一个元素data的值是否正确

2)调用postman方法
      a、判断返回的结果中city值是否正确

b、判断data列表中第一个元素data的值是否正确

 5、参数化断言:基本格式:data.变量名

六、测试集与数据驱动
1、测试集的使用:为了更方便地管理接口请求的执行,可以通过postman 测试集(collection)来完成测试的操作,每一个测试请求可以看成一个测试用例(testcase),
collections能够一次管理多个测试用例来执行。通过save,能够将请求保存到collections中使用。

 2、数据驱动:当需要进行数据驱动方式运行多次Postman脚本时,可以通过csv文件或者json格式的文件对接口测试数据进行管理,以方便用例管理执行。
    在接口请求中,参数使用变量名获取,之后在创建数据文件时,使用这些变量名编辑测试数据。在测试沙箱中,参数的获取用data.参数名的形式来进行读取。

3、当需要进行数据驱动方式运行多次Postman 脚本时,可以通过csv文件或者json格式的文件对接口测试数据进行管理,以方便用例管理执行。
    1)创建测试数据:创建一个csv格式文件之后,通过notepad++或者excel进行编辑。
      注意:文件需要使用UTF-8编码,创建了csv文件之后,在notepad++中使用编码菜单中的转为UTF-8编码功能将文件转为UTF-8编码使用。
         文件中第一行必须是接口请求使用的变量名,后续每行填写本次执行使用的变量值。


2)使用测试数据文件
      在collection runner中data选项选择编辑好的测试数据文件,preview能够查看文件预览,确保文件读取内容无误。


七、Postman持续集成
1、安装nodejs
    1)下载地址: http://nodejs.cn/download/
    2)安装之后确认环境变量中已经添加了node所在目录,否则手动添加。在cmd中通过node v和npm v命令确认node环境已经搭建成功

 2、安装newman:通过newman来执行postman测试脚本,并生成测试报告
    1)npm install -g newman --registry=https://registry.npm.taobao.org

 2)newman -v 查看版本,检测是否安装成功
  3、安装html报告:npm install -g newman-reporter-html

 4、Newman执行测试
    1)从Postman导出测试集合

 2)Newman执行collection导出的Json文件
      命令行中输入newman run导出的Json文件名通过Newman命令行运行测试集

5、Newman常用参数
    1)-e,--environment:使用环境变量文件或url
     使用时,首先在环境变量中通过导出功能将环境变量导出,然后用如下命令引用。

 2)-g, --global:使用全局变量文件或url
     类似环境变量使用,在使用前,先导出全局变量文件,再通过g指定文件使用
    3)-d, --iteration-data:指定使用的数据驱动文件

 4)-n:指定测试集循环次数iterations

6、Newman生成测试报告
    Newman提供的测试报告中,常用的包括cli、json和html三种格式,可以通过-r或者--reporter命令指定所用格式
    1)cli格式为在 cmd 客户端呈现的报告模板, newman 默认使用该格式。
    2)json格式可以导出json格式的报告,通过-r json进行设置,并加上--reporter-json-export参数指定报告生成的路径。

    3)html格式可以导出html格式的报告,通过-r html进行设置,并加上--reporter-html-export参数指定报告生成的路径。
      在使用之前需要通过npm install -g newman-reporter-html先完成安装。

  7、定时任务执行脚本
    在实现了newman对测试集的命令行运行之后,可以通过编写ba 脚本,将其设置为windows定时任务,以完成测试脚本的定时运行。
    1)编写bat脚本
    2)设置定时任务
     在计算机上右键管理,在弹出菜单里的任务计划程序里创建定时任务配置执行。

8、Jenkins持续集成
    1)创建自由风格项目后,在构建触发器里,配置定时构建选项,指定任务定时执行。
     五个参数分别代表 分 时 天 月 星期 的周期维度。

    2)在构建时,添加构建步骤选择执行windows批处理命令,将Newman命令写入即可
      注意:如果Jenkins输出中文乱码,在环境变量中,添加一个变量JAVA_TOOL_OPTIONS值为Dfile.encoding=UTF 8 ,重启Jenkins

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/122271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

071:mapboxGL上传含shp的zip文件,在map上解析显示图形

第071个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中上传含有shp文件的zip,在地图上显示图形。这里先通过上传解压解析,转换生成geojson文件,然后在地图上渲染图形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果所用的zip文…

uniapp把文件中的内复制到另一个文件中

使用的是Html 5的plus.io.resolveLocalFileSystemURL方法,文档:HTML5 API Reference var soursePath file:///storage/emulated/0/a/;//用于读取var removePath file:///storage/emulated/0/w/;//用于移除w这个文件夹var targetPath file:///storage/…

nodejs+vue人脸识别考勤管理系统的设计与实现-计算机毕业设计

根据分析,本系统主要有3个角色:管理员、用户、考勤系统。 (1)管理员:管理员信息的添加、删除、修改和查询,用户信息添加、删除、修改和查询。 (2)用户:用户的注册和登录&…

AI与Prompt:解锁软件开发团队的魔法咒语,在复杂任务上生成正确率更高的代码

AI与Prompt:解锁软件开发团队的魔法咒语 写在最前面论文:基于ChatGPT的自协作代码生成将团队协作理论应用于代码生成的研究自协作框架原理1、DOL任务分配2、共享黑板协作3、Instance实例化 案例说明简单任务:基本操作,生成的结果1…

JAVA实现智能停车场管理系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容A. 车主端功能B. 停车工作人员功能C. 系统管理员功能1. 停车位模块2. 车辆模块3. 停车记录模块4. IC卡模块5. IC卡挂失模块 三、界面展示3.1 登录注册3.2 车辆模块3.3 停车位模块3.4 停车数据模块3.5 IC卡档案模块3.6 IC卡挂…

PPT文档图片设计素材资源下载站模板源码/织梦内核(带用户中心+VIP充值系统+安装教程)

源码简介: PPT文档图片设计素材资源下载站模板源码,作为织梦内核素材资源下载站源码,它自带了用户中心和VIP充值系统,也有安装教程。 织梦最新内核开发的模板,该模板属于素材下载、文档下载、图库下载、PPT下载、办公…

Go学习第十三章——Gin入门与路由

Go web框架——Gin入门与路由 1 Gin框架介绍1.1 基础介绍1.2 安装Gin1.3 快速使用 2 路由2.1 基本路由GET请求POST请求 2.2 路由参数2.3 路由分组基本分组带中间件的分组 2.4 重定向 1 Gin框架介绍 github链接:https://github.com/gin-gonic/gin 中文文档&#xf…

【计算机视觉】相机

文章目录 一、原始的相机:针孔相机(Pinhole Camera)二、针孔相机的数学模型三、真实相机四、透镜的缺陷 我的《计算机视觉》系列参考UC Berkeley的CS180课程,PPT可以在课程主页看到。 成像原理 一、原始的相机:针孔相机…

【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 吴恩达课程笔记——深度学习概论、神经网络基础 一、概念区别1.深度学习与机器学习2.深度学习与神经网络 二、什么是神经网络1.分类2.特点3.工作原理4.神经网络示意图5.神经网络进行监督学习6.深度学习的发展 三、…

力扣:143. 重排链表(Python3)

题目: 给定一个单链表 L 的头节点 head ,单链表 L 表示为: L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … 不能只是单纯的改变节点内部的值,而是需要实际的进…

亚信科技:发挥自我优势深入AIGC,并购整合高瞻远瞩致力未来路

【科技明说 | 重磅专题】 亚信科技在IT提供商领域中是一个低调的前行者,在全球通信及大型企业市场中扮演着重要的角色。对于近年来如火如荼AI方面的投入与研究,亚信科技是否也很重视呢? 事实上,是肯定的回答。 在我看…

一文详解汽车电子CAN总线

0.什么是CAN总线 CAN总线(控制器区域网络)是一个中央网络系统,连接不同的电子控制单元(ECU)以及车辆中的其他设备。现在的汽车可以有100个ECU,因此CAN总线通信变得非常重要。 1.CAN总线流行的背景 集中式:CAN总线系统允许对连接到网络的ECU进行集中控制…

Android开发知识学习——HTTP基础

文章目录 学习资源来自:扔物线HTTPHTTP到底是什么HTTP的工作方式URL ->HTTP报文List itemHTTP的工作方式请求报文格式:Request响应报文格式:ResponseHTTP的请求方法状态码 HeaderHostContent-TypeContent-LengthTransfer: chunked (分块传…

el-table多选表格 实现默认选中 删除选中列表取消勾选等联动效果

实现效果如下&#xff1a; 代码如下&#xff1a; <template><div><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"selection-change"handleSelectionChange"><…

Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(下)

Flutter笔记 完全基于Flutter绘图技术绘制一个精美的Dart吉祥物Dash 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/arti…

JVM常见的垃圾回收器(详细)

1、Young为年轻代出发的垃圾回收器。 2、Old为老触发的垃圾回收器。 3、连线代表的是垃圾回收器的组合。CMS 和Serial Old连线代表CMS一旦不行了&#xff0c;Serial Old上场。 首先了解一个概念&#xff1a;STW 1、什么是STW&#xff1f; STW是Stop-The-World缩写: 是在垃圾回…

即时编译器JIT

类编译加载执行过程 如下图所示&#xff0c;一个Java代码从编译到运行大抵会经历以下几个过程。具体每个过程笔者会在下文站展开讨论。 类编译 首先是类编译阶段&#xff0c;这个阶段会将Java文件变为class文件&#xff0c;这个class文件包含一个常量池和方法表集合&#xf…

【100天精通Python】Day72:Python可视化_一文掌握Seaborn库的使用《二》_分类数据可视化,线性模型和参数拟合的可视化,示例+代码

目录 1. 分类数据的可视化 1.1 类别散点图&#xff08;Categorical Scatter Plot&#xff09; 1.2 类别分布图&#xff08;Categorical Distribution Plot&#xff09; 1.3 类别估计图&#xff08;Categorical Estimate Plot&#xff09; 1.4 类别单变量图&#xff08;Cat…

深入了解 Elasticsearch 8.1 中的 Script 使用

一、什么是 Elasticsearch Script&#xff1f; Elasticsearch 中的 Script 是一种灵活的方式&#xff0c;允许用户在查询、聚合和更新文档时执行自定义的脚本。这些脚本可以用来动态计算字段值、修改查询行为、执行复杂的条件逻辑等等。 二、支持的脚本语言有哪些 支持多种脚本…

《HelloGitHub》第 91 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…