利用POSTMAN对SPringMVC程序进行API测试

1.获取API:

进入代码的Controller层,拼接equestMapping对应的地址组成相应的API;其中端口和根目录有时候在配置文件里面已经设定:


例如:本程序在application.propertities中配置了端口为8099;根路径为/api;


package com.redstar.sample.controller;

import com.redstar.sample.vo.AuthVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.redstar.sample.basic.Result;
import com.redstar.sample.dto.User;
import com.redstar.sample.service.UserService;
import com.redstar.sample.vo.UserServiceVo;

import lombok.extern.slf4j.Slf4j;

import java.util.UUID;

@Slf4j // 简单日志门面(Simple Logging Facade for Java),这里引入了lombok这个JAR包
@RestController // 定义controller类,返回的是数据类型,Controller返回的是web页面
@RequestMapping("user") // RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
						// 用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
public class SampleController {

	@Autowired // @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作
	UserService userService;


	/**
	 * 用户登录(mock)
	 * 
	 * @param loginAccount
	 * @return
	 */
	@RequestMapping("login")
	public Result login(@RequestBody User loginAccount) {
		System.out.println("login:" + loginAccount != null ? (loginAccount.getUserName() + "@@" + loginAccount.getPassword()):"");
		Result result =new Result();
		//StringUtils.isEmpty()判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 
		if (StringUtils.isEmpty(loginAccount.getUserName()) || StringUtils.isEmpty(loginAccount.getPassword())) {
			result.setCode("500");
			result.setMessage("账号或密码不允许为空");
			return result;
		}

		if (loginAccount.getUserName().equals("1") && loginAccount.getPassword().equals("123")) {

			loginAccount.setUserId(UUID.randomUUID().toString());
			result.setDataMap(loginAccount);
			result.setCode("200");
			result.setMessage("登录成功");
		} else {
			result.setCode("500");
			result.setMessage("账号或密码无效");

		}

		return result;
	}


那么下面这个程序根据端口、根路径和@RequestMapping的路径组成的HTTP路径为localhost:8099/api/user/login

2.获得请求方式

因为@RequestMapping没有像这样@RequestMapping(value = "addUser", method = { RequestMethod.POST })指定请求方式是POST还是GET,这里就是两者皆可。

3.获得对应请求参数

在POSTMAN中找到对应形参的格式。本例中形参loginAccount是个User对象,找到User对象定义的FIeld。

public @Data class User implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String userName;
	
	private String userId;
	
	private String text;

	private String password;

	private String phone;


}
这里User类内有5个Filed,写入POSTMAN的BODY内,点击Send根据返回结果,即可判断该API测试是否通过。

本例中有该用户,对应返回结果正确,接口测试成功。


 

发布了99 篇原创文章 · 获赞 43 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/mayanyun2013/article/details/75645276