Postman接口测试 —— 设置全局变量、参数传递、断言

news2024/9/29 9:39:02

在能熟练使用postman运行接口请求后,会遇到一些问题。例如:

  • 我们的web网站一共有几十个接口,测试的时候如果要切换环境,这个时候要每个接口都要修改url的根路径,一个一个的改也太麻烦了;

  • 还有时候我们经常需要用到上一个接口的返回值,来作为下一个接口的数据来使用,要怎么把参数传递过去呢;

  • 作为接口测试的话,验证接口返回结果是否正确,需要断言来判定这个接口的运行结果是否符合期望,这个时候又该怎么做。

在postman中,这些问题都有解决方案,下面跟我一起来看一下吧。

参考文档:https://learning.getpostman.com/docs/postman/scripts/test_examples/

一、设置全局(环境)变量

  postman中可以设置全局和环境变量,以便可以存储一些例如:url、token值、测试参数等数据。

变量的设置

是通过key-value的形式来存储。

例如:url:http://test.baidu.com

变量的使用:

通过{{变量key}}来调用关键字获取值

例如:{{url}},可以放在需要填写参数的任何位置。

如何创建变量:

  点击postman界面右边的齿轮,在弹窗中可以选择创建全局变量、导入变量文件、创建环境变量。

添加变量:

  全局变量在创建后,任何时候都可以获取到,而环境变量只有在设置为当前环境时,才会获取到此环境中的变量。这个看个人需要来设置是全局变量还是环境变量,例如我把url、账号密码设为环境变量,因为有切换不同环境的需要。

添加全局变量:

添加环境变量

变量的引用:

  如图所示,是一个环境变量的设置和引用,当鼠标悬浮在我们引用的变量{{key}}上时,会显示当前变量的值。

二、参数传递和断言

  在postman中有专门的代码区域,可以通过js代码语言来实现一些自定义操作。在Pre-request Script区域,是请求发送前的代码区,比如我们需要对密码进行md5加密后发送,就可以使用js中的方法先进行加密。在Tests区域中,可以通过获取返回参数的值进行断言,断言失败的接口会显示为false结果。

如何进行参数传递:

  比如支付接口,需要上一个下单接口返回的订单号来作为入参。

  这个时候,首先要在下单接口的Tests区域中,获取到返回数据的订单号,然后存储为全局变量;

  接着在支付接口中,入参中的订单号值填写为我们设置的全局变量,这样就实现了一次参数传递。

下面我们来看一下这些方法都该怎么写:

2.1变量的设置

这些方法是在postman中对全局(环境)变量的操作方法。

获取变量

  • 获取全局变量:

        pm.globals.get(“variable_key”);

  • 获取当前环境变量:

    pm.environment.get(“variable_key”);

  • 获取普通变量:

    pm.variables.get(“variable_key”);

设置变量

  • 设置全局变量:

    pm.globals.set(“variable_key”, “variable_value”);

  • 设置当前环境变量:

    pm.environment.set(“variable_key”, “variable_value”);

清空变量值

  • 清空当前环境变量:

    pm.environment.unset(“variable_key”);

  • 清空全局变量:

    pm.globals.unset(“variable_key”);

2.2返回数据的判断

这里需要注意的是,网上有一些教程比较老了,例如这种形式的写法:

tests[“Status code is 200”] = responseCode.code === 200;

这样的写法官方文档中已经表示不推荐使用,而是推荐统一的js书写格式。

  • 判断返回状态码

pm.test(“返回状态码为200”, function () {

  pm.response.to.have.status(200);

});

  • 判断返回header中是否有“Content-Type”字段

pm.test(“Content-Type字段存在”, function () {

  pm.response.to.have.header(“Content-Type”);

});

  • 判断接口返回内容匹配一个字符串

pm.test(“返回内容匹配字符串”, function () {

pm.response.to.have.body(“response_body_string”);

});

  • 判断返回参数中包含某个字符串

pm.test(“字符串包含在返回值中”, function () {

pm.expect(pm.response.text()).to.include(“想要搜索的字符串”);

});

  • 判断接口响应时间

pm.test(“接口响应时间小于200ms”, function () {

pm.expect(pm.response.responseTime).to.be.below(200);

});

  • 把responseBody转为json字符串

var Jsondata =JSON.parse(responseBody);

  • 把xml格式返回转换为json格式

var jsonObject = xml2Json(responseBody);

  • 获取并判断返回参数的值

//假设返回参数为:{“code” : 0}

pm.test(“断言code字段值是否为0”,function(){

  var jsonData = pm.response.json(); 

        //创建一个变量,值为返回参数(json格式)

  pm.expect(jsonData.code).to.eql(0); 

         //判断返回参数中code字段值为0

});

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

八、SPA单页面实现SEO优化之预渲染prerender-spa-plugin

文章目录 一、前言二、prerender-spa-plugin预渲染方式实现SEO插件介绍实现步骤 一、前言 关于SPA和SEO优化、SSR服务器渲染的介绍可以参考这里: 六、什么是SEO优化(搜索引擎优化)?SPA单页面应用如何实现SEO优化? 通…

C/C++语言基础--字符串(包括字符串与字符数组、字符串与指针、字符串处理函数等),代码均可运行

本专栏目的 更新C/C的基础语法,包括C的一些新特性 前言 无论什么语言,字符串都是最重要、最基础的数据类型,他对二进制有很好的对应关系在C语言中没有提供专门的处理字符串的类型,但是我们可以通过字符数组、开辟内存地址来处理…

Content-Encoding: br

爬虫的时候遇到了 Content-Encoding: br , 这可能会导致返回的数据有乱码,无法解析,也无法解码, 浏览器显示编码 按照这么写,还是乱码 查了很久,需要在请求头 Accept-Encoding 将这个改为gzip&#xff0c…

Swift 6.0 如何更优雅的抛出和处理特定类型的错误

概述 从 Swift 语言诞生那天儿起,它就不厌其烦一遍又一遍地向秃头码农们诉说着自己的类型安全和高雅品味。 不过遗憾的是,作为 Swift 语言中错误处理这最为重要的一环却时常让小伙伴们不得要领、满腹狐疑。 在本篇博文中,您将学到如下内容&…

企业数字化转型会面临哪些挑战,如何解决?

当前,数字技术发展迅速,已迈入 AI 人工智能时代。企业若不进行数字化转型,可能会被用户抛弃、被竞争对手超越。那么,传统企业在转型过程中会遇到哪些挑战呢? 一、企业数字化转型面临的挑战 1、缺乏明确的战略规划和转…

宠物空气净化器除臭吗?性价比高的宠物空气净化器十大排名分享

来来来,先带大家一睹我店里的小可爱们 是不是超级可爱呀~?这样的大卡车猫猫,在我这猫咖里可是还有好几十只!作为一位坐拥几十只猫咪的“猫咖掌门”,朋友们总是投来羡慕的目光。但这份光鲜背后,可是有我无数…

轻松制作 GIF 动图,你也可以!

你是否曾为找不到合适的动图而烦恼? 是否羡慕别人能制作出精彩的 GIF 动图? 现在,无需再羡慕!因为我们用以下图片中的方法,你自己也能轻松制作 GIF 动图。 这款工具,操作简单易懂, 即使你没有…

舞动奇迹,亨廷顿舞蹈症患者专属健身秘籍!

🌈 在小红书的温馨角落里,让我们一起探索一个特别的世界——为亨廷顿舞蹈症(HD)患者量身定制的健身之旅。HD,这个名字或许带着一丝沉重,但它绝不能定义我们生活的全部色彩。通过科学的锻炼方式,…

APP逆向百例五-Flutter逆向案例----某次元(AES+RSA)

现在售价依旧是99¥,计划更新100案例,平均一个案例1块钱,要什么自行车! 还原一下我逆向此app的方法 1.抓包分析: 我这边用socksDroid抓不到数据包,但是小黄鸟可以,那就用Reqable结合电脑端进行抓包,不纠结…

Leetcode 347. 前 K 个高频元素

解法: 字典统计排序 class Solution:def topKFrequent(self, nums: List[int], k: int) -> List[int]:cont {}for eve in nums:if eve not in cont: cont[eve] 1else: cont[eve] 1contlist sorted(cont.items(), keylambda x: x[1])res [eve[0] for eve i…

从安装Docker到打包迁移MySQL的完整指南

从安装Docker到打包迁移MySQL的完整指南 每一天过得充实,眼中无迷茫,心中无烦恼。日子就会充满希望,岁月就会洒满清欢。 这篇文章将带你从零开始,在CentOS服务器上安装Docker、使用Docker部署MySQL数据库,并打包和迁移…

凯迪仕智能锁携手唐百电器达成战略合作,市场布局和拓展再加速

近日,凯迪仕智能锁中国区总裁陈露拜访唐山百货大楼集团(唐百电器),双方深入交流资源优势,结合唐山市场实际情况达成2024年-2025年度深度战略合作,并完成首次签约千余套凯迪仕智能锁战略目标,接下…

【java计算机毕设】中小型人力资源管理系统MySQL ssm vue maven项目设计源代码带项目报告 前后端可分离可不分离

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】中小型人力资源管理系统MySQL ssm vue maven项目设计源代码带项目报告 前后端可分离可不分离 2项目介绍 系统功能: 中小型人力资源管理系统包括管理员、人事管理员、普通人员三种角色。 管理员…

【JS】不使用BigInt实现大整数相加

前言 JS中整数有存储范围,一旦超出这个范围则会丢失精度,通过MAX_SAFE_INTEGER可以看到JS中支持的最大的、安全的正整数为9007199254740991。 JS新类型BigInt可以处理大整数运算,但这次不逃课,本文将尝试自行处理大整数相加&…

python安装包,2024最新Python下载环境配置教程!

一、Python安装包下载 1.进入Python官网下载(如果不想去官网下载可以点击领取安装包) Python官网主要有python的About (简介)、Downloads (下载)、Documentation(文档)、Community (团体)、Success Stories (成功案例)、News (新闻)、Events (事件动态…

Windows微调Qwen2-7B-Instruct-甄嬛

一、下载Anaconda 在下载Anaconda之前建议先将电脑原有的python卸载,避免造成冲突。 之后一直Next即可,不过要记得在环境变量中添加Anaconda(在安装完成之前会有一个Add PATH选项,可以选上) 安装完成之后打开CMD&…

3.2.5 宙之CPU的时分复用

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 3.2.5.1 __primary_switched开始构建0号进程 宙者,古往今来,时间为宙。盘古为了开天辟地,必须分开空间和时间。在时间维度,要对CPU的运行时间进行切分,…

netty编程之自定义编解码器

写在前面 源码 。 本文看下netty如何自定义编解码器。为此netty专门定义抽象类io.netty.handler.codec.MessageToByteEncoder和io.netty.handler.codec.ByteToMessageDecoder,后续我们实现自定义的编解码器就继承这两个类来做。 1:正戏 server 启动类&#xff1a…

卖一辆亏6万搞倾销,极越汽车高管掀了小米汽车遮羞布?

"炮轰解决不了极越销量问题" 作者 | 魏 强 编辑 | 卢旭成 8月22日早9点40分,极越汽车公关负责人徐继业发朋友圈炮轰小米汽车创始人雷军:“雷军这样的企业家,有点公德心和羞耻心好不好?每台车亏6万,亏那么…

Springboot中的mapper与entity难以觉察的匹配问题,困扰我几天时间,形成很大的压力!

最近,应好友邀请,替她做了一个心理疗愈项目的小系统,在编制后台API代码时,遇到了一个不易觉察的问题,终于查找出来,并且解决了,现奉献出来,供大家碰到类似问题,进行参考。…