postman

  • 前言
  • 1、变量
  • 2、系统变量
  • 3、两个简单方法
  • 4、关联两个方法
  • 5、总结


前言

  在日常工作中,我们会经常使用到postman,但是大多数情况下都只是,输入路径和入参,看能否调通,或是看结果是否符合预期。

  但是,这只是postman最基本最基本的功能。

  现在我遇到了一种需求:假设一个方法的入参需要其他方法的出参,此时你会怎么做?最容易想到的就是先调用那个方法获取结果,再复制到这个入参里。

  可是如果一个参数有五个入参,分别需要填入另外五个方法的结果,此时你还要一个一个的运行,然后复制过来吗?如果参数不止5个呢?

  下面我们就来看一下怎么用postman优雅的解决这种问题

1、变量

  个人感觉postman的函数写法是和js比较像的。

  首先调出postman的控制台:

  

postman 调用java postman函数调用_环境变量


postman 调用java postman函数调用_postman 调用java_02


  然后 写一个变量,并打印吧

//声明参数  入参
data = "test"
console.log(data)

postman 调用java postman函数调用_postman 调用java_03


  调用这个方法的时候就会打印出来

postman 调用java postman函数调用_json_04

2、系统变量

  postman中也可以设置环境变量的,设置了之后就可以在别的地方调用到,具体写法如下:

pm.environment.set("param", data)

3、两个简单方法

  这里模拟了两个方法来演示我上面提到的问题。

  第一个方法,给入参拼接了一个后缀

@GetMapping("/first")
@ResponseBody
public ResponseEntity<String> firstFunction(@RequestParam String param){
    return res(param + "-init");
}

postman 调用java postman函数调用_环境变量_05


  第二个方法,给入参加了一个前缀

@GetMapping("/second")
@ResponseBody
public ResponseEntity<String> secondFunction(@RequestParam String param){
    return res("加工后的随机数:" + param);
}

postman 调用java postman函数调用_json_06

4、关联两个方法

  下面我要做的就是让第一个方法的结果,作为第二个方法的入参。一个postman请求完成。

  先看结果,前缀后缀都有的:

postman 调用java postman函数调用_postman 调用java_07


  下面简单分析一下:

postman 调用java postman函数调用_json_08


  相信你也注意到了圈红的地方,这里就是使用的上面提到的环境变量,第一个方法执行完之后,将结果保存在postman的环境变量中,然后第二个方法执行的时候从postman的环境变量中取出来就行了。

postman 调用java postman函数调用_json_09


  上面这张图是本章的重点了!

  第2行,声明变量

  第6行则是拼出了第一个方法的请求格式

  第7行,拼接url时使用了上面声明的变量(当然此处也可以不使用变量,直接写死,但是有时候变量多,且使用的地方较多的时候,使用变量可以统一管理)

  第12行对一个方法发出请求,得到请求结果

  第17行,将请求结果转成json对象

  第20行将第一个方法的请求结果写入到环境变量

  然后我们再来看请求参数,就是上面方法写入到环境变量的值:

postman 调用java postman函数调用_环境变量_10

5、总结

  很多时候我们只是用到一些工具极少的功能,但是不可否认的是,当我们学的越来越多的时候,开发真的变的越来越简洁优雅。

  postman的技巧还有很多,慢慢学!

  下面贴一下代码:

package com.java.example.demo.postman;

import com.alibaba.fastjson.JSONObject;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

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

/**
 * postman中常量及函数的使用
 *
 * 场景:
 * secondFunction这个方法需要依赖 firstFunction方法 执行的结果
 * 使用一个postman请求解决
 */
@RestController
public class Constant {

    @GetMapping("/first")
    @ResponseBody
    public ResponseEntity<String> firstFunction(@RequestParam String param){
        return res(param + "-init");
    }

    @GetMapping("/second")
    @ResponseBody
    public ResponseEntity<String> secondFunction(@RequestParam String param){
        return res("加工后的随机数:" + param);
    }

    private static ResponseEntity<String> res(Object object){
        Map<String,Object> map = new HashMap<>();
        map.put("res",object);
        return jsonResult(JSONObject.toJSONString(map));
    }

    public static ResponseEntity jsonResult(String result) {
        HttpHeaders resHeaders = new HttpHeaders();
        resHeaders.set("Content-Type", "application/json;charset=UTF-8");
        return new ResponseEntity(result, resHeaders, HttpStatus.OK);
    }
}