Swagger基本使用与RestTemplate发送http接口测试

简介: Swagger基本使用与RestTemplate发送http接口测试

Swagger


  • 导入依赖
      <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--swagger ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
  • 配置文件SwaggerConfig.java
/**
 * @Author Tiam
 * @Date 2021/12/10 13:48
 * @Description: Swagger配置类
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                // 指定controller包
                .apis(RequestHandlerSelectors.basePackage("com.example"))
                // 所有controller
                //.paths(PathSelectors.any())  会带有基础错误控制类
                .build();
    }

    private ApiInfo webApiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger2-测试API文档")
                //文档作用描述
                .description("本文档对平时的一些接口进行测试")
                .version("1.0")
                //Swagger地址
                .termsOfServiceUrl("http://localhost:8080/swagger-ui.html")
                //作者名,链接地址,联系方式
                .contact(new Contact("Tiam", "http://www.yujing.fit/", "3036293856@qq.com"))
                .build();
    }
}


.paths(PathSelectors.any()) 效果


POJO类

 @ApiModelProperty(value ="ID")
    private Integer id;
    @ApiModelProperty(value ="年龄")
    private Integer age;
    @ApiModelProperty(value ="姓名")
    private String name;
    @ApiModelProperty(value ="创建日期")
    private Date createDate;


控制类

/**
 * @Author Tiam
 * @Date 2021/12/9 13:55
 * @Description:
 */
@Api(tags = "User控制类")
@RestController
@Slf4j
public class UserController {
    @Autowired
    private UserService userService;

    @ApiOperation(value = "根据姓名查询", notes = "备注:更详细的说明")
    @ApiImplicitParam(name = "name", value = "姓名", paramType = "path")
    @GetMapping("/findUserByName/name/{name}")
    public List<User> findUserByName(@PathVariable("name") String name) {
        log.info("您输入的姓名是:",name);
        return userService.select(name);
    }
}


RestTemplate类使用


配置类RestemplateConfig

/**
 * @Author Tiam
 * @Date 2021/12/6 10:52
 * @Description: RestTemplate配置类
 */
@Configuration
public class RestemplateConfig {
    /**
     * 调用其他服务的接口
     * @return
     */
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}


控制类

/**
 * @Author Tiam
 * @Date 2021/12/10 11:10
 * @Description: http接口请求调用测试
 */
@Api(tags = "http请求控制类")
@RestController
@Slf4j
public class HttpController {
    public static final String URL = "http://apis.juhe.cn/fapig/sudoku/generate?key=34f37a2e3ebb4b7133b54264a44c6596&difficulty=";
    @Resource
    private RestTemplate restTemplate;

    /**
     * 获取数独游戏模型
     *
     * @param difficulty 难度级别, easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy
     * @return
     */
    @ApiOperation(value = "数独", notes = "数独游戏模型获取")
    @ApiImplicitParam(name = "difficulty"
            , value = "难度级别, easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy"
            , paramType = "query"  //参数位置说明
            , defaultValue = "easy" //默认值
            ,required = false
            //,example = "easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy"
    )
    @GetMapping(value = {"/getSudoku/dif"})
    public Object getSudoku(@RequestParam(required = false)String difficulty) {
        log.info("转发链接:{}", URL + difficulty);
        //get请求 , url地址 , 返回数据类型
        return restTemplate.getForObject(URL + difficulty, Object.class);
    }
}


测试演示


参考文章


https://blog.csdn.net/jinjiniao1/article/details/100849237

https://blog.csdn.net/itguangit/article/details/78825505

相关文章
|
7天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
8天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
37 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
59 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
1月前
|
JSON Java fastjson
Java Http 接口对接太繁琐?试试 UniHttp 框架吧
UniHttp 是一个声明式的 HTTP 接口对接框架,旨在简化第三方 HTTP 接口的调用过程。通过注解配置,开发者可以像调用本地方法一样发起 HTTP 请求,无需关注请求的构建和响应处理细节。框架支持多种请求方式和参数类型,提供灵活的生命周期钩子以满足复杂的对接需求,适用于企业级项目的快速开发和维护。GitHub 地址:[UniAPI](https://github.com/burukeYou/UniAPI)。
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
239 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
248 3
快速上手|HTTP 接口功能自动化测试
|
1月前
|
Java 数据处理 开发者
Java Http 接口对接太繁琐?试试 UniHttp 框架~
【10月更文挑战第10天】在企业级项目开发中,HTTP接口对接是一项常见且重要的任务。传统的编程式HTTP客户端(如HttpClient、Okhttp)虽然功能强大,但往往需要编写大量冗长且复杂的代码,这对于项目的可维护性和可读性都是一个挑战。幸运的是,UniHttp框架的出现为这一问题提供了优雅的解决方案。
66 0
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
40 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
48 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~