SpringBoot | 第十五章:基于Postman的RESTful接口测试
前言
从上一章节开始,接下来的几个章节会讲解一些开发过程中配套工具的使用。俗话说的好,工欲善其事,必先利其器。对于开发人员而言,有个好用的工具,也是一件事半功倍的事,而且开发起来也很爽,效率也会提升很多。本章节主要讲解关于
Postman这款http模拟请求工具,一般上拿来测试api接口服务的。
题外话:对于Postman而言,本人也是仅仅使用了其中一小部分,还是本着够用的原则,对于其一些高级功能,比如自动化测试、auth认证、js脚本及生成各类语言代码(如cUrl、java、ajax等等),后期若有使用时,会再编写一篇博文的。突然很感慨,要学习的东西真多呀,所以还是那句话:本着够用就行!东西是学不完的!
关于Postman
Postman是一款功能强大的网页调试与发送网页HTTP请求的工具。Postman能够发送任何类型的HTTP请求(GET, HEAD, POST,PUT..),附带任何数量的参数和HTTP headers。支持不同的认证机制(basic, digest,OAuth),接收到的响应语法高亮(HTML,JSON或XML)。Postman既可以以Chrome浏览器插件的形式存在,也可以是独立的应用程序存在。本文主要讲解的是
客户端的使用。
安装Postman
按实际的操作环境,选择对应的版本下载:

本文直接选择当前最新版:v6.2.2。
下载后,按提示进行默认安装即可,这里就不贴图了。

界面按钮说明
作图不易呀,打开了从高中开始用的
Fireworks。一个程序猿还需要会作图,(┬_┬)。不美观,顺序混乱,就凑合看吧。还想怎么样!

1.History:记录历史请求记录,一般上所有的请求,都会会在此面板上出现,按日期区分,点击可快捷新增一个该请求的tab栏。

2.Collections:收藏夹。你可以按请求的类型或者项目,进行目录的创建,便于管理。可以创建子目录,同时也可批量进行请求,大家可点开看看,应该都知道意思

内部按钮:

3.便签页:可切换不同的便签页进行显示。

4.请求方式:如GET、POST、DELETE等。

5.请求地址:需要测试或者访问的api地址,支持变量,变量写法:{{param}},

6.URL参数值(querystring):设置url后面的参数值,如author=okong&name=okong

7.点击可发送请求,同时支持下载。

8.保存当前的请求至Collections中,也可另存为成其他的Collections。下次可以快捷点击。

9.鉴权参数,可以设置如OAuth、OAuth2等协议。

10.HTTP Header:自定义请求头部信息。

11.请求体(Body)设置,如POST请求时,设置请求的参数,或者二进制流、json格式参数、xml格式参数等等。

12.发起请求之前执行的脚本,例如request body里的那两个random变量,就是每次请求之前临时生成的,不熟悉,目前没有用过。

13.响应测试,返回的参数进行检验,校验结果会显示在19功能模版中。目前也没有用过,,跳过。。

14.各域名下的cookies查看、新增:

15.code:可一键生成不同语言的请求代码,如cUrl、java等。
cUrl:

java:这里使用的是okHttp工具

16、17、18、19都是请求响应response对应的参数值了,应该都比较熟悉了。如返回的值,cookies、Header、响应测试结果等。

20.请求响应的状态(status)值,如200等,还有响应时间和大小等。吐槽:入门级的服务器就是慢。。200毫秒。。

21.拷贝返回的参数到剪贴板中,就是Ctrl+c功能了,在其他地方可直接粘贴。

22.返回参数里面进行查询。

23.返回参数的不同预览状态,其实就是美化。。

24.设置不同的工作空间,就像eclipse一样,可不同的项目不同的工作空间。

25.设置不同环境下的变量值,就像后端开发有测试环境、开发环境、联调环境等一样的。

Postman测试RESTful接口示例
以一个简单的web服务,进行post、get等常用的请求示例,其他的大家可自己安装后自己实践下,自己动手丰衣足食呀~
创建一个web项目
这里创建以常见的http请求方式,如get、post、delete、put进行简单示例下。
RestfulController.java
/**
* 基于Postman的RESTfulAPI接口测试
* @author oKong
*
*/
@RestController
@Slf4j
public class RestfulController {
@GetMapping("/get")
public String get(String msg) {
log.info("get方式!");
return msg;
}
@PostMapping("/post")
public String post(@RequestBody String msg) {
log.info("post方式!");
return msg;
}
@PutMapping("/put")
public String put(@RequestBody String msg) {
log.info("put方式!");
return msg;
}
@DeleteMapping("/delete")
public String delete(String msg) {
log.info("delete方式!");
return "delete " + msg + " success!";
}
/**
* 设置返回状态为417
* @param msg
* @return
*/
@GetMapping("/status")
@ResponseStatus(HttpStatus.EXPECTATION_FAILED)
public String status(String msg) {
log.info("status方式!");
return msg;
}
}
使用Postman测试
1.get方式:

2018-07-28 23:26:39.783 INFO 18092 --- [nio-8080-exec-5] c.l.l.s.chapter14.RestfulController : get方式!
2.post方式:

2018-07-28 23:29:00.143 INFO 18092 --- [nio-8080-exec-4] c.l.l.s.chapter14.RestfulController : post方式!
3.put方式

4.delete方式

5.httpStatus状态测试(设置返回的ResponseStatus):

6.请求方式不正确时:

此时,可以把各请求保存到Collections中,可以测试下批量执行的功能run.

批量执行:

控制台:

相关资料
这几篇讲解的比较简单明了:
1.https://www.cnblogs.com/xiaoxi-3-/p/7839278.html
2.https://blog.csdn.net/ma_jiang/article/details/78574691
3.官方文档:https://www.getpostman.com/docs/v6/
总结
本章节主要是讲解了利用
Postman进行RESTful接口风格进行测试,也简单介绍了关于Postman的简单用法。在本人使用过程过程中,以上几种方式基本上已经满足开发需求了。前面也介绍过了Swagger了,在对接第三方系统服务时,Swagger基本就用不上了,这个时候Postman的作用就体现出来了。不同场景下用不同的测试工具。至于一些关于Postman的高级用法,大家需要的话就自行搜索查找下相关资料吧,其他功能我是基本上没有用上。。(┬_┬)
最后
目前互联网上很多大佬都有
SpringBoot系列教程,如有雷同,请多多包涵了。本文是作者在电脑前一字一句敲的,每一步都是实践的。若文中有所错误之处,还望提出,谢谢。
老生常谈
- 个人QQ:
499452441 - 微信公众号:
lqdevOps

个人博客:http://blog.lqdev.cn
原文地址:http://blog.lqdev.cn/2018/07/28/springboot/chapter-fifteen/
完整示例:chapter-15
SpringBoot | 第十五章:基于Postman的RESTful接口测试的更多相关文章
- SpringBoot | 第二十五章:日志管理之自定义Appender
前言 前面两章节我们介绍了一些日志框架的常见配置及使用实践.一般上,在开发过程中,像log4j2.logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了.但在一些特殊需求 ...
- 《Linux命令行与shell脚本编程大全》 第十五章 学习笔记
第十五章:控制脚本 处理信号 重温Linux信号 信号 名称 描述 1 HUP 挂起 2 INT 中断 3 QUIT 结束运行 9 KILL 无条件终止 11 SEGV 段错误 15 TERM 尽可能 ...
- Gradle 1.12用户指南翻译——第二十五章. Scala 插件
其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...
- Gradle 1.12用户指南翻译——第三十五章. Sonar 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- Gradle 1.12用户指南翻译——第六十五章. Maven 发布(新)
其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上的地址:https://gith ...
- 第十五章 LVM管理和ssm存储管理器使用 随堂笔记
第十五章 LVM管理和ssm存储管理器使用 本节所讲内容: 15.1 LVM的工作原理 15.2 创建LVM的基本步骤 15.3 实战-使用SSM工具为公司的邮件服务器创建可动态扩容的存储池 LVM的 ...
- 20190901 On Java8 第十五章 异常
第十五章 异常 要想创建健壮的系统,它的每一个构件都必须是健壮的. 异常概念 C++的异常处理机制基于 Ada,Java 中的异常处理则建立在 C++的基础之上(尽管看上去更像 Object Pasc ...
- 15第十五章UDF用户自定义函数(转载)
15第十五章UDF用户自定义函数 待补上 原文链接 本文由豆约翰博客备份专家远程一键发布
- CSS3秘笈复习:十三章&十四章&十五章&十六章&十七章
第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮 ...
随机推荐
- AD9各种布线总结
1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...
- HTML DOM setTimeout() 方法
转自:http://www.w3school.com.cn/jsref/met_win_settimeout.asp 1.setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. &l ...
- 判断页面是在pc端打开还是在移动端打开
在项目开发中会遇到在不同的设备中打开页面是不同的,比如: 我在手机中打开一个网站和pc打开一个网站,页面是不同的 具体实施如下 //判断打开网站的终端 var ua = window.navigato ...
- 实现Unity对Dictionary的序列化
若有尝试过想在unity的inspector检视面板中像List或者数组那样可以编辑Dictionary变量的童鞋应该知道,Dictionary变量不会出现在inspector中,unity并不会直接 ...
- Koa1 框架
安装创建项目: 1.一定要全局安装(koa1.2和koa2都己经支持) npm install koa-generator -g 2.koa1 生成一个test项目,切到test目录并下载依赖 koa ...
- oracle 新增字段
alter table shop_procategory add (category_ORDER_FIELD number(10) default '0' not null);comment on c ...
- p4171&bzoj1823 满汉全席
传送门(洛谷) 传送门(bzoj) 题目 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能 ...
- .net Core命令行,Json配置
创建.netCore控制台 NuGet :Microsoft.AspNetCore.All static void Main(string[] args) { var builder = new Co ...
- Go:Nsq消息队列
Nsq服务端简介 在使用Nsq服务之前,还是有必要了解一下Nsq的几个核心组件整个Nsq服务包含三个主要部分 nsqlookupd 先看看官方的原话是怎么说:nsqlookupd是守护进程负责管理拓扑 ...
- 大融合——LCT维护子树信息
题目 [题目描述] 小强要在 $N$ 个孤立的星球上建立起一套通信系统.这套通信系统就是连接 $N$ 个点的一个树.这个树的边是一条一条添加上去的.在某个时刻,一条边的负载就是它所在的当前能够联通的树 ...