目标
- 理解什么是数据驱动
- 熟练掌握对JSON数据的操作
- 能够使用数据驱动对代码进行优化
什么是数据驱动?
数据驱动:是以数据来驱动整个测试用例的执行,也就是测试数据决定测试结果。 比如我们要测试加法,我们的测试数据是1和1,测试结果就是2,如果测试数据是1和2,测试结果 就是3。
1、 数据驱动的特点
- 数据驱动本身不是一个工业级标准的概念,因此在不同的公司都会有不同的解释。
- 可以把数据驱动理解为一种模式或者一种思想。
- 数据驱动技术可以将用户把关注点放在对测试数据的构建和维护上,而不是直接维护脚本,可 以利用同样的过程对不同的数据输入进行测试。
- 数据驱动的实现要依赖参数化的技术。
2 、传入数据的方式(测试数据的来源)
- 直接定义在测试脚本中(简单直观,但代码和数据未实现真正的分离,不方便后期维护)
- 从文件读取数据,如JSON、excel、xml、txt等格式文件
- 从数据库中读取数据
- 接调用接口获取数据源
- 本地封装一些生成数据的方法
一、JSON操作
目标
- 掌握JSON的语法格式
- 熟练掌握对JSON数据的操作
1. JSON介绍
JSON的全称是”JavaScript Object Notation”,是JavaScript对象表示法,它是一种基于文本,独立 于语言的轻量级数据交换格式。
1.1 JSON特点
- JSON是纯文本
- JSON具有良好的自我描述性,便于阅读和编写
- JSON具有清晰的层级结构
- 有效地提升网络传输效率
1.2 JSON语法规则
- 大括号保存对象
- 中括号保存数组
- 对象数组可以相互嵌套
- 数据采用键值对表示
- 多个数据由逗号分隔
1.3 JSON值
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中) null
示例:
{
"name": "tom",
"age": 18,
"isMan": true,
"school": null,
"address": {
"country": "中国",
"city": "江苏苏州",
"street": "科技园路"
},
"numbers": [2, 6, 8, 9],
"links": [
{
"name": "Baidu",
"url": "http://www.baidu.com"
},
{
"name": "TaoBao",
"url": "http://www.taobao.com"
}
]
}
2. 数据操作
- python字典与JSON之间的转换
- JSON文件读写
2.1 导入依赖包
import json
2.2 python字典与JSON之间的转换
把python字典类型转换为 JSON字符串
data = {
'id': 1,
'name': 'Tom',
'address': '北京市海淀区',
'school': None
}
json_str = json.dumps(data)
把JSON字符串转换为python字典
json_str = '{"id": 1, "name": "Tom", "address": "北京市海淀区", "school": null}'
dict_data = json.loads(json_str)
2.3 JSON文件读写
读取JSON文件
with open('data.json', encoding='UTF-8') as f:
data = json.load(f) # 返回的数据类型为字典或列表
写入JSON文件
param = {'name': 'tom', 'age': 20}
with open('data2.json', 'w', encoding='UTF-8') as f:
json.dump(param, f)