评论  23  访客  23
    • body
      body 9

      我现在的做法,
      1、go.mod 配置 require(要测试的业务代码 Git)
      2、go mod download
      3、提示业务代码依赖的某些目录加载失败
      4、将依赖的模块添加到 go.mod 里,重新 go mod download
      5、开始调用开发已经编译好的 *.pd.go 里的 struct 以及 NewClient

      这样做法我总感觉不对

      • moku
        moku 9

        我用 bloomrpc 和 grpcox

        • bugVanisher
          bugVanisher 9

          你只需要依赖你测试的接口的接口描述,不需要管它的依赖吧。另外建议把这些描述类文件都放到一个公共仓库统一管理

          • bugVanisher
            bugVanisher 9

            有新增接口,更新下接口描述和 PB,就可以写新接口的测试啦

            • body
              body 9

              这样做,有个问题,就是需要把开发的代码拉下来。他有依赖别的项目。这样搞下来可能把整个公司的代码都拉下来了

              • body
                body 9

                我想通过规则校验,自动去构造测试代码

                这只是初步的一个想法

                • body
                  body 9

                  对对对,目前就是这么调用的。
                  您这个是,有接口新增,就对代码进行扩展吗

                  • bugVanisher
                    bugVanisher 9

                    我理解有两种方式:
                    1、自己实现 GRPC client,这种需要自己根据 ip:port 调用 dial 连接这些方法,然后构造请求对象去调用具体的 grpc 方法,这种方式比较通用。可以参考:https://github.com/myzhan/boomer/blob/master/examples/grpc/main.go
                    2、看看自己项目其他应用是如何调用被测应用的 grpc 接口的,比如我们项目是使用 microkit 的,它的 rpc 接口通过 pb 定义,并生成.pb.go,.microkit.go 文件,里面就有 NewClient 方法,拿到 client 后直接用来发起请求就可以了。
                    client := livetech.NewClient()
                    req := &livetech.GetQualityListRequest{
                    }
                    resp, err := client.GetQualityList(context.Background(), req)

                    .pb.go,.microkit.go 文件 可以理解成是 rpc 服务的接口说明,用就是了。

                    • 残枫
                      残枫 9

                      自动生成新的测试用例这个方面,也是两个方面,一个是通用的检验规则,这个是可以自动生成的,加个注解或者装饰器啥的,但是我们往往更加关注业务,所以目前来看,开发每新增一个微服务,你都要加用例,关注与业务逻辑方面以及服务暴露的安全方面。

                      • 重来看雨
                        重来看雨 9

                        你能实现到 grpc 的客户端,就可以自动化啦。这个跟 http 几乎没什么区别。

                      匿名

                      发表评论

                      匿名网友
                      确定

                      拖动滑块以完成验证