postman接口自动化测试

news/2024/12/22 14:59:48/

   Postman除了前面介绍的一些功能,还有其他一些小功能在日常接口测试或许用得上。今天,我们就来盘点一下,如下所示:

1.数据驱动

    想要批量执行接口用例,我们一般会将对应的接口用例放在同一个Collection中,然后再通过Runner批量执行。这种方式适用于接口用例参数固定的情况下,但也存在另一个问题,如果每次运行时,接口参数都在变化,该如何操作了?

    认真看过前面文章的童鞋可能已经猜到,将变量参数化就可以了。但这种方式,存在也存在另外一个问题,就是需要每次将参数提前设置好,比如在Pre-request Script中设置如下:

pm.environment.set("username","Surpass")
pm.environment.set("password","Surpass")

使用Pre-request Script设置环境变量并进行赋值不论运行多少次,其实还是用固定的的数据进行测试。

    既然以上两种方式都不能解决我们的问题,那将数据写到文件中,然后从文件中读取是不是可以?在Postman中其实也提供了这种方式。

这种用于存放测试数据的文件,一般称之为测试数据集

    在Postman中测试数据集支持两种格式csvjson

  • csv格式
username,password
Surpass,Surpass
Kevin,Kevin
Diana,Diana
...
  • json格式
[{"username": "Surpass","password": "Surpass"},{"username": "Kevin","password": "Kevin"},{"username": "Diana","password": "Diana"}
]

数据格式类似于表格,第一行对应变量名,后面数据对应相应的测试数据

    下面来看看操作步骤:

  • 1、打开Run Collection界面,填写运行次数、导入测试数据集,最后点击Run Collection

  • 2、运行结果如下所示:

2.定期任务

    Postman提供了一个Monitor功能,支持提交具有定时功能的测试任务,可以按设置的定时器执行接口用例,操作如下所示:

3.接口依赖

    接口依赖就是在执行一个接口时,其数据会依赖于其他接口,其本质上是一个接口数据传递的问题。例如:比如在删除用户时,必须要求携带相应的token,而token则是在用户登录后才会产生。

3.1 接口执行顺序

  • 1.默认执行顺序

    在Postman中默认的执行顺序,是按照在Collection中的目录顺序执行,即从上到下依次执行。

  • 2.自定义执行顺序

    如果按默认的目录顺序执行,通常无法其业务需求,好在Postman提供了一个函数 postman.setNextRequest("你要跳转的接口名"),支持跳转到指定接口执行。例如:在执行完接口用户查询后,跳过接口用户新增,直接跳转执行修改密码,示例如下所示:

    • 1、在用户查询接口Tests中添加如下代码:
if(pm.response.code == 200 && pm.response.text().toString().indexOf("username")!=-1 ){// 如果 响应码为 200 且 返回body中包含username,则代表查询成功pm.test["query"] = true;var responseBody=pm.response.json()var username=responseBody.args.usernamevar password=responseBody.args.passwordpm.environment.set("modifyUsername",username)pm.environment.set("modifyPassword",password)console.log("go to request : 修改密码")postman.setNextRequest("修改密码")}
else{pm.test["query"] = false
}
    • 2、在修改密码接口中Tests中添加如下所示:
console.log("run 修改密码接口")
var responseBody=pm.response.json()var username=responseBody.form.username
var password=responseBody.form.passwordconsole.log("修改密码接口 - username",username,"修改密码接口 - password",password)
    • 3、查看运行结果如下所示:

    在使用自定义接口执行顺序时,需要注意以下几点:

postman.setNextRequest()仅在运行集合测试时生效,即在Run Collection时才生效,单独运行接口时不生效

postman.setNextRequest()在运行时,在跳转时会忽略跳转时中间包含的接口,跳转后的接口如果仍然有接口则继续运行后续接口,即如果有接口A/B/C/D/E/F,如果设置的跳转条件为A->D,则最终执行的接口顺序为A->D->E->F,B和C接口被忽略

跳转指定的接口必须位于同一个Collection内

postman.setNextRequest()函数不管在Tests脚本中何处被调用,它都只在当前脚本最后才被真正执行。


http://www.ppmy.cn/news/69874.html

相关文章

剑指 Offer 58 - II. 左旋转字符串(3种方法)

题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。 比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1&…

pcap文件格式

在通过使用wireshark工具抓取主机不同网段的数据包时,把抓到的数据包保存起来会发现生成的文件是.pcap文件,此篇博客主要介绍pcap文件的格式,并利用C语言的结构体知识来初窥探数据包数据。 pcap文件格式 pcap文件数据结构如下图所示&#x…

Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?

在 《Cordova webapp实战开发:(4)Android环境搭建》中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个Andorid下的cordova插件。 本次练习你能…

智能的本质人工智能与机器人领域的64个大问题阅读笔记(三)

目录 机器智能提高到人类的水平或者人类智能下降到机器的水平,都可以到达图灵点。 或许图灵测试是一个自我实现的预言:我们(声称)在打造“聪明”机器的同时,我们也在把人变笨。 不长脑的机器和不思考的人没什么两样&…

Kubernetes架构与组件详解

Kubernetes架构与组件详解 一、Kubernetes 简介1 什么是 Kubernetes2 Kubernetes 的优势3 Kubernetes 的应用场景 二、Kubernetes 架构1 Kubernetes 架构概述2 Kubernetes 架构组件介绍2.1 控制面板组件2.2 API Server2.3 etcd2.4 kubelet2.5 kube-proxy2.6 CNI 插件2.7 容器运…

API常用类

Java API概述 API(Application Programming Interface) 应用程序编程接口 是对Java预先定义的类或接口功能和函数功能的说明文档,目的是提供给开发人员进行使用帮助说明 基本数据类型封装类 基本数据类型包装类byte ByteshortShortcharCharacterint Integerl…

在外Windows公网远程连接MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 转载自远程内网穿透的文章:公网远…

OPPO关停哲库业务,工程师造芯何去何从?

5月12日(上周五),新浪科技从OPPO处了解到,OPPO将终止ZEKU业务。3000多人团队突然原地解散,网上唏嘘声一片! ZEKU最初成立于2019年,是OPPO的全资子公司,欧加集团百分之百注资成立。总…