在功能测试或集成测试中,用json造输入数据,然后moc测试脚本将json转化为protobuf发送给被测试模块或服务,是非常常见的功能测试手段。
如果测试脚本用Python来写的话,一般的做法是用的Python调用json模块中函数解析json文件,然后新建protobuf对象,依次填写各字段,然后发送出去。
当然如果愿意造上面的轮子也没关系,如果想偷懒也是可行的,脚本就为你干这事提供了温床
,下面会介绍这个过程:
1、造json文件,内容如下:
#vi testjson2pb.json
{
"name":"scq",
"age":30,
"work_unit":"taobao",
"class_mate":[
{
"name":"jim",
"age":30
}
]
}
2、造protobuf文件,内容如下:
#vi testjson2pb.proto
//class mate
package json2pb;
message PersonInfo {
//my name
required string name = 1;
//my age
optional int32 age = 2;
//my work unit
optional string work_unit = 3;
message ClassMate {
//name
optional string name = 1;
//age
optional uint32 age = 2;
}
repeated ClassMate class_mate = 4;
}
3、生成protobuf对应python文件:
#protoc -I=. --python_out=. testjson2pb.proto
testjson2pb_pb2.py
4、编写测试例子,具体如下:
#vi testjson2pb.py
-------------------------------------------------------------------------------------------------
#!/usr/bin/env python
# coding=utf-8
import sys
import logging
import os
import time
import string
import pbjson
import simplejson
import testjson2pb_pb2
def main():
f = file("testjson2pb.json")
s = simplejson.load(f)
f.close
t = pbjson.dict2pb(testjson2pb_pb2.PersonInfo, s)
print t
if __name__ == "__main__":
main()
5、执行脚本,结果如下:
#python testjson2pb.py
是不是很简单啊,自从有了这个脚本,再用不用担心人肉从json生成protobuf的问题了
。
阅读(580) | 评论(0) | 转发(0) |