Postman基本使用、测试环境(Environment)配置

这篇具有很好参考价值的文章主要介绍了Postman基本使用、测试环境(Environment)配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备测试项目Demo

Controller测试代码

package com.dz.controller;

import com.jfinal.core.Controller;
import com.jfinal.core.Path;

import java.util.HashMap;
import java.util.Map;

@Path("/")
public class HelloWorldController extends Controller {

    /**
     * postman 环境配置请求测试
     */
    public void test_login() {

        Map<String, Object> resMap = new HashMap<>();
        resMap.put("code", 1);
        // 响应一个登录成功的Auth-Token
        Map<String, Object> tokenMap = new HashMap<>();
        tokenMap.put("Auth-Token", "1234567890.hello.token");
        resMap.put("data", tokenMap);
        resMap.put("message", "success");

        renderJson(resMap);
    }


    /**
     * postman 环境配置请求测试
     */
    public void test_api() {

        Map<String, Object> resMap = new HashMap<>();
        resMap.put("code", 1);
        resMap.put("data", "响应一个正确数据");
        resMap.put("message", "success");

        renderJson(resMap);
    }
}

Interceptor模拟拦截配置

package com.dz;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;

import java.util.HashMap;
import java.util.Map;

/**
 * demo
 * <pre>
 *     配置一个简单的请求拦截
 * </pre>
 */
public class ReqInterceptor implements Interceptor {

    @Override
    public void intercept(Invocation inv) {

        String actionKey = inv.getActionKey();

        if (actionKey.contains("/test_login")) {
            // 直接放过登录请求:不校验Auth-Token
            inv.invoke();
        } else {

            Controller controller = inv.getController();
            String authToken = controller.getHeader("Auth-Token");

            // 拦截授权标识
            if (authToken == null || authToken.isEmpty()) {
                Map<String, Object> resMap = new HashMap<>();
                resMap.put("code", 10000);
                resMap.put("data", "Not Fount Auth-Token.");
                resMap.put("message", "error");

                controller.renderJson(resMap);
            } else {
                // 假设这是一个正确的Auth-Token
                if ("1234567890.hello.token".equals(authToken)) {
                    // 通过
                    inv.invoke();
                } else {
                    Map<String, Object> resMap = new HashMap<>();
                    resMap.put("code", 10001);
                    resMap.put("data", "Auth-Token is not error.");
                    resMap.put("message", "error");

                    controller.renderJson(resMap);
                }
            }
        }
    }
}

Postman模块简单介绍

        一般在使用的时候,会把整个完整的请求url写到地址栏,包括协议、域名、端口号、项目地址。
        在单一环境进行请求的时候,这样写不会出现大范围重新编辑的情况,通常复制链接就能把协议、域名、端口等全部复制到新url。只需要重新修改项目地址即可!

        也可能会出现问题:

        一旦出现直接同时测试线上(某个域名下的Api)或者测试本地(localhost)下的Api,就可能出现反复修改域名的情况,这样就是让原本简单的请求变的复杂,修改的请求少了还好,改的多了之后会很让人头大。

        如果你说这个也不复杂呀?那么如果请求多个IP下的相同Api呢,比如:

        http://192.169.1.10:9090/test_api
        http://192.169.1.11:9090/test_api
        http://192.169.1.12:9090/test_api
        http://192.169.1.13:9090/test_api
        http://192.169.1.14:9090/test_api
        ...

        这样也不复杂吗?除了IP不同,其他的都是一样的,这时候Postman请求环境的配置就至关重要了。

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

注!Postman版本不同,界面样式也可能不一样,但是配置基本一致。

Postman通用环境配置

新建环境(Environment)

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

配置环境(Environment)

设置域名变量

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

引用域名变量

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置
点击【Send】发送请求,获取响应数据:
Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

查看请求结果打印

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

Postman脚本设置变量

        上面使用/test_login演示了请求环境配置域名,程序也正确响应了Auth-Token的值。
        但是,如果需要Auth-Token授权的Api请求怎么办呢?要手动把Auth-Token值都复制一遍吗?
        如果你说是的,反正都要创建一个新请求,复制一遍也不麻烦!那如果这个Auth-Token过期了呢?还需要重新把之前测试的接口都替换一遍吗?

        这个时候就有一个非常好用的方法:
        使用脚本去设置一个全局的/当前环境的Auth-Token每次登录都重新设置Auth-Token,这样只需要引用Token的变量就可以了,不需要每次替换。只要重新登录就好

登录成功后设置全局Auth-Token脚本

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

编写脚本

脚本使用Javascript编写:
Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置
脚本内容:

// 打印两个结果
console.log('响应response:', pm.response)
console.log('响应体responseBody:', responseBody)

// 处理一下逻辑判断
let response = pm.response
// 请求成功的判断
if (response.status === 'OK' && response.code === 200) {
    let data = JSON.parse(responseBody)
    if (data && data.code === 1) {
        pm.environment.set('Auth-Token', data.data['Auth-Token'])
        console.log('Auth-Token设置成功!')
    } else {
        console.log('登录验证失败!')
    }
} else {
    console.log('请求返回错误!')
}

查看consol打印结果

        正常请求了登录接口,同时按照编写的逻辑,处理了环境变量的设置

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

查看环境变量设置结果

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

请求需要授权的Api测试

引用授权标识Auth-Token

        什么内容都没有变化,仅仅只是修改了接口名字/test_api,引用了Auth-Token:请求成功了,返回状态码200。

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

模拟Auth-Token失效,重新请求

        手动在环境配置中修改Auth-Token的值,模拟Token失效:

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置
        重新请求/test_api:按照代码内编写的Token拦截机制,发现Token不正确,做出了响应。

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置
        这时候什么都不需要修改,重新登录/test_login:Auth-Token就重新设置了

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置
        重新对/test_api发起请求就得到正确的返回结果了:同样是这个请求接口什么都没变,只是重新登录了而已。

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

补充:Postman请求之前处理请求(Pre-req)

修改一下/test_api 请求处理

/**
 * 接收一个时间戳的参数,并返回去
 */
public void test_api() {

    Map<String, Object> resMap = new HashMap<>();
    resMap.put("code", 1);
    resMap.put("data", "接收到的时间戳:" + getPara("_t"));
    resMap.put("message", "success");

    renderJson(resMap);
}

编写请求前脚本(Pre-req)

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

● Pre-req:

console.log('Rre-Req:请求之前预处理.')

let timestamp = new Date().getTime()

// 设置全局时间戳变量
pm.globals.set('timestamp', timestamp)

● Tests

console.log('响应后的脚本处理:', pm.response.json())

全局时间戳设置结果

Postman基本使用、测试环境(Environment)配置,# java,postman,测试工具,postman环境配置

总结

  1. 环境配置中设置的变量,只需要在请求的时候,使用双大括号{{var}}引用即可(哪里使用,哪里引用)。
  2. 同样的Api,不同的配置,只需要切换请求环境就能实现请求的无缝切换,无需重新编辑参数。

参考文章

Postman接口测试—设置postman测试环境(Environment),配置token全局变量,接口测试报错处理_postman的environment-CSDN博客文章来源地址https://www.toymoban.com/news/detail-817535.html

到了这里,关于Postman基本使用、测试环境(Environment)配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Postman工具做接口测试 —— 环境变量与请求参数格式!

    在上一篇笔记我们主要介绍了接口测试的基础知识与基本功能,本章主要介绍如何使用postman做接口测试。 环境变量和全局变量 环境管理中还可以点击“Global”添加全局变量,环境变量只有当选择了该环境时才生效,全局变量在任何环境中都生效,测试集中的变量只在当前测

    2024年02月05日
    浏览(72)
  • 灵活使用Postman环境变量和全局变量,提高接口测试效率!

     前言: 环境变量和全局变量的概念 环境变量和全局变量的使用方法 1. 定义变量 2. 使用变量 环境变量和全局变量的实例代码

    2024年02月08日
    浏览(56)
  • 接口测试——postman和Jemter(只有基础使用配置)

    postman是一个调用HTTP请求时的工具,它提供了友好的界面帮助分析,构造http请求,并分析响应数据 实际工作过程中,开发和测试基本上都有使用postman来进行接口调用调试工作 有一些其他流程的工具,也是模仿的postman的风格进行接口测试工具设计的 postman近似一个浏览器,他

    2024年02月03日
    浏览(42)
  • 快速教你如何使用postman工具进行接口测试?(配置全局token、JWT可用)

    现在很多人都在使用前后端分离进行项目开发,那在后端开发过程中使用postman测试工具可快速便捷完成接口测试。但是在测试过程中,很多人发现因为JWT的鉴权,导致半个小时就需要更新一下token,让我们的测试变得复杂。 若是将token作为全局变量,每次都能够自动获取tok

    2024年02月15日
    浏览(49)
  • [详细步骤]Java将Excel文件导入到数据库表中、并使用postman测试

    1、Maven依赖添加 2、需要使用的类 controller:ExcelController entity:ExcelEntity(设计此实体类,需要与excel文件一一对应) mapper:ExcelMapper service:ExcelServiceImpl、ExcelService util:ReadExcelUtil 3、代码 4、postman测试 file(excel)的文件路径需真实存在,下图进行设置路径、我的excel放在了

    2024年02月07日
    浏览(47)
  • 解决明明环境变量没问题,启动idea还是报错The environment variable JAVA HOME

         最近电脑坏了,公司给安排了新的工位,这个工位电脑上的idea版本是2019,由于2019使用翻译插件不能使用edge的翻译引擎,我就更换了2023,结果安装成功双击发现打不开,并报错The environment variable JAVA HOME (with the value of   %JAVA_HOME(你的环境变量路径)%)does not point to a valid jvM insta

    2024年02月08日
    浏览(106)
  • 配置Maven时报错The JAVA_HOME environment variable is not defined correctly,this environment解决方法汇总

    在检验maven是否安装成功时: C:Users28955mvn -v The JAVA_HOME environment variable is not defined correctly, this environment variable is needed to run this program. 呜呜呜,真难啊 搜了原因发现是因为高版本的JDK如JDK17免安装版没有JRE,配置好环境变量Maven识别不出JDK的位置导致的报错 1.找到maven的bin目

    2024年01月25日
    浏览(52)
  • 用Postman快速搭建接口测试环境

    Postman是用于构建和使用API的API平台。Postman简化了API生命周期的每一步,简化了协作,因此您可以更快地创建更好的API。 设置设置统计认证信息**, 该集合下的所有接口将默认使用该配置; 其中为自定义变量 {{user_token}}**;如下图 设置不同环境下的一些环境变量,方便切换开

    2024年02月16日
    浏览(40)
  • Dynamics 365 设置Postman environment For WebAPI

         在官网看到这么一篇\\\"Set up a Postman environment\\\",不用在Azure AD中注册application就可以在postman中构建WebAPI,对于开发者来说确实能帮助我们更快的上手开发,但国内用的是21V,所以本篇就来记录下验证后在21V中的可用性。       首先根据博文中的描述,我先找了个galobal的环

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包