軟件測(cè)試 | pb協(xié)議的接口測(cè)試
Protocol Buffers 是谷歌開(kāi)源的序列化與反序列化框架。它與語(yǔ)言無(wú)關(guān)、平臺(tái)無(wú)關(guān)、具有可擴(kuò)展的機(jī)制。 用于序列化結(jié)構(gòu)化數(shù)據(jù),此工具對(duì)標(biāo) XML ,支持自動(dòng)編碼,解碼。比 XML 性能好,且數(shù)據(jù)易于解 析。更多有關(guān)工具的介紹可參考官網(wǎng)。
Protocol Buffers官網(wǎng):https://developers.google.com/protocol-buffers?Protocol Buffers 為跨平臺(tái)設(shè)計(jì),以 Python 為例,使用者配置 .proto 文件,利用 Protocol Buffers 工具 即可生成 Python 代碼,此代碼就是使用者想要的數(shù)據(jù)結(jié)構(gòu)。

如果編程語(yǔ)言換成了 Java ,使用者可使用相同的 .proto 文件,利用 Protocol Buffers 工具生成 Java 代碼,此代碼可被 Java 進(jìn)行解析。

這么做的好處是可以跨語(yǔ)言交流,試想 Java 與 Python 間的數(shù)據(jù)通信,只需要利用 .proto 確定格式, 就可隨心編程,這個(gè)過(guò)程愜意無(wú)比?;?Protocol Buffers 的測(cè)試也無(wú)比舒服。

你可選擇自己的語(yǔ)言進(jìn)行測(cè)試,比如 Python 。由于數(shù)據(jù)格式基于 .proto 配置文件,獲取到這個(gè)文件即 可生成數(shù)據(jù)類(lèi),比如下述 .proto 內(nèi)容通過(guò) protoc --python_out=./ ./addressbook.proto 命令 即可生成 addressbook_pb2.py 文件:
測(cè)試人員的代碼只需導(dǎo)入 addressbook_pb2 ,對(duì)其初始化后即可使用,比如對(duì) Person 的字段加入一些測(cè) 試值:
最后,將 person 序列化后即可傳輸?shù)奖粶y(cè)對(duì)象。如果你的業(yè)務(wù)采用文件進(jìn)行數(shù)據(jù)傳輸,可參考官方寫(xiě) 文件的例子(采用 python2 ):
也可從被測(cè)對(duì)象傳來(lái)的文件中讀數(shù)據(jù):
如果數(shù)據(jù)通過(guò) https 傳輸,可采用 requests ,其它傳輸方式同理,請(qǐng)自行查閱數(shù)據(jù)傳輸工具。如果測(cè)試 人員代碼與被測(cè)對(duì)象建立了聯(lián)系,即可收發(fā)測(cè)試數(shù)據(jù),測(cè)試人員對(duì)接收到的數(shù)據(jù)編寫(xiě)測(cè)試用例即可。