【工具】postman的使用

1.准备一个springboot项目(以下所有演示都是基于这个项目)

https://blog.csdn.net/qq_37449606/article/details/139380310?spm=1001.2014.3001.5502
在这里插入图片描述

2.postman是什么?

http接口测试工具

3.下载安装包

https://www.postman.com/
在这里插入图片描述
在这里插入图片描述

4.接口测试的必要条件

请求地址
请求参数
请求方式
请求头
请求协议

5.实战POST、GET请求

5.1POST请求:@RequestBody接收参数

1.请求头
在这里插入图片描述
2.入参
在这里插入图片描述
3.代码部分(新增接口)
在springboot项目上进行增量:https://blog.csdn.net/qq_37449606/article/details/139380310
service层有变动:包含service层的接口类、service层的实现类

1.Controller层添加接口
package com.example.testdemo.demo.controller;

import com.example.testdemo.demo.entity.Result;
import com.example.testdemo.demo.entity.SysUser;
import com.example.testdemo.demo.service.SysUserServiceImp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
@RequestMapping("/sysUser")
public class SysUserController {

    @Autowired
    private SysUserServiceImp sysUserService;
    @PostMapping("/add")
    public Result add(@RequestBody SysUser sysUser) {   //@RequestBody通过json的格式接收参数
        sysUserService.save(sysUser);
        return Result.success(sysUser);

    }

}

2.service层接口类
package com.example.testdemo.demo.service.imp;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.testdemo.demo.entity.SysUser;

public interface SysUserService extends IService<SysUser> {
//继承了mybatisplus中的IService,可使用mybatisplus进行新增
}

3.service层的实现类
package com.example.testdemo.demo.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.testdemo.demo.entity.SysUser;
import com.example.testdemo.demo.mapper.SysUserMapper;
import com.example.testdemo.demo.service.imp.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SysUserServiceImp extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
    @Autowired
    private SysUserMapper sysUserMapper;
}

4.返回格式
package com.example.testdemo.demo.entity;

import lombok.Data;

@Data
public class Result {
    private static final String SUCCESS = "200";
    private static final String ERROR = "1";
    private String code;
    private String msg;
    private Object data;

    public static Result success(){
        Result r = new Result();
        r.setCode(SUCCESS);
        return r;
    }

    public static Result success(Object data){
        Result r = new Result();
        r.setCode(SUCCESS);
        r.setData(data);
        return r;
    }

    public static Result error(String s){
        Result r = new Result();
        r.setCode(ERROR);
        r.setMsg(s);
        return r;
    }
}

5.2POST请求:表单的形式接收参数

1.请求头
在这里插入图片描述
2.入参
在这里插入图片描述
3.代码部分
在5.1的基础上只需去掉@RequestBody

  @PostMapping("/add")
    public Result add( SysUser sysUser) {
        sysUserService.save(sysUser);
        return Result.success(sysUser);
    }

5.3GET请求

在这里插入图片描述

6.实战集合测试执行

1.创建一个集合文件夹
在这里插入图片描述
2.将相关接口放到此集合中
在这里插入图片描述
3.点击向右的图片(各postman版本大同小异)
在这里插入图片描述
4.点击run按钮
在这里插入图片描述
5.如图
在这里插入图片描述
6.执行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.实战设置变量

1.目的为了在多个接口间形成关联(比如注册某个用户,同时用这个用户登录)
2.{{}}来获取变量名
3.注意设置变量或者修改后需要保存,否则不生效
4.主要以所有类型的变量名称不要重复
5.环境变量的设置变量名可以重复(因为我们每次只是使用其中一套环境,也不算是重复)

7.1设置集合变量

目的:用于集合中使用,步骤如下
在这里插入图片描述
在这里插入图片描述
INITIAL VALUE :默认值,可以导出、可以分享
CURRENT VALUE :当前值,不上传到服务器,无法导出(导出后再导入,你会发现value都是空的)
Persist All:当前值覆盖到默认值上
Reset All:默认值覆盖到当前值上
在这里插入图片描述
执行集合,可查看《 6.实战集合测试执行》
在这里插入图片描述
在这里插入图片描述

7.2设置全局变量

目的:用于全局中使用,任意集合中,操作步骤如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.3设置环境变量

平时项目开发过程会涉及到测试环境、开发环境、预生产环境、生产环境等,所以设置不同的环境下不同的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.4Tests设置变量(断言)

设置一个固定的token字符串模拟一下。token是前端进行请求的令牌,是一个字符串。

原理:登录→后端生成一个token返回前端→登录成功后,再去访问其他接口,后端只需要校验这个token即可,不用再去校验用户名和密码
(1)后端会从接收到的前端请求的header中去获取token
(2)如果token校验不通过,则禁止访问某接口(可以理解为在访问接口前的一道校验、拦截)

1.基于演示的springboot项目的增量部分,整体项目目录结构请参考文章开头的贴图

1.新增一个SysUserVo类
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.util.List;
import java.util.Map;

@Data
public class SysUserVo {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String name;
    private String password;
    private Integer age;
    private String phone;
    private String sex;
    private String role;

    private String token;
    private List<Map<String,String>> list;
}
2.controller层中模拟一个登录接口
  @PostMapping("/login")
    public Result userLogin(SysUserVo sysUserVo){
        //模拟一个token
        String token = "asdg123435kjkllrryt233356";
        sysUserVo.setToken(token);
        //模拟一个list
        List<Map<String,String>> list = new ArrayList<>();
        Map<String,String> map = new HashMap<>();
        map.put("name", "该用户下的娃");
        map.put("age", "12");
        list.add(map);
        sysUserVo.setList(list);
        return Result.success(sysUserVo);

    }

2.postman调用登录接口,证明接口可以调通
在这里插入图片描述
3.开始设置断言(登录接口中设置断言,获取的token再作用到其他接口上)

//获取相应数据json对象
//定义一个变量jsonData,用来接收接口返回结果
var jsonData = pm.response.json();
//从相应的数据中提取出token,因为我的项目是包裹在data中
var token = jsonData.data.token;
//设置token
pm.environment.set("token", token);

在这里插入图片描述
运行调用登录接口后,查看结果
在这里插入图片描述
token的使用。假设:找一个之前的查询接口模拟《5.3GET请求》
在这里插入图片描述

8.实战Tests断言

9.实战参数化

1.注意事项
(1)参数化方式:支持csv、text、json文档
(2)前提必须在集合中
(3)参数中要有标题部分、数据部分(英文逗号)
(4)集合中的内容如果有修改必须保存(ctrl+s),否则不生效
(5)如何创建和运行集合请参考本文《6.实战集合测试执行》
2.以同时注册多个用户为例
(1)数据准备
在这里插入图片描述
(2)修改postman中注册接口调用(参考本文中《5.1POST请求:@RequestBody接收参数》)
在这里插入图片描述
(3)运行集合
在这里插入图片描述
(4)执行结果
在这里插入图片描述
在这里插入图片描述

10.实战随机数

(1){{$guid}}  格式:aa112-33ac-34ad-aae3-53bf19650e2d
(2){{$timestamp}} 时间戳
(3){{$randomInt}} 添加0-1000之间的随机整数

11.Monitor监视器

可以按照小时,按周,进行监控,当出现错误时,可设置邮件通知,每个月只有1000免费配额。
需要基于集合运行

12.导入导出测试脚本或代码片段

方式一
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
方式二:代码片段
在这里插入图片描述
在这里插入图片描述

13.报错

1.Required request body is missing
勾选上Content-Length、Host
在这里插入图片描述
2…HttpMediaTypeNotSupportedException: Content type ‘application/x-www-form-urlencoded;charset=UTF-8’ not supported]
原因:post请求,使用表单的方式传参,但Controller层接收参数时使用了@RequestBody(此注解接收json格式的)

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妄忧杂记

整理不易,请多多打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值