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

news2024/9/29 13:30:24

一、概念

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.coloradmin.cn/o/1140298.html

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

相关文章

便利连锁:如何增加收益?教你一招轻松搞定!

自动售货机,作为零售行业的一项颠覆性技术,正逐渐改变着我们的购物方式和商业格局。这一创新技术不仅重新定义了零售业务模式,还为企业提供了更多的机会来满足不断演变的消费者需求。 客户案例 便利连锁店 成都某便利连锁店面临一系列挑战&am…

input 输入中文,高频触发 onchange和oninput事件(CompositionEvent API解决)

问题描述: input onchange和oninput 事件输入中文时高频触发。 输入字母,数字,符号都没问题: 输入中文时问题就出来了: 每个拼音字母都触发了change,甚至输入法里的nin’hao 把拼音分开的字符也会触发。…

git clone 遇到了 early EOF index-pack failed 问题

问题 由于仓库包含了很多文件,仓库过大,导致clone的时候一直报错: 解决方案 注意:过程中需要耐心等待,如果遇到失败,可以多尝试几遍。 压缩目标仓库文件 compression 是压缩的意思,从 clo…

javaweb请求

1.给类加上RestController表示该类是请求处理类 2.判断类里面的hello()方法处理哪个请求,需在方法上加上注解RequestMapping("/hello"),表示浏览器请求localhost:8080/hello这个地址时,会调用此方法,

使用boost.mysql来操作mysql 数据库

准备条件 1. visual studio 2019 2. boost库 3. 安装本地的mysql 服务器,boost.mysql对mysql有版本要求最好8.0,具体参考官方文档 安装 使用Nuget安装boost 要安装 openssl,否则的话编译其他项目会产生依赖ssl的错误 安装mysql 省略 …

“数聚瑞安·创新未来”中国·瑞安第四届创新创业大赛圆满举办!

10月26日,“数聚瑞安 创新未来”中国瑞安第四届创新创业大赛决赛在瑞安东新科创园举行。本次大赛旨在挖掘优质的创新创业项目激活本地创新创业氛围,激发创新创业活力,数字科创赛道吸引了来自全国20多个省市自治区的50多个城市的100多家企业和…

IP地址与代理ip在网络安全中的关键作用

目录 前言 一、IP地址在网络安全中的作用 1、网络流量监视和分析 2、网络安全事件响应 3、网络安全检测和防御 二、代理IP在网络安全中的作用 1、流量过滤和清洗 2、匿名访问和保护隐私 3、实现全球化业务 三、IP地址和代理IP在网络安全中的应用案例 1、DDoS攻击 2…

U盘RAW格式无法格式化怎么办?

我们在使用U盘时候,有时会碰到U盘RAW格式无法格式化的情况。当U盘变为RAW格式时,无论是双击还右键选择打开U盘,Windows系统都会提示无法完成格式化。那遇到RAW格式U盘无法格式化怎么办? 什么是RAW格式? 在开始格式化之…

学编程如何提高自己的编程能力

以下是一些建议,帮助你提高编程能力: 掌握基础知识。了解编程语言的基本语法、数据类型、控制结构等基础知识,是提高编程能力的基础。多写代码。编程需要实践,多写代码才能提高编程能力。可以从简单的练习项目开始,逐…

SpringCloudAlibaba实战-nacos集群部署

写在前面:在学习阶段,我们想快速学习SpringCloudAlibaba功能,但总是花费大量时间跟着视频或博客做组件配置。由于版本的更迭,我们学习时的组件版本很可能和作者的不一致,又或者是各自环境不一,只能一坑又一…

C++前缀和算法的应用:统计得分小于K的子数组数目

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 一个数组的分数定义为数组之和 乘以 数组的长度。 比方说,[1, 2, 3, 4, 5] 的分数为 (1 2 3 4 5) * 5 75 。 给你一个正整数数组 nums 和一个整…

【C】关于动态内存的试题及解析

目录 第1题: 第2题: 第3题: 第4题: 第5题: 在学习了关于动态开辟内存的相关知识后,下面是一些涉及到动态开辟内存程序的试题及解析(试题部分来自《高质量的C/C编程》、笔试题)。 第1…

2023年【上海市安全员A证】报名考试及上海市安全员A证试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 上海市安全员A证报名考试是安全生产模拟考试一点通总题库中生成的一套上海市安全员A证试题及解析,安全生产模拟考试一点通上上海市安全员A证作业手机同步练习。2023年【上海市安全员A证】报名考试及上海市…

智能指针(C++11)

行到水穷处,坐看云起时。 文章目录 简介内存泄漏内存泄漏分类内存泄漏检测工具 RAII智能指针原理智能指针使用std::auto_ptrstd::unique_ptrstd::shared_ptrstd::shared_ptr循环引用 std::weak_ptr 总结 简介 C智能指针是在C11标准引入的一项重要功能,用…

建模仿真软件 Comsol Multiphysics mac中文版软件介绍

COMSOL Multiphysics mac是一款全球通用的基于高级数值方法和模拟物理场问题的通用软件,拥有、网格划分、研究和优化、求解器、可视化和后处理、仿真 App等相关功能,轻松实现各个环节的流畅进行,它能够解释耦合或多物理现象。 附加产品扩展了…

Postman接口测试,全网最详细教程

Postman的脚本可以导出多种语言的脚本,方便二次维护开发。 Python的requests库,支持python2和python3,用于发送http/https请求 使用unittest进行接口自动化测试 0 1****环境准备 1、安装python (使用python2或3都可以&#x…

Spring源码-4.Aware接口、初始化和销毁执行顺序、Scope域

Aware接口 其实在生命周期中,Aware接口也参与进来了,如图所示: 如初始化时的第三步,其实就是调用了Aware相关接口。 以常见的Aware接口举例: 1.BeanNameAware 主要是注入Bean的名字 2.BeanFactoryAware 主要是时注…

ESP32开发日志记录

用过一段时间的ESP8266开发, 是在ubunut下建立的开发环境,现在ESP32更简单,直接在Window下IDE即可完成系统配置、新建工程及编译下载工作,使用起来更加简便 一、生成ESP32的工程运行出错 大概意思的芯片是单核芯片,但…

有什么软件能实现erp、crm、oa、财务系统一体化?

只要你能梳理清楚业务逻辑,没有代码基础也完全可以自己搭建业务系统,比ERP管理系统、工程项目管理系统等等......用简道云就可以轻松实现: 下面来按照题主的需求介绍几个系统: 01 客户关系——CRM客户管理套件 重磅打造客户跟进、…

阿里p8推荐,测试覆盖率工具—Jacoco

测试覆盖率工具 测试过程中根据需求文档和设计文档编写测试用例、执行测试;为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试执行情…