PostMan的学习

news2024/11/29 7:58:08

PostMan的学习

目录

  • 环境变量和全局变量
  • 接口关联
  • 内置动态参数以及自定义动态参数
  • 实现业务闭环
  • Postman断言
  • 批量运行collection
  • 数据驱动之CSV文件和JSON文件
  • 测试必须带请求头的接口
  • Mock Serviers 服务器
  • Cookie鉴权
  • Newman
  • PostMan+NewMan+jenkins实现接口测试持续集成

参考资料:

Postman接口测试使用教程和接口自动化测试项目实战你要的都有_哔哩哔哩_bilibili

环境变量和全局变量

  • Environment的设置 环境变量和全局变量
    在这里插入图片描述

  • 获取环境变量和全局变量的方式: {{变量名}}

接口关联

  • 使用json提取器提取access_token (登录接口后可以自动执行test脚本)

    // 返回的字符串格式转换成对象的形式
    var result=JSON.parse(responseBody);
    // 把access_token 设置为全局对象
    pm.globals.set("access_token", "result.access_token");
    // 第二个接口获取
    {{access_token}}
    
  • 使用正则表达式提取器实现接口关联

    // 返回的字符串格式转换成对象的形式
    var result=responseBody.match(new RegExp('"access_token":"(.*?)"'))
    
    pm.globals.set("access_token", result[1]);
    // 第二个接口获取
    {{access_token}}
    

内置动态参数以及自定义动态参数

  • postman 内置动态参数

    {{$timestamp}} 生成当前时间的时间戳

    {{$randomInt}} 生成0~1000的随机数

    {{$guid}} 生成速记GUID字符串

  • 自定义动态参数 方法请求前编写脚本(pre-request-script)

    // 手动获取时间戳
    var time=Date.now()
    
    // 设置全局变量
    pm.globals.set("times", time);
    
    使用时使用:{{time}}
    

实现业务闭环

  • 增删改查的接口,添加完把id设置成全局变量

    // 获取创建的id
    var tag_id=responseBody.match(new RegExp('"id":(*.?).'));
    
    // 把id设置为全局变量
    pm.globals.set("tag_id", tag_id[1]);
    

Postman断言

Status code: Code is 200 检查返回的状态码是否为200

Response body:Contains String 检查响应中包括指定字符串

Response body:JSON value check 检查响应中其中json的值

Response body:is equal to a string 检查响应等于一个字符串

Response Header: Content type 检查是否包含响应头 Content-Type

Response time is less than 200ms: 检查请求耗时小于200ms

断言判断

  • 状态断言 利用code ==200
  • 业务断言 判断response body 是否有业务的值

在断言中获取自定义动态参数(全局变量)的方式:

pm.globals.get(“time”)

globals[“time”]

globals.times

断言加到全局上

批量运行collection

  • 选一个集合把所有接口运行
  • 上传文件要允许postman读取路径,拷贝到工作目录

数据驱动之CSV文件和JSON文件

  • 编写csv文件/json文件 (多个用例)
  • 记得接口的参数全改成动态获取,宏定义

测试必须带请求头的接口

常见的请求头:

  • Host 请求的主机地址
  • Connection 连接方式
  • Accept 客户端接收到的数据格式
  • X-Requested-With 异步请求
  • Referer 来源
  • Cookie Cookie信息
  • Content-Type: 请求内容的格式

Mock Serviers 服务器

mock 模拟

后端接口还没有开发完成,前端的业务需要调用后端的接口。

{
    "error_code":0,
    "msg":"返回成功",
    "data":[]
}

https://4cc5686e-fea4-4315-b775-2d3dec990017.mock.pstmn.io

Cookie鉴权

什么是cookie

cookie是一小段文本,格式 key=value

cookie的鉴权原理

  1. 当客户端第一次访问服务器的时候,那么服务器就会生成cookie信息,并且在响应头的set-cookie里面把生成的cookie信息发送给客户端
  2. 当客户端第 2 -N次访问服务器的时候,那么客户端就会在请求头带上cookie信息,从而实现鉴权

cookie的分类

  • 会话cookie:保存在内存,当浏览器关闭之后就会自动化清楚cookie
  • 持久cookie:保存在硬盘,浏览器关闭后不会清楚,只有当失效时间到了之后会自动清楚

postman自动触发cookie保存

Newman

postman 是专为接口测试而生。newman(新男人)是专为postman而生的。

newman 可以让我们postman的脚本通过非GUI方式运行

运行命令:newman run

常用参数:

-e 引用环境变量

-g 引用全局变量

-d 引用数据文件

-n 指定测试用例迭代的次数

-r cli,html,json,junit —reporter-html-export 指定生成HTML的报告

安装newman

  1. postman导出测试用例
  2. postman导出全局json
  3. postman导出环境json
  4. 准备数据json

执行命令:

newman run testcase.json -e environment.json -g globals.json -d data.json -r cli,html,json,junit —reporter-html-export export.html

PostMan+NewMan+jenkins实现接口测试持续集成

  1. 新增一个项目
  2. 设置自定义工作空间
  3. 构建执行windows批处理命令
  4. 执行系统的Grovy脚本(保证样式不丢失)
  5. 生成的HTML集成到Jenkins

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

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

相关文章

在线文档生成:Swagger

1 简介 现在的项目开发都是前后端分离,前端和后端是两拨人在开发,所以这就涉及到前后端人员的接口交互了。如果使用自己维护的接口文档或口口相传的话,很容易出现接口更新不及时的问题。这个时候就需要像Swagger这样的在线文档生成框架出马了…

300元左右的耳机哪个性价比最好、好用的开放式耳机推荐

作为经常使用蓝牙耳机的小伙伴们而言,入耳式耳机戴久了会带来不舒适的感觉,开放式耳机显然是最舒服的选择,不入耳不会产生异物感,在户外运动可以时刻保持与外界连接更安全,也不会因为耳塞的卫生问题造成耳道感染&#…

嵌入式学习笔记(35)外部中断

6.9.1什么是外部中断 (1)内部中断就是指中断源来自于SoC内部(一般是内部外设),譬如串口、定时器等部件产生的中断;外部中断是SoC外部的设备,通过外部中断对应的GPIO引脚产生的中断。 (2)按键在SoC中就使用了外部中断…

【MySQL】数据类型(二)

文章目录 一. char字符串类型二. varchar字符串类型2.1 char和varchar比较 三. 日期和时间类型四. enum和set类型4.1 set的查询 结束语 一. char字符串类型 char (L) 固定长度字符串 L是可以存储的长度,单位是字符,最大长度是255 MySQL中的字符&#xff…

No159.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

Kafka(一)使用Docker Compose安装单机Kafka以及Kafka UI

文章目录 Kafka中涉及到的术语Kafka镜像选择Kafka UI镜像选择Docker Compose文件Kafka配置项说明KRaft vs Zookeeper和KRaft有关的配置关于Controller和Broker的概念解释Listener的各种配置 Kafka UI配置项说明 测试Kafka集群Docker Compose示例配置 Kafka中涉及到的术语 对于…

基于SpringBoot的美发门店管理系统

目录 前言 一、技术栈 二、系统功能介绍 美容项目管理 产品库存管理 产品购买管理 会员卡管理 项目预定管理 产品购买信息 会员充值管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信…

笔试强训Day8

链接&#xff1a;求最小公倍数__牛客网 T1:求最小公倍数 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值&#xff0c;设计一个算法&#xff0c;求输入A和B的最小公倍数。 数据范围&#xff1a;1≤a,b≤100000 #include<iostream> using namespace…

第四章 c数组

数组的概念 若干个相同类型的变量在内存中有序存储的集合。 数组在内存中是连续存储的。 数组的分类 按元素的类型分类 char a[10]; short a[10]; int a[10]; long int a[10]; int *a[10]; struct stu boy[10];按维度分类 int a[10]; int b[1][2]; int c[1][2][3]; int d[…

win10打开VMware 16 pro里面的虚拟机就蓝屏怎么办

2023年9月30日&#xff0c;周六下午 今天下午我也遇到了这个问题&#xff0c;后来解决了&#xff0c;于是记录一下我的解决办法 目录 1、打开控制面板&#xff0c;并选择“程序和功能” 2、点击“启动或关闭Windows服务” 3、勾选两个服务 4、重启电脑&#xff0c;大功告成…

博弈论中静态博弈经典场景案例

博弈论中静态博弈经典场景案例 1、齐威王田忌赛马 田忌赛马是中国家喻户晓的故事&#xff0c;故事讲述的是齐国大将田忌的谋士孙膑如何运用计谋帮助田忌在与齐威王赛马时以弱胜强的故事&#xff0c;这个故事其实本质也是一个博弈的过程。     齐威王要和田忌赛马&#xff…

LongLoRA:不需要大量计算资源的情况下增强了预训练语言模型的上下文能力

麻省理工学院和香港中文大学推出了LongLoRA&#xff0c;这是一种革命性的微调方法&#xff0c;可以在不需要大量计算资源的情况下提高大量预训练语言模型的上下文能力。 LongLoRA是一种新方法&#xff0c;它使改进大型语言计算机程序变得更容易&#xff0c;成本更低。训练LLM往…

2023-09-30 LeetCode每日一题(全部开花的最早一天)

2023-03-29每日一题 一、题目编号 2136. 全部开花的最早一天二、题目链接 点击跳转到题目位置 三、题目描述 你有 n 枚花的种子。每枚种子必须先种下&#xff0c;才能开始生长、开花。播种需要时间&#xff0c;种子的生长也是如此。给你两个下标从 0 开始的整数数组 plant…

【每日一题】全部开花的最早一天

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;贪心排序 写在最后 Tag 【贪心】【排序】【数组】【2023-09-30】 题目来源 2136. 全部开花的最早一天 题目解读 每一朵花需要先种下种子才会生长、开花。种种子需要花一些时间&#xff0c;生长也需要一些时间。每天只…

26973-2011 空气源热泵辅助的太阳能热水系统 储水箱容积大于0.6m3 技术规范

声明 本文是学习GB-T 26973-2011 空气源热泵辅助的太阳能热水系统 储水箱容积大于0.6m3 技术规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了空气源热泵辅助的太阳能热水系统的定义、符号和单位、组成与分类、设计要求、技术…

excel筛选后求和

需要对excel先筛选&#xff0c;后对“完成数量”进行求和。初始表格如下&#xff1a; 一、选中表内任意单元格&#xff0c;按ctrlshiftL&#xff0c;开启筛选 二、根据“部门”筛选&#xff0c;比如选择“一班” 筛选完毕后&#xff0c;选中上图单元格&#xff0c;然后按alt后&…

PyQt/PySide ImportError: DLL load failed while importing Shiboken,PyQt库和python

最近在测试PySide项目&#xff0c;在新环境下报错了&#xff1a;ImportError: DLL load failed while importing Shiboken: 找不到指定的程序。 Traceback (most recent call last):File "D:/xxx.py", line 10, in <module>from PySide6.QtWidgets import QAp…

excel中将一个sheet表根据条件分成多个sheet表

有如下excel表&#xff0c;要求&#xff1a;按月份将每月的情况放在一个sheet中。 目测有6个月&#xff0c;就应该有6个sheet&#xff0c;每个sheet中体现本月的情况。 一、首先增加一个辅助列&#xff0c;月份&#xff0c;使用month函数即可。 填充此列所有。然后复制【月份】…

基于微信小程序的网络安全科普题库答题系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

数据集笔记:旧金山共享单车OD数据

数据地址&#xff1a;System Data | Bay Wheels | Lyft