什么是Grpc接口?
gRPC是一个开源的远程过程调用框架,用于服务之间的高性能通信。服务之间的通信可以使用各种语言,通过可插拔的负载均衡、追踪、健康检查和身份验证,这让它被认为是一种非常高效的方法。在默认情况下,gRPC使用协议缓冲(Protocol Buffer)来序列化结构化数据。通常,在微服务架构中,gRPC被认为是REST更好的替代方案。gRPC中的“g”取名于最初开发该技术的Google。
此外,gRPC构建在HTTP/2之上,它支持双向通信以及传统的请求/响应。gRPC允许服务器和客户端之间的松散耦合。在实践中,客户端发起一个与gRPC服务器的长连接,并为每个RPC调用打开一个新的HTTP/2流。
通俗易懂的说就是由Google开发的一个针对在服务与服务之间的接口,一般来说正常的http/https接口的底层通讯是针对grpc接口进行封装再使用的。
如何针对Grpc接口进行测试?
注意:无论是哪种方法,都需要先将开发提测的分支拉取到本地,或者让开发提供对应的proto文件
方法一 代码走查
有多个方法,如果有代码基础的同学可以直接拉取开发的项目,然后通过单元测试对代码块进行调用等
由于笔者自己还未这样使用过,所以暂时不做赘述
方法二 Jmeter
可以通过Jmeter进行grpc接口的调用。这里需要注意的是需要下载插件进行安装grpc的接口请求
1.官网下载插件
https://jmeter-plugins.org/install/Install/

2.配置插件
将插件放在jmeter路径下的 lib\ext路径下 
3.重启jmeter
3.1 在jmeter右上角会有个小虫子,点击小虫子 3.2 点击左上角菜单栏,Options下拉之后,最下方有一个小虫子

4.下载Grpc插件
点击小虫子之后,选择Available Plugins,然后输入gRPC查找插件并安装即可 
5.使用Grpc插件进行接口测试
5.1 选择grpc插件 
5.2 grpc插件信息介绍
序号 | 参数名 | 介绍 |
---|
1 | Server Name or IP | gRPC服务器地址(域名或IP) | 2 | Port Number | gRPC服务器端口 (80/ 443) | 3 | SSL/TLS | 开启SSL/TLS认证 | 4 | Disable SSL/TLS Cert Verification | 禁用SSL/TLS证书校验(自签名证书需开启) | 5 | Proto Root Directory proto | 文件的根路径 | 6 | Library Directory (Optional) proto | 文件解析需要依赖的额外库的文件夹路径 (googleapis) | 7 | Full Method | 用于请求测试的RPC方法 | 8 | Metadata Metadata | 可以用于token身份验证等方式 | 9 | Deadline | 请求超时时间(单位:毫秒) | 10 | Send JSON Format With the Request | 格式化的JSON请求数据 |

5.3 配置并运行Grpc接口

5.4 通过查看接过树进行信息查询即可
自己尝试即可
方法三 BloomRPC
1.下载bloomrpc软件
https://github.com/bloomrpc/bloomrpc/releases/tag/1.5.3
 2.打开Bloomrpc
 3.配置proto文件路径

配置到proto文件的路径即可 
4.导入proto文件

4.1 选择proto文件  4.3 文件信息解释 
5.1 执行Grpc接口

总结
grpc接口测试的方法有很多,如果遇到这种问题不知道怎么测的话,可以按照我这个执行文档进行配置,但是个人感觉的话用Jmeter进行测试返回的内容会要比bloomrpc的信息足一点。推荐使用Jmeter进行执行,如果有代码基础的话,直接进行单元测试会比较好!
|