联系我们
简单又实用的WordPress网站制作教学
当前位置:网站首页 > 程序开发学习 > 正文

PostMan的学习

作者:小教学发布时间:2023-10-02分类:程序开发学习浏览:53


导读:PostMan的学习目录环境变量和全局变量接口关联内置动态参数以及自定义动态参数实现业务闭环Postman断言批量运行collection数据驱动之CSV文件和JSON文件...

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



标签:PostMan的学习


程序开发学习排行
最近发表
网站分类
标签列表