PostMan的学习

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.mzph.cn/news/91581.shtml

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

相关文章

Kerberos常见报错汇总

一.kdb5_util: Password mismatch while reading master key from keyboard 1>.错误复现 2>.错误原因分析 在初始化Kerberos数据库时需要输入密码,2次密码输入不一致就会导致该错误。 3>.解决方案 重新执行"kdb5_util -r YINZHENGJIE.COM create -s…

Mendix中的依赖管理:npm和Maven的应用

序言 在传统java开发项目中,我们可以利用maven来管理jar包依赖,但在mendix项目开发Custom Java Action时,由于目录结构有一些差异,我们需要自行配置。同样的,在mendix项目开发Custom JavaScript Action时,…

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

数据地址:System Data | Bay Wheels | Lyft

使用不同尺寸的传感器拍照时,怎么保证拍出同样视场范围的照片?

1、问题背景 使用竞品机做图像效果对比时,我们通常都会要求拍摄的照片要视场范围一致,这样才具有可比性。之前我会考虑用同样焦距、同样分辨率的设备去拍照对比就可以了,觉得相机的视场范围只由镜头焦距来决定。 但如果对于不同尺寸的传感器…

【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限

MySQL 是一个强大的关系型数据库管理系统,提供了丰富的功能和选项来管理数据库和用户。数据库管理员(DBA)通常使用数据控制语言(Data Control Language,简称 DCL)来管理用户的权限和访问。 本文将详细介绍…

定义现代化实时数据仓库,SelectDB 全新产品形态全面发布

导读:9 月 25 日,2023 飞轮科技产品发布会在线上正式召开,本次产品发布会以 “新内核、新图景” 为主题,飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势,宣布立足于多云之上的 SelectDB Cloud 云服务全面开放…

数据结构——堆(C语言)

本篇会解决一下几个问题: 1.堆是什么? 2.如何形成一个堆? 3.堆的应用场景 堆是什么? 堆总是一颗完全二叉树堆的某个节点总是不大于或不小于父亲节点 如图,在小堆中,父亲节点总是小于孩子节点的。 如图&a…

华为ensp单臂路由及OSPF实验

单臂路由及OSPF实验 1.1实验背景 在这个实验中,我们模拟了一个复杂的网络环境,该网络环境包括多个子网和交换机。这个实验旨在帮助网络工程师和管理员了解如何配置单臂路由和使用开放最短路径优先(OSPF)协议来实现不同子网之间的…

从 低信噪比陆上地震记录 解决办法收集 到 走时层析反演中的折射层析调研

目录 (前言1) 关于背景的回答:(前言2) 现有的降低噪声, 提高信噪比的一些特有方法的论文资料 (传统策略):1. 关于波形反演与走时层析反演2. 折射层析3. 用一个合成数据来解释折射层析反演的思路4. 其他层析反演方法:5. 关于层析反演的一些TIPS (可补充)参考文献: 降噪有关资料参…

SpringBoot使用Docker并上传至DockerHub

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情 文章目录 1.系列文章2.构建docker镜像的方式3.docker操作3.1 安装docker3.2 查看docker镜像3.3 本地运行docker3.4 修改tag3.5 推送docker镜像3.6 远端server拉取d…

FOC控制算法

目录 一、FOC介绍 二、FOC基本概念 1、为什么是三相? 2、FOC矢量控制总体算法简述 3、为什么FOC不一定需要电流采样?参考链接 4、FOC的分类 (1)有感FOC与无感FOC 三、FOC中电流采样 参考链接 1、高端采样 2、低端采样 …

AI项目十三:PaddleOCR训练自定义数据集

若该文为原创文章,转载请注明原文出处。 续上一篇,PaddleOCR环境搭建好了,并测试通过,接下来训练自己的检测模型和识别模型。 paddleocr检测模型训练 1、准备数据集 在PaddleOCR目录下新建文件夹:train_data, 这个…

深度学习:模型训练过程中Trying to backward through the graph a second time解决方案

1 问题描述 在训练lstm网络过程中出现如下错误&#xff1a; Traceback (most recent call last):File "D:\code\lstm_emotion_analyse\text_analyse.py", line 82, in <module>loss.backward()File "C:\Users\lishu\anaconda3\envs\pt2\lib\site-packag…

【0223】源码剖析smgr底层设计机制(3)

1. smgr设计机制 PG内核中smgr完整磁盘存储介质的管理是通过下面三部分实现的。 1.1 函数指针结构体 f_smgr 函数指针结构体 f_smgr。 通过该函数指针类型,可完成类似于UNIX系统中的VFD功能,上层只需要调用open()、read()、write()等系统函数,用户不必去关系底层的文件系统…

「网页开发|前端开发|Vue」09 Vue状态管理Vuex:让页面根据用户登录状态渲染不同内容

本文主要介绍如何通过Vue的状态管理框架Vuex来管理一些被不同组件或不同页面共同使用的数据&#xff0c;然后展示如何通过状态管理用户信息&#xff0c;并且在具体页面获取用户信息&#xff0c;并且根据用户信息的不同展示不同的页面内容。 文章目录 本系列前文传送门一、场景…

C++核心编程--对象篇

4.2、对象 4.2.1、对象的初始化和清理 用于对对象进行初始化设置&#xff0c;以及对象销毁前的清理数据的设置。 构造函数和析构函数 防止对象初始化和清理也是非常重要的安全问题 一个对象或变量没有初始化状态&#xff0c;对其使用后果是未知的同样使用完一个对象或变量&…

【C++学习】多态

目录 一、多态的概念 1. 概念 二、多态的定义及实现 2.1 多态的构成条件 2.2 虚函数 2.3 虚函数的重写 2.4 C11 override 和 final 2.5 重载、覆盖(重写)、隐藏(重定义)的对比 三、抽象类 3.1 概念 3.2 接口继承和实现继承 四、多态的原理 4.1 虚函数表 4.2 多态的…

【大规模 MIMO 检测】基于ADMM的大型MU-MIMO无穷大范数检测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

CCF CSP认证 历年题目自练Day17

CCF CSP认证 历年题目自练Day17 题目一 试题编号&#xff1a; 201803-1 试题名称&#xff1a; 跳一跳 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 问题描述   近来&#xff0c;跳一跳这款小游戏风靡全国&#xff0c;受到不少玩家的喜爱…

[Machine learning][Part3] numpy 矢量矩阵操作的基础知识

很久不接触数学了&#xff0c;machine learning需要用到一些数学知识&#xff0c;这里在重温一下相关的数学基础知识 矢量 矢量是有序的数字数组。在表示法中&#xff0c;矢量用小写粗体字母表示。矢量的元素都是相同的类型。例如&#xff0c;矢量不包含字符和数字。数组中元…