dirtyhand-tester [QA-Daily] Python Related 库,拯救你满是 dict 的代码,让测试代码更好懂
simonpatrick
·
2020年08月18日
·
1577 次阅读
[QA-Daily] Python Related 库,拯救你满是 dict 的代码,让测试代码更好懂
Related 是一个 python 的仓库,用来序列化和反序列. 对于测试人员来说,选择一个第三方 lib 的使用,最主要的是三点:
- 方便使用
- 写出来的代码方便阅读
- 性能问题基本不用考虑 (什么序列化反序列的性能,测试代码不用考虑太多,好用和可读性最重要)
下面一张图就把 related 要做的事情表达的比较清楚了:
通过以下几个例子说明 related 的用法.
Related: to yml
如何将 python 类转化为 yaml 格式:
- 定义 model 类,加上注解 ```python @related.immutable class Person(object): first_name = related.StringField() last_name = related.StringField()
@related.immutable
class RoleModels(object):
scientists = related.SetField(Person)
- 把实例转化为yaml格式:
```python
people = [Person(first_name="Grace", last_name="Hopper"),
Person(first_name="Katherine", last_name="Johnson"),
Person(first_name="Katherine", last_name="Johnson")]
print(related.to_yaml(RoleModels(scientists=people)))
Related: json 操作
- 定义 model 类
@related.immutable
class StoreData(object):
name = related.StringField()
id = related.IntegerField()
created_on = related.DateTimeField("%m/%d/%Y %H:%M:%S")
data_from = related.DateTimeField()
data_to = related.DateTimeField()
days = related.SequenceField(DayData)
price = related.DecimalField()
-
from_json 和 to_json 操作, 参考一下代码,其实就三个方法,让你可以在 json,dict,类之间的转化
- json_dict = from_json(json_str)
- store_data = to_model(StoreData,json_dict)
- to_json(store_data)
def test_json_from_to():
json_str = """
{
"created_on": "12/21/2017 14:21:55",
"data_from": "2017-12-18T00:00:00",
"data_to": "2017-12-19T23:59:59",
"days": [
{
"closed_on": "19:00:00",
"customers": 487,
"date": "2017-12-18",
"day_type": "Normal",
"logged_on": "19:20",
"open_at": "08:00:00",
"sales": 27223.65
},
{
"closed_on": "17:30:00",
"customers": 192,
"date": "2017-12-19",
"day_type": "Holiday",
"logged_on": "17:50",
"open_at": "10:30:00"
}
],
"id": 982,
"name": "Acme store",
"price": "98237.448"
}"""
json_dict = from_json(json_str)
print(type(json_dict))
print(json_dict)
store_data = to_model(StoreData,json_dict)
print(store_data.name)
print(to_json(store_data))
如果更高级的使用,可以参考github-related
也欢迎大家查询公众号:动手吧测试,大家一起相互学习分享测试技术,在测试的路上不孤单.
以上文章也会在动手吧测试公告号发布
转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。