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

相关文章
|
28天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
125 7
Jmeter实现WebSocket协议的接口测试方法
|
28天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
118 3
快速上手|HTTP 接口功能自动化测试
|
1天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
5 0
|
28天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
32 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接口测试工具的功能、脚本编写、使用场景以及优缺点,强调了其在接口自动化测试中的强大能力,同时指出了其在性能分析方面的不足,并建议根据项目需求和个人偏好选择合适的接口测试工具。
61 1
|
2月前
|
Web App开发 JSON 测试技术
精通Postman接口测试:关联技术与自动化实践指南
这篇文章详细介绍了如何使用Postman进行接口测试,包括关联技术、自动化实践,以及如何通过环境变量和全局变量解决接口之间的关联性问题。
47 0
精通Postman接口测试:关联技术与自动化实践指南
|
2月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧

热门文章

最新文章