写完grpc服务端程序后,使用以下客户端进行测试,减少自己写测试客户端的工作。
gRPCurl
这是命令行工具。
安装
我这里直接使用已经编译好的执行文件,github下载最新版:https://github.com/fullstorydev/grpcurl/releases。
解压后,得到grpcurl执行文件,
1 | grpcurl --version |
也可以使用go方式安装,或者源码安装make install
;
用法介绍
使用 gRPC 反射自动发现 gRPC 服务。
查看服务列表
1
2
3
4grpcurl -plaintext 127.0.0.1:8080 list
grpc.reflection.v1alpha.ServerReflection
proto.Greeter查看某个服务的方法列表
1
2
3grpcurl -plaintext 127.0.0.1:8080 list proto.Greeter
proto.Greeter.SayHello查看方法定义
1
2
3
4grpcurl -plaintext 127.0.0.1:8080 describe proto.Greeter.SayHello
proto.Greeter.SayHello is a method:
rpc SayHello ( .proto.HelloRequest ) returns ( .proto.HelloReply );查看请求参数
1
2
3
4
5
6grpcurl -plaintext 127.0.0.1:8080 describe proto.HelloRequest
proto.HelloRequest is a message:
message HelloRequest {
string name = 1;
}调用服务,参数传json即可
1
2
3
4
5grpcurl -d '{"name": "abc"}' -plaintext 127.0.0.1:8080 proto.Greeter.SayHello
{
"message": "hello"
}
参考grpc
gRPCui
gRPCui基于gRPCurl,并为gRPC添加了交互式 Web UI,类似于 Postman 和 Swagger UI 等工具。
github:https://github.com/fullstorydev/grpcui下载源码
安装:
1 | make install |
用法:
1 | grpcui -plaintext localhost:12345 |
会自动打开网页,可以看到服务端提供的服务,方法,以及每个方法对应的参数设置。
issue
测试时发现gRPCui目前不支持一个服务多个service的情况,使用gRPCurl没有该问题。