Commit a81cfc26 authored by xie.qin's avatar xie.qin

Readme refined.

parent 014e2024
......@@ -100,7 +100,29 @@ RPC形式的API,又以 gRPC 和 json-RPC 两种实现方式居多。
```
#### 1.2.1 [json-RPC](https://www.jsonrpc.org/specification) API的自动化测试
#### 1.2.2 [gRPC](https://grpc.io/) API的自动化测试
##### 测试方法
```
1. 获取 gRPC 接口定义的 [proto](https://developers.google.com/protocol-buffers/docs/proto3)文件,存放在对应测试版本的测试数据文件夹下([参考存放路径](/src/test/resources/testdatacollection/chain33/))。
- 根据实际情况判断(如,存在重名类等)是否需要在 proto 文件中指定输出的 java 类名(option java_outer_classname = "RpcProto";)
- 需要生成service类(option java_generic_services = true;)
2. 通过 gradle 插件命令生成java class。可携带参数chainVer,表示proto文件版本。
- gradlew generateProto -DchainVer=v1.6.6
3. 编写 gRPC 客户端请求数据文件([参考链接](/src/test/resources/testdatacollection/v2.2.0/runtime/OpsInChain/sendTransaction.json))
3. 由于 gRPC 接口对负载净荷数据没有统一规范要求,所以只能手工实现请求数据的发送和响应数据的验证:
- 编写 gRPC 客户端发送程序代码(主要是把步骤3中的数据,序列化成2进制码流。[参考链接](/src/main/java/com/fuzamei/autotest/rpc/grpc/GrpcClientTransaction.java))
- 编写 gRPC 服务端响应数据验证代码(主要是和 proto 文件中定义的 service.returns 进行结果比对)。
```
##### 用例参考
```
- [点击此链接](/src/test/resources/features/apitest/grpc/accountManager.feature)
```
##### 优点
```
- N/A
```
##### 有待提高
```
protoc -I=D:\sourceFromGit\chain33\types\proto -I=accountmanager\proto\ --java_out=D:\sourceFromGit\auto-test\src\test\resources\testdatacollection\common\chain33 accountmanager.proto
- 对于语法不完整的 proto 文件,无法实现自动化验证;
- 相对 RESTful 接口自动化测试用例来说,RPC接口自动化测试用例需要更多的代码编写量。
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment