zoukankan      html  css  js  c++  java
  • 接口测试工具 postman

    postman 简介

    在我们日常的测试工作中,接口测试其实很普遍,无论你是做什么测试,功能、自动化亦或是性能测试,都会或多或少接触到接口。在测试过程中,很多场景都需要测试人员针对某个接口进行测试,并针对不同类型的接口设计不同的测试方案,这时如果有一款功能强大的接口测试工具,就快速完成繁琐工作,大幅提升工作效率。

    Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。

    用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。postman 网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。

    postman 亮点

    1.门槛低,上手快,脚本语言是 JS

    2.自带各种代码模块、跨平台

    3.免费版就已经非常强大了,支持 http,https 协议

    4.有命令行版本 newman,方便放在服务器上运行

    5.支持抓包,保存历史记录,多终端同步用例

    6.支持读取数据文件 json,csv,支持 json Schema 校验

    下载 postman

    1> 、postman下载地址:

    1.Postman for MAC

    2.Postman for windows X64

    3.Postman for windows X86

    4.Postman for linux X64

    5.Postman for Linux X86


    2>. Postman官网下载地址:
    https://www.getpostman.com/apps

    安装 postman

    注册用户

    启动postman之后,提示要注册和登录

    主界面 1

    主界面

     

     知识点
        1、全局变量 & 环境变量
        2、接口关联:上一个接口的返回值作为下一个接口的参数 JSON.parse(responseBody)
        3、requesttest & test(response)断言
        4、列表嵌套字典
        5、列表转换成字符串 stringify(),字符串切割 split()
        6、时间戳生成 (new Date()).getTime()
        7、鉴权token登录  bearer[空格]tokenXXXXXXXXXXXXXXXXXXXXXXXX
        8、postman 控制台日志 console.log()
       

    使用

    1、创建一个文件夹 collections,将本次的接口全部保存到文件夹中

    创建环境变量生产环境,用来存储url,username,password等参数,后续参数变化可直接修改环境变量即可,不需要到登录接口修改参数
    如果有测试环境和生产环境的小伙伴,可直接创建2个环境变量,到时候直接切换就可以更改环境了。

    如下图,点击设置icon添加环境或者全局变量,点击add/update

        全局变量:整个postman生效
        环境变量:当前文件夹生效
        作用范围全局>环境,使用方式{{变量名称}}
       

     

    Postman执行接口测试

    请求页签
      Params : get请求传参

    authorization: 鉴权

    headers: 请求头

    Body: post 请求传参
            form-data : 既可以传键值对参数也可以传文件。

    x-www-from-urlencoded: 只能够传键值对参数

    raw : json , text , xml , html, javascript

    binary : 把文件以二进制的方式传参。

    pre-request-script: 请求之前的脚本。支持JavaScript语法。
    tests: 请求之后的断言。支持JavaScript语法。
    cookies : 用于管理cookie信息。

    响应页签:
           Body: 接口返回的数据。
                    Pretty : 以Json , html,XML....不同的格式查看返回的数据。

    Raw: 以文本的方式查看返回的数据。
    PreView. 以网页的方式查看返回的数据。

    cookies: 响应的Cookie信息
    Headers: 响应头
    Test Results  断言的结果。

    200 状态码
    OK 状态信息
    681MS 响应的时间


    接口关联

    pm.test("获取task_id", function () {
         var jsonData = pm.response.json();
         pm.globals.set("task_id", jsonData.task_id);
    
    });
    var data = JSON.parse(responseBody);
    pm.environment.set("token", data.token);

     

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

    常用内置动态参数

    变量名称描述例子
    $guid 一个uuid-v4风格GUID "611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4"
        "3a721b7f-7dc9-4c45-9777-516942b98e0d"
        "22eca807-006b-47df-9511-e92e37f5071a"
    $timestamp 当前UNIX时间戳(以秒为单位) 156275710715627571081562757109
    $isoTimestamp 当前ISO时间戳(UTC为零) 2020-06-09T21:10:36.177Z
        2019-10-21T06:05:50.000Z
        2019-07-29T18:29:00.000Z
    $randomUUID 随机的36个字符的UUID "6929bb52-3ab2-448a-9796-d6480ecad36b"
        "53151b27-034f-45a0-9f0a-d7b6075b67d0"
        "727131a2-2717-44ad-ab02-006587e947dc"



    REF

    https://blog.csdn.net/fxbin123/article/details/80428216

    http://www.51testing.com/zhuanti/postman.htm

    https://segmentfault.com/a/1190000019053034

    https://blog.csdn.net/gozhuyinglong/article/details/109488295 (内置动态参数)

    https://www.jianshu.com/p/46d44c09d94c

    https://www.jianshu.com/p/97ba64888894

    视频:

    https://www.bilibili.com/video/BV11K4y1J7sh?p=13&spm_id_from=pageDriver

  • 相关阅读:
    利用gcc的__attribute__编译属性section子项构建初始化函数表
    Linux调试
    使用C++ stringstream来进行数据类型转换
    UseConcMarkSweepGC
    Django 3.1 发布,异步支持增强
    网易云音乐的消息队列改造之路
    二维码预生成:码上营销的并发之痛
    源码 redis 分布式锁
    跨度实际上是用来计算排位(rank) 目标节点在跳跃表中的排位 有序集 排序计算
    为什么有序集合需要同时使用跳跃表和字典来实现?
  • 原文地址:https://www.cnblogs.com/emanlee/p/15768311.html
Copyright © 2011-2022 走看看