以Python为基础的REST(JSON为交换数据)接口的测试框架设计(二)-JSON的修改

在第一章节的需求说明中,需要实现下面两点。本章节介绍下面两个功能的实现:

1、测试数据和测试用例分离,即要求每个测试用例从文件中读取JSON数据,然后发送

2、要具有修改JSON数据的能力,可以根据给定的变量名称和值,修改从文件中读取的JSON数据,然后发送提供JSON消息的MOD方法(修改JSON消息中的某个字段)

读取文件比较简单,读取出来的JSON数据是字符串形式的,可以利用Python的JSON库来进行转换,把字符串类型转换为字典类型,然后来访问每个字典的值。给指定的索引赋值。

当前调试环境为:python 2.7版本,后续无特性说明,都以此版本为准。

 

下面是实现代码:

复制代码
# -*- coding: encoding -*-
import json
import types

f =file('testjson2.json','r')
sjson =''
while True:
    myjson=f.readline()
    if len(myjson) ==0:
        break
    sjson= sjson + myjson
f.close()

print 'sjson type is:',type(sjson)
mjson = json.loads(sjson)
print 'sjson change is',type(mjson)
print 'the length os mjson is ',len(mjson)
json_len = len(mjson)

sub = 'brief'

print mjson['brief']
mjson['brief'] = 'modify'
print mjson['brief']

print mjson
复制代码

 

testjson2.json内容如下:

复制代码
 1 {
 2     "brief": "ooooo",
 3     "class_extid": 13,
 4     "create_time": 1131783174,
 5     "face_id": 4,
 6     "flag    ": 6777217,
 7     "flag_ext": 0,
 8     "level": 0,
 9     "max_member": 100,
10     "memo": "m~F~M0m~Zm~@~B",
11     "name": "10502",
12     "option": 2,
13     "ul": [
14         {
15             "flag": 4,
16             "u": 285
17         },
18         {
19             "flag": 4,
20             "u": 35
21         }
22     ]
23 }
复制代码

 

运行输出如下:蓝色字体为修改后的输出。

sjson type is: <type 'str'>
sjson change is <type 'dict'>
the length os mjson is 12
ooooo
modify
{'ul': [{'flag': 4, 'u': 285}, {'flag': 4, 'u': 35}], 'name': '10502', 'level': 0, 'memo': 'm~F~M0m~Zm~@~B', 'brief': 'modify', 'max_member': 100, 'create_time': 1131783174, 'flag_ext': 0, 'class_extid': 13, 'face_id': 4, 'flag ': 6777217, 'option': 2}

posted @   MyStitch  阅读(771)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示