本文节选自霍格沃兹测试学院内部教材
Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据,此工具对标 XML
,支持自动编码,解码。比 XML 性能好,且数据易于解析。更多有关工具的介绍可参考官网。
Protocol Buffers官网:https://developers.google.com/protocol-buffers
Protocol Buffers 为跨平台设计,以 Python 为例,使用者配置 .proto 文件,利用 Protocol Buffers
工具即可生成 Python 代码,此代码就是使用者想要的数据结构。
如果编程语言换成了 Java ,使用者可使用相同的 .proto 文件,利用 Protocol Buffers 工具生成 Java
代码,此代码可被 Java 进行解析。
这么做的好处是可以跨语言交流,试想 Java 与 Python 间的数据通信,只需要利用 .proto
确定格式,就可随心编程,这个过程惬意无比。基于 Protocol Buffers 的测试也无比舒服。
你可选择自己的语言进行测试,比如 Python 。由于数据格式基于 .proto 配置文件,获取到这个文件即可生成数据类,比如下述
.proto 内容通过 protoc --python_out=./ ./addressbook.proto
命令即可生成
addressbook_pb2.py 文件:
syntax = "proto2";
package tutorial;
message Person { optional string name = 1; optional int32 id = 2; optional string email = 3;
enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; }