接口测试基础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,双击打开。

相关推荐

  1. 接口测试工具-postman介绍

    2023-12-22 23:28:03       7 阅读
  2. postman接口测试工具详解

    2023-12-22 23:28:03       6 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 23:28:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 23:28:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 23:28:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 23:28:03       18 阅读

热门阅读

  1. 傅里叶变换全息图 Matlab

    2023-12-22 23:28:03       47 阅读
  2. Python---案例-多任务版TCP服务端程序开发

    2023-12-22 23:28:03       35 阅读
  3. LeetCode刷题(文章链接汇总)

    2023-12-22 23:28:03       47 阅读
  4. linux RCU 使用实例

    2023-12-22 23:28:03       31 阅读
  5. 卸载anaconda报错Error: Unable to move .anaconda

    2023-12-22 23:28:03       41 阅读
  6. Halcon DL-Model相关算子

    2023-12-22 23:28:03       33 阅读
  7. MATLAB中的协方差函数

    2023-12-22 23:28:03       34 阅读
  8. 楼宇对讲门铃的芯片构成分析

    2023-12-22 23:28:03       37 阅读
  9. 代码随想录 279. 完全平方数

    2023-12-22 23:28:03       34 阅读
  10. 详解Qml的底层实现

    2023-12-22 23:28:03       33 阅读