Json文件在python自动化测试中的应用(拓展yaml文件)

一、JSON介绍

        JSON的全称是”JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

二、JSON特点

  • JSON是纯文本
  • JSON具有良好的自我描述性,便于阅读和编写
  • JSON具有清晰的层级结构
  • 有效地提升网络传输效率

三、JSON语法规则

  • 大括号保存对象
  • 中括号保存数组
  • 对象数组可以相互嵌套
  • 数据采用键值对表示
  • 多个数据由逗号分隔

四、JSON的值

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null

五、JSON操作

1、python字典转换为json字符串

import json    # 导入依赖包

json字符串 = json.dumps(字典)

2、json字符串转换为python字典

import json    # 导入依赖包

字典 = json.loads(JSON字符串)

3、读取json文件

import json    # 导入依赖包

with open('json文件名','r',encoding = 'utf-8') as f:
    data = json.load(f)    # 返回的数据类型为字典或列表

4、写入json文件

import json    # 导入依赖包

with open('json文件名','w',encoding = 'utf-8') as f:
    json.dump(data,f)    # data为字典或列表

5、json字符串转换为yaml格式

import json
import yaml

def json_to_yaml(filename):
    file = "./data/test.json"    # json文件路径
    with open(file, "r", encoding="utf-8") as f:
        data = json.load(f)    # 先将json文件转化为字典
    yaml_data = yaml.dump(data)    # 将字典转化为yaml格式的字符串
    print(yaml_data)

6、yaml格式转化为json字符串

import json
import yaml

def yaml_to_json():
    file = "./data/test.yaml"    # yaml文件路径 
    with open(file, "r", encoding="utf-8") as f:
        data = yaml.load(f, Loader=yaml.Loader)    # 先将yaml文件转化为字典
    json_data = json.dumps(data)    # 将字典转化为json字符串
    print(json_data)

六、python自动化测试的应用

1、json数据用作接口自动化请求参数

import json

def read_json():
    file = "./data/test.json"    # json文件路径
    with open(file, "r", encoding="utf-8") as f:
        data = json.load(f)
    return data

输入:

输出:

2、json数据用作web/接口自动化数据驱动来源

import json

def read_json():
    file = "./data/test.json"    # json文件路径
    data = []
    with open(file, "r", encoding="utf-8") as f:
        for i in json.load(f):
            data.append(tuple(i.values()))
    return data

输入:

输出:

3、yaml数据用作web/接口自动化数据驱动来源

import yaml

def read_yaml():
    data = []
    file = "./data/test.yaml"    # yaml文件路径 
    with open(file, "r", encoding="utf-8") as f:
        for i in yaml.load(f, Loader=yaml.Loader).values():
            data.append(tuple(i.values()))
    return data

输入:

输出:

猜你喜欢

转载自blog.csdn.net/ouihsiad/article/details/129836748
今日推荐