关于 golang 里,grpc 接口测试。大佬们是如何进行测试的2022-09-14 10:28:42random random订阅者关注10318文章0粉丝 测试交流23322字数 15阅读0分3秒阅读模式grpc 接口自动化测试应该怎么去实现 复制文章 点赞 登录收藏
未知地区 20F
我现在的做法,
1、go.mod 配置 require(要测试的业务代码 Git)
2、go mod download
3、提示业务代码依赖的某些目录加载失败
4、将依赖的模块添加到 go.mod 里,重新 go mod download
5、开始调用开发已经编译好的 *.pd.go 里的 struct 以及 NewClient
这样做法我总感觉不对
未知地区 19F
我用 bloomrpc 和 grpcox
未知地区 18F
你只需要依赖你测试的接口的接口描述,不需要管它的依赖吧。另外建议把这些描述类文件都放到一个公共仓库统一管理
未知地区 17F
有新增接口,更新下接口描述和 PB,就可以写新接口的测试啦
未知地区 16F
这样做,有个问题,就是需要把开发的代码拉下来。他有依赖别的项目。这样搞下来可能把整个公司的代码都拉下来了
未知地区 15F
我想通过规则校验,自动去构造测试代码
这只是初步的一个想法
未知地区 14F
对对对,目前就是这么调用的。
您这个是,有接口新增,就对代码进行扩展吗
未知地区 13F
我理解有两种方式:
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 服务的接口说明,用就是了。
未知地区 12F
自动生成新的测试用例这个方面,也是两个方面,一个是通用的检验规则,这个是可以自动生成的,加个注解或者装饰器啥的,但是我们往往更加关注业务,所以目前来看,开发每新增一个微服务,你都要加用例,关注与业务逻辑方面以及服务暴露的安全方面。
未知地区 11F
你能实现到 grpc 的客户端,就可以自动化啦。这个跟 http 几乎没什么区别。