接口测试工具Postman

news2025/1/11 6:38:27

Postman

Postman介绍

         开发API后,用于API测试的工具。在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下。在开发APP接口的过程中,一般接口写完之后,后端开发都会模拟调用一下请求。在用Postman之前,对于一般的get请求我基本都会用浏览器来简单模拟。而对于post请求,我一般习惯写代码来调用。可以用Java来模拟,当然用Python会更简洁。但是还有有很多弊端,不便于管理、维护困难等。Postman具有每个API开发人员的功能:请求构建,测试和预请求脚本,变量,环境和请求描述,旨在无缝地一起工作。

         这样的话就非常需要有一个比较给力的Http请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-RESTClient,Chrome浏览器插件-Postman等等。这里主要介绍一下,一款模拟请求的利器Postman。

         Postman是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。在Postman中,请求可以保存,也就类似于文件。而Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹。

Postman安装

官网地址:Download Postman | Get Started for Free  

安装非常简单,下载直接安装即可!

Postman功能简介

新建一个集合即可进行测试。

用户可选择请求方式,并输入对应的url,如有参数也可在postman的参数列中进行输入,点击发送按钮,即可进行测试。 

测试的结果最终也会在响应框内进行显示(此处因为笔者未开启后台服务器,故显示请求无法发送)

同时,postman也可以对发送请求体进行测试,在url输入框下方进行相关的参数选择即可(此处以上传文件为例)

postman是一款十分好用的测试工具,在后端开发过程中,经常使用到。主要用于接口的测试,以及数据能否正常发送等等。

Swagger接口文档 

Swagger介绍

        Swagger是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTfu风格的web服务。目标是使客户端和文件系统作为服务器一同样的速度来更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,swagger是一款可以根据restful风格生成的接口开发文档,并且支持做测试的一款中间软件。

Swagger依赖

<!--swagger接口文档依赖-->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-boot-starter</artifactId>
  <!--swagger依赖版本:注意SpringBoot2.6.X要用3.0的Swagger,SpringBoot2.5.x用2.0的Swagger-->
  <version>3.0.0</version>
</dependency>

Swagger配置 

引入swagger依赖后要在yml中进行配置

spring:
  # ===== 自定义swagger配置 ===== #
  mvc:
    pathmatch:
      # 使用swagger3.0的时候配置
      matching-strategy: ant_path_matcher

项目配置类:

package cn.ronghuanet.config;

import io.swagger.annotations.Api;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import springfox.documentation.builders.*;
import springfox.documentation.schema.ScalarType;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;


/**
 * @Description: Swagger接口文档配置
 * @Author: Heron
 * @Date: 2024/01/20 22:39
 **/
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    /*
        swagger的API扫描提供了四种方式,分别如下:
        1、RequestHandlerSelectors.any() 匹配任何controller的接口
        2、RequestHandlerSelectors.withClassAnnotation() 扫描含有类注解的
        3、RequestHandlerSelectors.withMethodAnnotation() 扫描含有方法注解的
        3、RequestHandlerSelectors.basePackage() 扫描指定包路径
     */

    /**
     * @Description: swagger核心配置
     * @Author: Neuronet
     * @Date: 2023/10/1 20:18
     * @Return:
     **/
    @Bean
    public Docket getDocket(){
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder();
        apiInfoBuilder.title("文档标题")
                .description("文档描述内容")
                .version("v1.0.0")
                .contact(new Contact("Neuronet","在线地址","邮箱"));
        ApiInfo apiInfo = apiInfoBuilder.build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                .paths(PathSelectors.any())
                .build()
                .globalRequestParameters(getGlobalRequestParameters())
                .globalResponses(HttpMethod.GET, getGlobalResponseMessage())
                .globalResponses(HttpMethod.POST, getGlobalResponseMessage());
        return docket;
    }

    /**
     * @Description: 生成全局通用请求参数
     * @Author: Neuronet
     * @Date: 2023/10/1 20:22
     * @Return:
     **/
    private List<RequestParameter> getGlobalRequestParameters() {
        List<RequestParameter> parameters = new ArrayList<>();
        parameters.add(new RequestParameterBuilder()
                .name("Authorization")
                .description("登录令牌")
                .in(ParameterType.HEADER)
                .query(q -> q.model(m -> m.scalarModel(ScalarType.STRING)))
                .required(false)
                .build());
        return parameters;
    }


    /**
     * @Description: 生成通用的接口文档响应信息
     * @Author: Neuronet
     * @Date: 2023/10/1 20:25
     * @Return:
     **/
    private List<Response> getGlobalResponseMessage() {
        List<Response> responseList = new ArrayList<>();
        responseList.add(new ResponseBuilder().code("4xx").description("请求错误,根据code和msg检查").build());
        return responseList;
    }
}

Swagger测试

浏览器访问:http://localhost:8080/swagger-ui/index.html

使用swagger测试controller接口

Swagger注解

  • @Api:用在controller类,描述API接口

  • @ApiOperation:描述接口方法

  • @ApiModel:描述对象

  • @ApiModelProperty:描述对象属性

  • @ApiImplicitParams:描述接口参数

  • @ApiResponses:描述接口响应

  • @ApiIgnore:忽略接口方法

写在最后:本篇文章介绍了postman测试工具与在线接口文档工具swagger,这两个工具在实际开发过程中,均有着较大的应用,希望能够给大家带来帮助。

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

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

相关文章

SPL-404:如何彻底改变Solana上的NFT与DeFi

在不断发展的数字资产领域中&#xff0c;非同质化Token&#xff08;NFT&#xff09;已成为一股革命性力量&#xff0c;彻底改变了我们对数字所有权的看法和互动方式。从艺术和收藏品到游戏和虚拟房地产&#xff0c;NFT吸引了创作者、投资者和爱好者的想象力。 本指南将带您进入…

【C++】解决 C++ 语言报错:Dangling Pointer

文章目录 引言 悬挂指针&#xff08;Dangling Pointer&#xff09;是 C 编程中常见且危险的错误之一。当程序试图访问指向已释放内存的指针时&#xff0c;就会发生悬挂指针错误。这种错误不仅会导致程序崩溃&#xff0c;还可能引发不可预测的行为和安全漏洞。本文将深入探讨悬…

既美观又方便的后台框架谁需要?进来就对了。

一套既美观又方便的后台框架可以大大幅节约开发时间和成本。 我们来一起看看几个明朗大气的管理控制台页面。 本文档会持续更新 模板编号&#xff1a;翠花_001模板编号&#xff1a;翠花_002模板编号&#xff1a;翠花_003

第3章.中央服务器的物联网模式--AI/ML集成

第3章.中央服务器的物联网模式 本章列出了由于存储和/或计算需求而部署在中央服务器上以及部署在边缘&#xff08;本地&#xff09;或云上的体系结构模式。 这些模式基于现场设备生成的数据提供见解&#xff0c;使用附加数据&#xff08;来自附加系统&#xff0c;如企业系统&am…

嵌入式Linux系统编程 — 6.4 信号集

目录​​​​​​​ 1 信号集概念 2 sigemptyset、sigfillset初始化信号集 3 sigaddset、sigdelset向信号集中添加/删除信号 4 sigismember函数测试信号是否在信号集中 1 信号集概念 在Linux系统中&#xff0c;信号集&#xff08;signal set&#xff09;用于表示一组信号…

优思学院|听说你想了解箱型图?教程在这里!

箱形图是什么&#xff1f; 箱形图&#xff08;也称为箱线图&#xff09;使用箱体和线条来表示一个或多个组的数值数据分布。箱体的边界表示数据中间50%的范围&#xff0c;中央线标示中位数值。线从每个箱体延伸出来&#xff0c;捕捉其余数据的范围&#xff0c;在线条之外的点表…

cadence symbol修改之一

cdaence virtuoso 复制cell&#xff0c;或者拷贝symbol之后&#xff0c;再次调用的时候&#xff0c;symbol还是跟随原来的cell名字 解决办法 打开对应的symbol 修改partName为 cellName

打造您的第一个私有智能助手

当前的大语言模型通常是基于公开的知识进行训练的&#xff0c;而我们的组织和个人用户希望能够获得有关自身私有知识的回答。为了满足这一需求&#xff0c;业界通常采用检索增强生成&#xff08;RAG&#xff09;或微调模型的方法。然而&#xff0c;这些技术对非专业人员来说门槛…

混元大模型加持,微信输入法开启AI问答新体验

在人工智能技术飞速发展的今天&#xff0c;微信作为全球最大的社交平台之一&#xff0c;一直在不断地探索和创新&#xff0c;以提供更智能、更便捷的用户体验。 最近&#xff0c;微信官方宣布了一个令人兴奋的消息&#xff1a;微信输入法正式上线了“一键AI问答”功能&#xf…

mac外接显示屏,切换程序坞和启动台在哪个屏幕显示,最实用教程

程序坞和启动项是同步的 首先&#xff0c;程序坞和展开启动项是同步出现在同一个屏幕的&#xff0c;所以只需要把程序坞“呼唤”到指定的显示器就行。 无需设置&#xff0c;动对了鼠标就行 无所谓哪个是主屏&#xff0c;设置中都没有切换程序坞位置的选项&#xff0c; 想要…

不知几DAY的Symfony---RCE复现

感谢红队大佬老流氓的供稿&#xff0c;此篇文章是针对Symfony框架的一个RCE漏洞复现 ​框架简介 Symfony是一个开源的PHP Web框架&#xff0c;它现在是许多知名 CMS 的核心组件&#xff0c;例如Drupal、Joomla!、eZPlatform&#xff08;以前称为 eZPublish&#xff09;或Bolt。…

植物大战僵尸融合版1.0下载(全部植物合体)

如果你是《植物大战僵尸》系列的忠实粉丝&#xff0c;那么有一个好消息&#xff1a;一款全新的改版游戏——《植物大战僵尸融合版》已经上线。这不仅仅是一次简单的更新&#xff0c;而是一次彻底的玩法革新。B站UP主蓝飘飘fly精心打造的这个版本&#xff0c;为玩家带来了前所未…

Java-数据结构

数据结构概述 常见的数据结构 栈 队列 数组 链表 二叉树 二叉查找树 平衡二叉树 红黑树 示例&#xff1a;

YOLO-letter box

最细致讲解yolov8模型推理完整代码--&#xff08;前处理&#xff0c;后处理&#xff09; - 博客-中国极客 (chinageek.org) 直接用resize&#xff0c;图片会变形&#xff0c;宽高比会不对 letterbox函数就是把图片弄到想要的大小&#xff0c;保持宽高比&#xff0c;然后少掉的部…

Tomcat服务部署安装

一、Tomcat基础 1.Tomcat简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器&#xff0c;Tomcat虽然和Apache或者Nginx这些Web服务器一样&#xff0c;具有处理HTML页面的功能&#xff0c;然而由于其处理静态HTML的能力远不及Apache或者Nginx&#xff0c;所以Tomcat通常…

A*——AcWing 179. 八数码

A* 定义 A* 算法是一种在图形或地图中寻找最短路径的启发式搜索算法。它通过综合考虑起始节点到当前节点的实际代价和当前节点到目标节点的预估代价&#xff0c;来决定下一步的搜索方向。 运用情况 路径规划&#xff1a;如在地图导航中为车辆、行人规划最优路线。游戏开发&…

【附精彩文章合辑】佛光普照,智慧引领——记首个中文社区版Gemma-2的诞生,共筑和谐科技净土

阿弥陀佛&#xff0c;贫僧唐僧&#xff0c;自西天取经归来&#xff0c;虽已超脱尘世&#xff0c;然心系众生&#xff0c;尤是见科技日新月异&#xff0c;信息洪流浩渺无垠&#xff0c;心中不免生出几分感慨与期许。近日&#xff0c;闻讯首个中文社区版的Gemma-2即将面世&#x…

【Pyhton学习】常用标识符与关键字

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 1. 标识符与关键字2. 常用格式化输出符号3. 算数运算符4. 赋值运算符5. 比较运算符总结 1. 标识符与关键字 在Python…

桌面记笔记的软件:能加密的笔记app

在日常生活和工作中&#xff0c;很多人都有记笔记的习惯。无论是记录会议要点、学习心得&#xff0c;还是生活中的点滴灵感&#xff0c;笔记都是我们不可或缺的好帮手。然而&#xff0c;传统的纸笔记录方式逐渐不能满足现代人的需求&#xff0c;因为纸质笔记不易保存、查找困难…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-39实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

39实战Kaggle比赛&#xff1a;狗的品种识别&#xff08;ImageNet Dogs&#xff09; 比赛链接&#xff1a;Dog Breed Identification | Kaggle 1.导入包 import torch from torch import nn import collections import math import os import shutil import torchvision from…