首页 > 其他分享 >postman进阶功能学习,别再简单的发请求了!

postman进阶功能学习,别再简单的发请求了!

时间:2024-03-22 20:05:17浏览次数:23  
标签:username postman 执行 请求 接口 pm 跳转 password 进阶

1.Postman数据驱动

    想要批量执行接口用例,我们一般会将对应的接口用例放在同一个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.username
   var password=responseBody.args.password
   
   pm.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.password

console.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脚本中何处被调用,它都只在当前脚本最后才被真正执行。

标签:username,postman,执行,请求,接口,pm,跳转,password,进阶
From: https://blog.csdn.net/weixin_54737971/article/details/136869072

相关文章

  • aspx请求
     什么叫阿贾克斯请求就是当我们点击这个查询的时候地址栏的地址不会改变,那么就属于ajx请求看到地址栏里面的参数:有keyword 点击负载我们可以看到这些参数的值,可以看到这个keyword是北京,这就意味着搜索框里面的东西就是keyword由此我们可以得出,这个keyword可以进行动态改变......
  • 浅谈Postman与Jmeter的区别、用法
    前阶段做了一个小调查,发现软件测试行业做功能测试和接口测试的人相对比较多。在测试工作中,有高手,自然也会有小白,但有一点我们无法否认,就是每一个高手都是从小白开始的,所以今天我们就来谈谈一大部分人在做的接口测试,小白变高手也许你只差这一次深入了解!接口测试的目的已经是老......
  • C#配置网站的服务和HTTP请求管道
    在前面的文章学习了如何使用ASP.NETCoreRazorPages构建网站C#使用ASP.NETCoreRazorPages构建网站(一)C#使用ASP.NETCoreRazorPages构建网站(二)C#使用ASP.NETCoreRazorPages构建网站(三)接下来了解如何配置服务和HTTP请求管道1.配置服务(ConfigureServices)打......
  • 开窗函数进阶last_value特别地方
    有了开窗函数,让我们做统计方便很多。row_number(),sum,等常规用法,便不在这里讲。我们从一个问题开始withabcas(select1asidunionallselect2unionallselect3unionallselect4)selectid,FIRST_VALUE(id)over(orderbyid)asfirstid,LAST_VALUE(id)o......
  • 使用 Pyqt5 GUI 页面请求 FastAPI 后端 API,实现逻辑功能
    使用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做一个登录注册页(四)本文将介绍用PyQt5+FastAPI+SQLAlchemy+Redis+Celery做的一个登录注册页,使用邮箱接收验证码,本文介绍是前后端分离的实现方式,厚后端使用FastAPI+SQLAlchemy+Redis+Celery,你可以将PyQt5改为PySide2以获得更宽松......
  • ASPNET MVC POST DELETE PUT 请求返回 400 (Bad Request)
    近日遇到 POSTDELETEPUT请求返回400(BadRequest),而GET请求正常的情况经几日排查,发现是【防止ASP.NETMVC应用程序中的跨站点请求伪造(CSRF)攻击】导致的解决方法:在请求头中加入 RequestVerificationToken@injectMicrosoft.AspNetCore.Antiforgery.IAntif......
  • DFS进阶——全排列
    通过后续的题目希望大家明白,dfs不仅仅是对图的遍历,他还有很多用法。DFS进阶1——回溯先说一下回溯的板子dfs(){for(......){标记信息dfs()撤销标记}}回溯模板——递归实现排列型枚举题目分析其实就是对1~n的数字全排列,这里就可以用dfs去做,1~n全排......
  • (45/60)爬楼梯进阶、零钱兑换、完全平方数
    day45爬楼梯进阶卡码网:爬楼梯(第八期模拟笔试)动态规划代码实现/*总和为j总共有dp[j]种方法(可重复选取、排列)dp[j]+=dp[j-nums[i]dp[0]=1;其余为0先背包再物品,正序*/#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;intmain(){......
  • <爬虫部署,进阶Docker>----第十章 探究一下Docker Compose
    前言:        DockerCompose是一个用于定义和运行多容器应用程序的工具,它提供了一种简化和自动化容器编排的方式。在理解DockerCompose的背景之前,让我们先回顾一下容器化技术的发展。容器化技术的出现使得应用程序的部署和管理变得更加轻松和灵活。容器化通过......
  • Requests请求方式有那些吗?这篇就够了
    Requests请求方式有那些吗?这篇就够了使用Python的requests库,您可以进行多种类型的HTTP请求.以下是一些常见的请求方式:GET请求:response = requests.get(url)POST请求:response = requests.post(url, data=data)PUT请求:response = requests.put(url......