YDoc1.0.4支持微服务、自动化测试以及钉钉通知

823 阅读3分钟

这是我参与更文挑战的第8天,活动详情查看: 更文挑战

YDoc1.0.4支持微服务、自动化测试以及通知

更新内容

  1. 修复1.0.3 不同步的bug
  2. 支持微服务,多个服务在一个YApi项目内使用
  3. 支持启动时触发自动化测试,并打印报告
  4. 支持自动化测试钉钉通知

请使用1.0.6版本 maven地址

源码已经开源到github欢迎一起贡献源码,喜欢点个Star支持下

YDoc1.0.4参数

image.png

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,结果并不会被覆盖。

image.png

2. 支持自动化测试

开启自动化测试需要配置以下参数,当程序启动时将会对YApi上配置的测试集合进行测试,测试的标准按照在YApi上配置的规则进行测试(推荐配置mock参数和断言后再使用该功能,效果更好

image.png

测试集合分组的名称一定要是英文的,因为需要写在配置文件中。中文会有乱码问题

image.png

这里开启自动化测试的参数有点多,由于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

由于我们上面配置了两个测试集合,所以会分别推送一条消息.

image.png