postman 怎么调试pos_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

官方网站:https://www.getpostman.com/apps

按实际的操作环境,选择对应的版本下载:

bd7b0d99d6eb70c76f338395361584c7.png

本文直接选择当前最新版:v6.2.2。

下载后,按提示进行默认安装即可,这里就不贴图了。

21b29ed8b26ab18d6f1537d67de1b73b.png

界面按钮说明

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

90f1d3785ef877e10e0ff2e37fd1d86c.png

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

95cdb20df75475749214cb169eea9124.png

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

dd75a6c7bd7064ac4575d88f41c17aab.png

内部按钮:

5f560cd44ad0113778242dbbc20caaef.png

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

2d4b5eed498f07c3cc5788aef189036a.png

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

1d40895b78088217ca62d92189043177.png

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

00f11eeea4a1a3b5a353209824b7b3b6.png

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

f981e032f23f72f6b3517b5c43507c61.png

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

7aee5a0905f06c4bfff5f009111f4ef5.png

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

3c1e32fbaa5cc84ddabc7d4b9daa5a76.png

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

465f001184da16284fc5dd3b239b9e00.png

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

09a1f6327ec0d81bf37cfd3aeaaf27fd.png

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

87a139db525a44aeb36e757486636bbc.png

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

a028ef2891f6523540e9d2c25e638382.png

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

5fcc7d3f097b7bec85c1424564c616df.png

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

6fb6b32b10153633b0a9e33ace9731f1.png

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

cUrl:

05f4ebab4741959f0d9a88350e974857.png

java:这里使用的是okHttp工具

28c109d10f0773d325e1061ee00b1cbb.png

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

00efd40eb8382950efb081703c4588a9.png

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

921d8c0cf2f7428db53db4088891f408.png

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

f0bde61ac06df2fcce403c529795825a.png

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

a50340af9ad42183919cc66f0d0f2e95.png

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

4fd63b888fd7c4fd03d3afbd9a5215f2.png

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

06abe585d1f05aacf1e1f323bc14b1d9.png

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

6c108050c8fabc6181f1e708ce0b5b67.png

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方式:

2d8cb4bc466c385fb4625d7dcc618b51.png

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

2、post方式:

76b37632e2a887f1e98542ac71c19309.png

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

3、put方式

6416af3c9e5468d67d70e7a748a1b2c4.png

4、delete方式

dcc2a652d3748034768ed709f0de394e.png

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

a67ecc9ec5414c3893f4a4399134f5b5.png

6、请求方式不正确时:

3bb9a3d3d6e38995e6f2bcd09fa3d77a.png

批量执行:

628b4a34858880b89110247e6f22773f.png

控制台:

b6aaacdc8ca2072c4834c8ed605c63ef.png

相关资料

这几篇讲解的比较简单明了:

  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系列教程,如有雷同,请多多包涵了。若文中有所错误之处,还望提出,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这几个C语言关键字你真的得懂(深度解剖)

点击蓝字关注我们1、什么是语句,表达式? 在C语言中 ,凡是以分号隔开的就是一条语句:printf("hello world\n");a 1 2; ; (空语句)什么是表达式呢?C语言中,用各种操作符把变量连起来,…

aws sqs_JMS和AWS SQS的更多高级内容

aws sqs如您所知, AWS中的SQS SQS代表“简单队列服务”。 最近,在使用它的同时,我发现了将其称为“简单”的原因之一。 在之前的两篇文章( 此处和此处 )中,我展示了结合Spring Framework将SQS用作JMS队列提…

python 直方图每个bin中的值_【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用...

标签: 最近获得了一些四级成绩数据,大概500多个,于是突发奇想是否能够看看这些成绩数据是否满足所谓的正态分布呢?说干就干,于是有了这篇文章。 文章顺带介绍了xlrd模块的一些用法和matplotlib画自定义数据的条形图和随…

adf开发_了解ADF生命周期中的ADF绑定

adf开发在这篇文章中,我将重点介绍ADF绑定层,并探讨当最初从浏览器请求带有一些数据的ADF页面时它如何工作。 Oracle ADF提供了自己的JSF生命周期扩展版。 实际上,ADF扩展了标准的JSF生命周期实现类,并提供了ADF阶段侦听器&#…

C语言实现计算器

点击蓝字关注我们1、实现逻辑首先创建菜单(menu),把我们需要实现的功能打印到运行栏屏幕上。实现加法计算实现减法计算实现除法计算实现乘法计算退出计算器当然以上都是属于最基本的计算,你当然还可以实现一些其它计算。例如:位运算(按位与、…

python怎么创建txt文件啊_python根据txt文本批量创建文件夹

前言 前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrlshiftn还可以接受吧,可是一次就要创建几百个文件夹,这就有点方方了。所以我写了一些代码解决实际的问题…

十道题带你手撕二叉树

点击蓝字关注我们1、单值二叉树题目:思路一:(遍历的方法)将根节点的值与二叉树中的每一个节点存储的val值进行比较,如果不同就返回false,如果全部相同,就返回true。代码:bool _isUni…

C语言实现面向对象编程 : 封装、继承、多态

点击蓝字关注我们不知道有多少人去了解过语言的发展史,早期C语言的语法功能其实比较简单。随着应用需求和场景的变化,C语言的语法功能在不断升级变化。虽然我们的教材有这么一个结论:C语言是面向过程的语言,C是面向对象的编程语言…

图解python pdf_Python合并同一个文件夹下所有PDF文件的方法

一、需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这些PDF文档放在一个文件夹下,希望合并成一个PDF文件。于是写了一个python程序,很好的解决了这个问题。 二、数据形式三、合并效果四、py…

用C语言实现状态机设计模式

点击蓝字关注我们状态机模式是一种行为模式,在 《设计模式》 这本书中对其有详细的描述,通过多态实现不同状态的调转行为的确是一种很好的方法,只可惜在嵌入式环境下,有时只能写纯C代码,并且还需要考虑代码的重入和多任…

这几行代码,惊为天人!

点击蓝字关注我们事情是这么一回事:国外有个大佬在StackExchange上发起了一个叫做 Tweetable Mathematical Art 的比赛。参赛者需要用C编写代表三原色的RD、GR、BL三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和 j 两个整型参数&#x…

快速搞定C/C++ 的条件编译

点击蓝字关注我们1、条件编译的时机我们都知道vscode其实是一个编辑器,你要在上面跑C或者C你需要配置编译器,拿编译器是怎样吧一个文本文件变成一个可执行文件的呢?那必然是经历以下这四步预处理:宏替换,头文件的展开&…

python连接不上数据库_pycharm连接mysql数据库连接不上

代码其实很简单,只有一小段,是在pycharm上运行的,所用的python版本为2.7,mysql版本为5.7.21 # -*- coding: UTF-8 -*- import re import MySQLdb if __name__ __main__: #打开数据库 conn MySQLdb.connect(hostlocalhost,port33…

assertj_AssertJ的SoftAssertions –我们需要它们吗?

assertj编写好的单元测试的规则之一是,它应该由于一种原因而失败,因此,单元测试应该测试一种逻辑概念。 有时很难在每个测试中拥有一个断言。 为了遵循规则,我们可能在单个测试中每个对象具有多个断言。 但是,在一个测…

用C/C++语言代码实现一个虚拟机

点击蓝字关注我们本文将教你编写一个自己的虚拟机(VM),这个虚拟机能够运行汇编语言编写的程序, 例如我朋友编写的 2048 或者我自己的 Roguelike。如果你会编程,但希望 更深入地了解计算机的内部原理以及编程语言是如何…

C++—vector的使用

点击蓝字关注我们一、vector的介绍说的简单点:vector是可以动态增长的数组容器vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。…

python词频统计完整步骤_Python中文文本分词、词频统计、词云绘制

本文主要从中文文本分词、词频统计、词云绘制方面介绍Python中文文本分词的使用。会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections。 1 准备工作 导入相关的包,读取相关数据。 #导入包 impo…

现代 C++ 测试工具链

点击蓝字关注我们gtest的问题gtest需要安装有时候带来很多不方便,比如需要经常切换gcc和clang的时候就比较麻烦,安装的gtest可能在另一个编译器下编译不过, 编写跨平台程序的时候需要多次安装gtest,非常不便。另外一个问题是网络原因&#xf…

数据结构压缩_将数据压缩到数据结构中

数据结构压缩这个故事是关于我们最近在Plumbr进行的容量优化任务。 一切始于将无害的要求添加到现有组合中。 您可能知道,Plumbr监视解决方案作为连接到服务器的Java代理分发。 只需少量添加即可跟踪一段时间内所有已连接的代理,以便可以实时回答以下问…

swing 状态视图分离_Java Swing模型视图适配器介体

swing 状态视图分离通常,我基于Spring Framework构建Java应用程序。 但是,最近有人要求我使用与语言无关的MVC框架PureMVC为客户端实现Java桌面应用程序,因此以下是我在Java Swing中为PureMVC进行员工管理展示的演示实现。 如果您想继续学习&…