这是我参与更文挑战的第8天,活动详情查看: 更文挑战
YDoc1.0.4支持微服务、自动化测试以及通知
更新内容
- 修复1.0.3 不同步的bug
- 支持微服务,多个服务在一个YApi项目内使用
- 支持启动时触发自动化测试,并打印报告
- 支持自动化测试钉钉通知
请使用1.0.6版本 maven地址
YDoc1.0.4参数
1. 支持微服务
在多个微服务项目下,我们不想每一个微服务都单独占有一个YApi项目,所以只需要配置相同的YApi.token、host,并开启以下参数,无论是swagger原生模式还是YDoc模式生成的文档,都同步兼容,如果多个微服务中有ControllerAPI重复的情况,则自动合并在一个Api分类下,不会被覆盖掉。
#开启该参数后不能自动化测试
ydoc.cloud=true
我们来启动两个微服务项目,并且使其ApiTag重复,来验证下是否会冲突并被覆盖
//YDoc模式
@RestController(value = "用户相关")
//原生Swagger模式
@Api(tags = "用户相关")
public class TestController {
//原生Swagger模式
@ApiOperation("A微服务用户相关")
//YDoc模式
@PostMapping(value = "/post/A",name = "A微服务用户相关")
public User test1(@RequestBody User user){
System.out.println(user);
return user;
}
}
---
//YDoc模式
@RestController(value = "用户相关")
//原生Swagger模式
@Api(tags = "用户相关")
public class TestController {
//原生Swagger模式
@ApiOperation("B微服务用户相关")
//YDoc模式
@PostMapping(value = "/post/B",name = "B微服务用户相关")
public User test1(@RequestBody User user){
System.out.println(user);
return user;
}
}
分别启动两个项目查看YApi,结果并不会被覆盖。
2. 支持自动化测试
开启自动化测试需要配置以下参数,当程序启动时将会对YApi上配置的测试集合进行测试,测试的标准按照在YApi上配置的规则进行测试(推荐配置mock参数和断言后再使用该功能,效果更好)
测试集合分组的名称一定要是英文的,因为需要写在配置文件中。中文会有乱码问题
这里开启自动化测试的参数有点多,由于yapi的一些原因,有些api不是开放出来的,所有要配置下用来获取token的用户名密码。
#项目id在项目设置能看到,由YApi项目创建者配置
ydoc.id=11
#开启自动化测试
ydoc.auto-test=true
#开启自动化测试,可以配置多个测试的集合
ydoc.test-name=test1,test2
#有该项目权限的用户名(邮箱)
ydoc.yapi-user-email=xxxxxx@qq.com
#有该项目权限的密码
ydoc.yapi-user-password=xxxxxx
此时我们启动项目,可以在日志上看到自动化测试所测试的api信息和结果。
2021-06-22 16:44:00.177 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : YDoc自动化测试test1api如下:
2021-06-22 16:44:00.177 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : api: [A微服务用户相关] path: [/post/A]
2021-06-22 16:44:00.177 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : 一共 1 测试用例,全部验证通过消耗时间:0.011s
2021-06-22 16:44:00.623 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : YDoc自动化测试test2api如下:
2021-06-22 16:44:00.623 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : api: [B微服务用户相关] path: [/post/B]
2021-06-22 16:44:00.623 INFO 39493 --- [ task-1] com.github.ydoc.config.YapiApi : 一共 1 测试用例,全部验证通过消耗时间:0.016s
2. 测试钉钉推送
#通过钉钉群机器人获取
ydoc.access-token=xxxxxxxxx
由于我们上面配置了两个测试集合,所以会分别推送一条消息.