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的功能不仅仅这些,由于其他的功能在实际使用中使用的相对较少,这里就不进行演示,有兴趣的同学可以自行学习。如果有任何问题交流讨论。

目录
相关文章
|
1月前
|
JSON JavaScript 测试技术
Postman 使用教程:从基础到高级
Postman是一款强大的API开发和测试工具,支持从基础请求发送到复杂API集成。本文详细介绍了Postman的基础使用,包括安装、界面概览、发送请求、设置请求头等,以及高级功能,如使用环境变量、创建请求集合、编写测试脚本及使用Newman进行命令行测试,帮助用户全面掌握Postman的使用技巧。
120 5
Postman 使用教程:从基础到高级
|
21天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
77 11
|
2月前
|
JavaScript 前端开发 测试技术
Postman 如何进行性能测试?
Postman 如何进行性能测试?
160 1
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
71 3
|
3月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
88 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
JSON 测试技术 API
Postman 教程:快速入门与进阶技巧
本系列教程旨在帮助你从零开始,逐步掌握 Postman 的各项功能,从基础的请求发送到高级的自动化测试和团队协作。无论你是初学者还是有一定经验的开发者,都能在这里找到你需要的知识和技巧。每一篇教程都配有详细的图文说明,确保你能够轻松上手并迅速提升技能。
|
3月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
51 0
使用postman测试接口时需要先登录怎么办
使用postman测试接口时需要先登录怎么办
2999 0
使用postman测试接口时需要先登录怎么办
|
8月前
|
API 开发工具
POSTMAN在测试调用钉钉待办事项接口时权限问题
POSTMAN在测试调用钉钉待办事项接口时权限问题
|
Web App开发 前端开发 测试技术
postman测试上传图片接口步骤教程
postman测试上传图片接口步骤教程
333 0