最近在写Spring Boot 项目,希望用curl工具来测试Controller的性能及是否正确返回值,在查看了一些网上资料后,选择用Swagger来作为测试框架。
Swagger 是一款RESTFUL接口的、基于YAML、JSON语言的文档在线自动生成、代码自动生成的工具。
Swagger集成了curl工具,因此也可以用来方便地对Controller进行测试。
在Spring Boot 项目中集成Swagger也非常简单:
第一步,当然是添加依赖包了:
<!-- Swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.github.yidasanqian</groupId>
<artifactId>json-util</artifactId>
<version>1.0.0</version>
</dependency>
我用的是Swagger2,也是目前最新的版本。
第二步,在配置文件application.properties中加入下面一句:
spring.swagger2.enabled=true //可以自由设置名称
这个在接下来的配置类中有用到。
第三步,编写配置类,在config包下编写:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Value(value = "${spring.swagger2.enabled}") //上面的属性值
private Boolean swaggerEnable;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(swaggerEnable)
.select()
.apis(RequestHandlerSelectors.basePackage("cn.welfarezhu.billweb"))
.paths(PathSelectors.any())
.build();
}
//可以自由设置具体信息
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("测试接口文档")
.description("Bill Manager System Test")
.termsOfServiceUrl("http://www.welfareZhu.cn/")
.version("1.0")
.build();
}
}
注意在basePackage()中设置自己的Controller包名,也可以是整个项目包名,Swagger会自动扫描。
好啦,现在当有一个完整的Controller及映射方法时,就可以用Swagger测试啦,下面是简单的测试:
首先是一个Model类:
@Data
public class TestUser {
@Id
private Integer id;
@NotNull
private String name;
@Range(max = 1,min = 0)
private Integer gender;
private Date birthday;
private String address;
}
Controller测试类:
@ResponseBody
@PostMapping("/userInfo")
public TestUser userInfo(@Valid TestUser user){
return user;
}
启动服务,在浏览器地址栏输入http://localhost:8888/swagger-ui.html假设端口号为8888,显示如下页面:
就成功了。
来源:CSDN
作者:铁血丹心.
链接:https://blog.csdn.net/weixin_44874115/article/details/104199278