接口测试基础03——使用Postman工具

一、下载与安装

1、postman 下载安装,如果之前没有注册过,则创建一个新的用户,注册。如果之前有账户,则sign in登录即可。

2、安装postman插件newman

        (1)安装node.js:

                打开cmd终端,输入命令:npm -v 如果能够显示版本号,可以跳过这一步

                下载https://nodejs.org/

                双击安装,一路next即可

               安装完成后关掉第一步打开的cmd终端,重新打开一个cmd终端,再次输入命令:npm -v

        (2)在线安装命令:npm install -g newman。注意安装过程中不要用鼠标点cmd的页面,点击会导致安装暂停。

        (3)验证安装是否成功:newman -v,能看到版本号即可

        (4)给newman再安装一个插件:newman-reporter-html,

                命令为npm install -g newman-reporter-html

二、创建请求

点击右侧加号,添加一个请求,或在用例集右键——add request 添加一个请求。

选择请求方法:

填写URL:注意填URL时不要有空格、换行符(太长自动换行不算,不要在复制的时候多复制一个换行就行)

填写请求头数据:

填写请求体:只有Post或put方法有请求体,其他方法没有,请求体的数据格式一定要与请求头的Content-type规定的类型一致。

如果请求体数据是json原始数据:

至此已经可以做一个独立的请求了,点击Send按钮即可发送。

如果需要前置条件或需要对请求得到的数据进行断言或二次利用,继续往下。

添加前置操作:

添加后置操作——断言:

三、管理用例集

新建用例集:

导出用例集:

导入用例集:

四、用例关联

A依赖B接口的数据,先执行B,将结果保存值全局或环境变量,在A 中获取全局或环境变量值

1、全局变量与环境变量

        全局变量:Postman全局都能生效,全局唯一的,不可以重复定义

        环境变量:一个变量只能属于某个环境,在某个环境中不可以重复定义。环境与环境之间可以重复定义。一个环境可以包含多个环境变量。

        环境分类:开发环境、测试环境、生产环境。设置变量前要将环境提前设置好

2、设置变量:

        (1)设置全局变量:

            当变量值已知且不变时(例如项目域名,在整个测试过程中都可能用到,而且在测试前就已知,且不会改变),可以将其手动设置为全局变量、

    

        当变量名需要使用某个操作的结果数据时,使用代码设置:在Tests模块编写代码如下:        pm.globals.set("变量名","变量值")

        (2)环境变量:

                手动设置(同样适用于已知且不变的数据):

                代码设置: pm.environment.set("变量名","变量值")

3、使用变量:

(1)在请求参数中获取(即在Postman页面中使用):{{变量名}}

(2)在代码中获取:

        var value = pm.globals.get("变量名");

        var value = pm.environment.get("变量名");

4、查看变量设置情况:

案例:获取天气信息,将响应中的城市名给百度搜索

        (1)创建用例集,分别创建获取天气、百度搜索的request

        (2)根据第②步的响应数据,知道了响应回来的JSON具体内容,根据这个内容取出city的值。在Tests标签中获取JSON数据,再逐层取出city的值,将city的值设置为全局变量供百度搜索接口使用。

        (3)获取天气:填写请求方法、URL,先send一波。查看接口是否能正常访问,同时也能获取响应示例。

如果想要把city设置成环境变量,在Tests将它设置成environment变量a后,后续使用环境变量时使用的是环境变量a,需要注意的是这个环境变量,只在当前环境有效,切换环境后就失效了。全局变量则不受环境切换影响

        (4)百度搜索:填写请求方法、URL,根据百度URL的特点可以知道,搜索关键字通常放在URL查询参数wd的值中,所以将全局变量city的值传递给wd,作为查询参数传递给百度查询接口。send可以在返回内容栏的Preview标签中预览返回内容

五、批量执行

1、执行前确认每一个request都能执行无误。

2、点击用例集,点击run按钮,在Runner的设置页面中选中需要执行的request,然后点击批量执行测试用例即可。

六、参数化

1、什么是参数化:当http请求有较高相似度时,考虑使用参数化。将变量、测试数据组织在数据文件中,读取外部文件实现参数化

2、数据文件:

        CSV:

                缺点:

                        不支持复杂数据类型(嵌套字典、列表等)

                        不支持多参、少参、无参、错误参数的接口测试

                        不支持bool类型,数据被Postman读取后自动添加

                优点:数据组织形式简单,适用于大量数据的场合

        JSON:

                优点:

                        支持复杂数据类型(嵌套字典、列表等)

                        支持参、少参、无参、错误参数的接口测试

                        支持bool类型

                缺点:相同数据量,JSON文件大小远大于CSV

3、使用文件:

        (1)创建文件XXX.csv

        (2)将数据写入到CSV文件中,第一行是字段名称,从第二行往后是数据值,一行中数据用逗号隔开,一行为1条用例数据,有中文一定要确认编码是UTF-8

注意:Postman要求JSON格式的数据文件,数据内容的最外层必须是[ ],[]内部的所有数据用{}存储。

        (3)导入文件:

                        

5、使用:

        在请求参数中使用:{{key}}。例如{{username}}

        在代码中使用:借助Postman提供的关键字data.key。例如data.password

使用文件中的参数后就不能再使用send发送请求,需要批量执行。

七、生成报告

1、Postman生成测试报告

(1)装newman及其插件newman-reporter-html插件成功(参考1章.)

(2)将用例集批量执行1次(参考6章),无误后导出用例集(参考3章)

(3)打开找到文件保存目录,在目录地址栏输入cmd在此打开命令行,使用newman命令运行导出的测试集脚本:

newman run 测试脚本文件名(必填)-e 环境变量文件(可选) -d 测试数据文件(可选) -r html  --reporter-html-export report.html

命令解析:

run执行

测试脚本文件名:即导出的测试用例集文件名称。中文也可以识别。

注意:如果没有在测试脚本文件的目录下打开cmd,则这个文件与命令行 的执行目录下不一致,此时要加上文件路径才能找到文件。

-e 环境变量文件名:导出的环境变量文件(该文件也是Postman批量执行的引入外部文件),同样,不在命令行的执行目录时,需要加文件路径。中文也可以识别。

-d 测试数据文件名:导出的测试数据文件,同样是Postman批量执行的引入外部文件。不在命令行的执行目录时,需要加文件路径。中文也可以识别。

-r html

--reporter-html-export  

report.html:测试报告名称,后缀.html不可以更改。中文也可以识别。

查看报告:到终端的执行目录下,找到测试报告report.html,双击打开。

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

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

相关文章

VBA之Word应用:利用代码统计文档中的书签个数

《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实…

Vue项目搭建过程

Vue项目搭建过程 1、安装NodeJs 1.1 下载安装包 在 http://nodejs.cn/download/ 上下载64位安装包,然后进行安装,和普通软件的安装一样。 C:\Users\Administrator>node -v v16.13.1C:\Users\Administrator>npm -v 8.5.51.2 安装cnpm # 安装cn…

20231218在Ubuntu18.04下以EXT4格式化HDD

20231218在Ubuntu18.04下以EXT4格式化HDD 2023/12/18 17:24 缘起: 编译一个Android10大概要200GB,编译10个Android10的SDK,3TB的HDD机械硬盘就估计会被填满了! 如果使用rm -rf *这个命令将SDK一个一个逐个地删除,估计2…

VMware网络设置+Linux网卡设置+主机与虚拟机相互Ping通

目录 1. Linux网卡设置 1.1 ifcfg-ens33 1.2 修改配置信息 1.3 添加IP信息 1.4 重启网卡、关闭防火墙 2. VMware网络设置 3. 设置主机网络 4. 测试主机与虚拟机网络是否连通 4.1 主机ping虚拟机的Linux 4.2 虚拟机Linux来ping主机 1. Linux网卡设置 刚开始安装的Lin…

openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表

文章目录 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-处理错误表164.1 操作场景164.2 查询错误信息164.3 处理数据导入错误 openGauss学习笔记-164 openGauss 数据库运维-备份与恢复-导入数据-使用COPY FROM STDIN导入数据-…

基础算法(5):滑动窗口

1.何为滑动窗口? 滑动窗口其实也是一种算法,主要有两类:一类是固定窗口,一类是可变窗口。固定的窗口只需要一个变量记录,而可变窗口需要两个变量。 2.固定窗口 就像上面这个图一样。两个相邻的长度为4的红色窗口&…

【PHP入门】1.3-数据类型、转换、判断

-数据类型- 数据类型:data type,在 PHP中指的是存储的数据本身的类型,而不是变量的类型。 PHP是一种弱类型语言,变量本身没有数据类型。 1.3.1PHP的八种数据类型 在PHP中将数据分为三大类八小类: 简单&#xff0…

Arduino外部中断按钮输入控制继电器输出

目录 一、硬件 1、硬件介绍 2、Arduino外部 (1)中断引脚 (2)中断触发方式 (3)中断函数 二、外部中断0 三、外部中断0、外部中断1 一、硬件 1、硬件介绍 Adruino单片机、按钮、继电器。 按钮&…

UE5 Landscape地貌制作 - 学习笔记

P2. 创建地形 https://www.bilibili.com/video/BV1mD4y1D7D6?p2&spm_id_frompageDriver&vd_source707ec8983cc32e6e065d5496a7f79ee6 新建一个Basic场景选择Landscape Mode 生成预览网格(绿色网格)从文件导入:可以导入dem高度图地貌…

二叉树【数据结构】

目录 二叉树1. 二叉树定义二叉树的存储定义 2. 遍历二叉树(1) 前序遍历(2) 中序遍历(3) 后序遍历(4) 层序遍历 3. 二叉树的相关操作(1) 二叉树的初始化(2) 二叉树的结点的手动创建(3) 二叉树结点的个数(4) 二叉树叶子结点的个数(5) 二叉树的高度(6) 第k层结点个数(7) 通过前序遍…

Linux 特殊符号

目录 1. # 注释 2. ;命令分隔符 3. .. 上级目录 4. . 当前目录 5. " " 换行,解析变量 6. 换行,不解析变量 7. \ 和 / 8. !历史命令调用,取反 9. * 通配符 10. $ 调用变量 11. | 管道 12. || …

数据结构:树(Tree)

树型结构 树的概念 树是一种非线性结构,他是由n(n>0)个有限结点组成的一个具有层次关系的集合。 当n0时,该树为空树。 在任意一个非空树中都满足以下条件: 1、有一个特殊的结点,称为根结点&#xff0c…