Postman接口测试接口图文教程

简介: 现在很多公司的项目都使用前后端分离的开发模式,这样不仅仅能提高开发效率,还能方便维护。在进行前后端分离开发时,后端的开发人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性,这就需要前后端的开发人员的开发进度保持一致,但是就算是这样也提高了测试的难度,不利于及时完成功能模块的测试。所以后端开发人员,在独立开发完成某个接口后,需要自己先进行测试,这样不仅能提高开发的效率,而且还能减少送测时的bug。

1 前言


现在很多公司的项目都使用前后端分离的开发模式,这样不仅仅能提高开发效率,还能方便维护。在进行前后端分离开发时,后端的开发人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性,这就需要前后端的开发人员的开发进度保持一致,但是就算是这样也提高了测试的难度,不利于及时完成功能模块的测试。所以后端开发人员,在独立开发完成某个接口后,需要自己先进行测试,这样不仅能提高开发的效率,而且还能减少送测时的bug。


我们都知道前后端分离的开发模式就是前端页面的某个功能调用后台的对应的功能接口,然后后台再将具体的数据返回给前台即可。所以后端测试的时候只需要模拟该请求即可,这时候就需要使用接口测试工具。目前市场上有很多优秀且完善的接口测试工具,比如SoapUI,Postman等,这些都能够高效的帮助后端开发人员独立进行接口测试。我们公司使用的是Postman接口测试工具,,这也是目前使用较多,比较主流的接口测试工具。这篇文章就详细的介绍下Postman以及如何使用它。


2 实战


Postman的下载安装比较简单,直接去官网:www.postman.com/postman/下载,…


ee2487a89b08436a92cccad20831b202~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


下载完成后,直接双击Postman-win64-5.5.2-Setup.exe应用程序,即可进行安装。


安装完成后,会出现下面的页面,可以注册一个账号,也可以关闭下面的页面跳过注册账号。


fd9b278d8e0441dda0311f832783fd5c~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


进入postman主页面以后,会默认出现创建新项目的弹窗。


d856ae3bf84344efb5bd732eadcb8318~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


接下来再看看具体的主页面的功能和说明:


8f6c1addb4434e25acc268f53f5721db~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


接下来正式进行测试。在之前的一篇文章:SpringBoot开发Restful风格的接口实现CRUD功能,这里我们还以这个项目的接口为实例,来进行接口测试的演示。


首先我们创建一个collection,方便以后查找测试记录。


232bba105e614ab782b1a6a5813ef760~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


Authorization是验证是否拥有从服务器访问所需数据的权限。当发送请求时,通常必须包含参数,以确保请求具有访问和返回所需数据的权限。Postman提供了授权类型,可以轻松地在Postman本地应用程序中处理身份验证协议。


4c163e929df0441d83b96d56297fbe39~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


77fa6316dbc24f7592b85f66b729f4a3~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


以上两个在创建集合和接口的时候都有,一个是对集合有效,一个是对某个具体的接口,作用一样。


具体说明:


1、Inherit auth from parent (从父类继承身份验证)


向集合或文件夹添加授权。假设我们在集合中添加了一个文件夹。在授权选项卡下,默认的授权类型将被设置为“从父类继承auth”。“从父”设置的“继承auth”指示默认情况下,该文件夹中的每个请求都使用父类的授权类型。


2、No Auth


默认情况下,“No Auth”出现在下拉菜单列表中。当不需要授权参数发送请求时,使用“No Auth”。


3、Basic Auth


是基础的验证,所以会比较简单 会直接把用户名、密码的信息放在请求的 Header 中


4、Digest Auth


要比Basic Auth复杂的多。使用当前填写的值生成authorization header。所以在生成header之前要确保设置的正确性。如果当前的header已经存在,postman会移除之前的header。


5、OAuth 1.0


postman的OAuth helper让我们签署支持OAuth。1.0基于身份验证的请求。OAuth不用获取access token,我们需要去API提供者获取的。OAuth 1.0可以在header或者查询参数中设置value。


6、OAuth 2.0


postman支持获得OAuth 2.0 token并添加到requests中。


7、Bearer Token


Bearer Token是安全令牌。任何带有Bearer Token的用户都可以使用它来访问数据资源,而无需使用加密密钥。


139a7b64f8124135a021b36b164ce41b~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


6defbba359a54274844a826ce887e4f6~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


Pre-request Script是集合中请求发送之前需要执行的代码片段。请求参数中包含一个随机数或者请求header中包括一个时间戳,或者我们的请求参数需要加密。也是在collection和具体的接口都有,作用一样。


5c87e06981b54d05b85a7749287d0c5c~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


比如上面的Pre-request Script脚本就是获取时间戳,并设置为环境变量。


d30ede47e46249cb8c62cbd6bc5fd69b~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


fa0c21e08bdb4b37bfdb5b6760c001f4~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


tests脚本是用做测试结果断言,支持js语法。是在完成API访问并得到其response回应之后运行的脚本,一般用于获取response的内容,用于之后的其他操作。Test脚本需要在某个指定的函数pm.test(…)中执行才会被识别,且作为test脚本运行,比如:


pm.test("这里是测试描述",function(){
    //需要执行的代码
});
复制代码


第一个参数是测试描述(会在测试结果栏显示),


第二个参数是一个函数,具体执行代码都在这个函数中运行。pm对象是Postman的主要对象,所有的内置函数,数据调用等,都需要通过它来实现。


在创建collection的时候还有个valiables标签,这是用来创建变量值的:


e61478edb8074e278b9751c32f6d87de~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


变量允许我们在多个地方重复使用值,这样可以让我们的代码更高效(不用重复工作)。此外,可以更改一次变量值,就能改变其他代码中的所有相关联的值。


比如有3个使用相同域名的API端点your-domain.com。我们可以在该网站保存为一个变量,而不是重复的值,可以使用在请求构建器中使用{{domain}}/endpoint1和{{domain}}/endpoint2。那么,如果我们的域更改为another-domain.com,则只需要更改此值一次就可以了。


介绍完以上的概念,我们正式进行测试。由于这里使用的是以前的代码,所以如果有不清楚的可以阅读:SpringBoot开发Restful风格的接口实现CRUD功能,并且项目源码已经同步至github,github地址在顶部。


postman支持很多的http请求,具体的如下图所示。 请求类型可以模拟Form表单文本提交,Form表单文件提交,raw原始数据提交,二进制文件提交。对于原始数据类型raw还支持不同文件格式,包括JSON,TXT,HTML等多种文件格式。这里我们具体演示如何测试post、get、delete、put请求,其他的请求也类似。


9d4984d9ac9b4fd3a00660e982b65fa9~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


813a67eeb1be4249bdf1678933a4b30d~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


首先来验证get请求


c5ce47faace04cfb9a1fbb7e6a02498c~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


测试根据姓名查询数据:


44093b1666e24c7599c3ab6c2ae86cba~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


接下来来验证delete请求


63e1bfc2ce534534b9b91e087ec476e3~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


数据库中id为3的数据已经被删除了:


54169ed07389474b814efdcd1dbfdd99~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


测试put请求:


c4b583c3b6934fc69f38201b12d761f8~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


数据库中id为2的数据已被更新:


bb3dde753e954b0eba28f7508ff66418~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


测试post请求


ace908dd89564264ba651440e2dadbd8~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


数据库中新增了id为3的数据:


a81d86cd054a4e9bb807e4a2aa73973b~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


3 Mock Server


Mock Server就是一个服务器,即针对某个特定的接口,返回我们自定义的返回值的工具。通常在需要调用第三方服务的开发或在前后端分离的开发中,前后端开发人员可以约定接口的名称、请求参数、返回结果等等,在后端人员未完成接口开发工作的情况下,前端利用Mocke Server模拟出对应接口,拿到返回数据来调试,无需等后端开发人员完成工作。即我们可以理解前面的http请求的调试时模拟前端访问后端的代码,测试后端代码逻辑是否正确(前端没有开发好,后端开发人员自测),而Mocke Server则是模拟假设后端返回了前端需要的数据,测试前端的功能(后端没有开发好,前端自测)。


假设我们需要前后端开发某个功能模块但是后端接口没有开发好,这时候我们可以搭建一个Mocke Server来自测前端的逻辑是否正确。假设请求的接口是:


/localhost:8080/do/user/usrall
复制代码


‍返回的数据样例:


{
    "code": 200,
    "msg": "请求成功",
    "data": [{
            "name": "张三",
            "age": 24,
            "email":"123@qq.com",
        },
        {
            "name": "李四",
            "age": 26,
            "email":"258@qq.com",
        }
    ]
}
复制代码


点击New,然后选择Mocke Server,然后填写请求的地址,以及response body。接着写一个自定义的Mocke Server的名字,点击create创建Mocke Server,即可获得一个URL,


91e396cbbd6540e48e1cc8c98c298c6f~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


13345a6f799548aeb7ed335c4425649e~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


配置完成之后,postman会生成一个mock server的地址,我这里生成的URL是:


https://3dd39ca6-40bd-41ae-a045-ed80d1e5gac01.mock.pstmn.io
复制代码


76fd8d7ce56d446998e8ca4fdc252843~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


接着点击run按钮启动Mock Server。在浏览器中输入刚刚生成的URL+自己的请求接口,发送请求,查看返回的数据验证是否成功即可。


https://3dd39ca6-40bd-41ae-a045-ed80d1e5gac01.mock.pstmn.io/localhost:8080/do/user/usrall
复制代码


4 结尾


以上就是如何使用postman的相关介绍以及如何使用postman进行接口测试。这里只是对其进行一个入门级的介绍以及对常用功能进行演示。当然postman的功能不仅仅这些,由于其他的功能在实际使用中使用的相对较少,这里就不进行演示,有兴趣的同学可以自行学习。如果有任何问题交流讨论。

目录
相关文章
|
8天前
|
JSON Java 数据格式
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
本文介绍了使用Postman调试接口时遇到的“Content type ‘multipart/form-data;charset=UTF-8’ not supported”错误,原因是Spring Boot接口默认只接受通过`@RequestBody`注解的请求体,而不支持`multipart/form-data`格式的表单提交。解决方案是在Postman中将请求体格式改为`raw`并选择`JSON`格式提交数据。
使用postMan调试接口出现 Content type ‘multipart/form-data;charset=UTF-8‘ not supported“
|
23天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
106 7
Jmeter实现WebSocket协议的接口测试方法
|
23天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
101 3
快速上手|HTTP 接口功能自动化测试
|
23天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
31 5
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
47 5
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
2月前
|
SQL Java 测试技术
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
SpringBoot单元测试快速写法问题之PorkService 接口中的 getPork 方法的作用如何解决
|
2月前
|
XML Web App开发 数据挖掘
Postman接口测试工具全解析:功能、脚本编写及优缺点探讨
文章详细分析了Postman接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
55 1
|
2月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
41 0
精通Postman接口测试:关联技术与自动化实践指南
下一篇
无影云桌面