Pytest结合数据驱动-JSON

Pytest 结合数据驱动 json

json 文件介绍

  • json 是 JS 对象
  • 全称是 JavaScript Object Notation
  • 是一种轻量级的数据交换格式
  • json 结构
    • 对象 {"key": value}
    • 数组 [value1, value2 ...]

{

"name:": "hogwarts ",

"detail": {

"course": "python",

"city": "北京"

},

"remark": [1000, 666, 888]

}

json 文件使用

  • 查看 json 文件
    • pycharm
    • txt 记事本

  • 读取 json 文件
    • 内置函数 open()
    • 内置库 json
    • 方法:json.loads()
    • 方法:json.dumps()


# 读取json文件内容

def get_json():

with open('demo.json', 'r') as f:

data = json.loads(f.read())

print(data)

工程目录结构

  • data 目录:存放 json 数据文件
  • func 目录:存放被测函数文件
  • testcase 目录:存放测试用例文件

# 工程目录结构

.

├── data

│ └── params.json

├── func

│ ├── __init__.py

│ └── operation.py

└── testcase

├── __init__.py

└── test_add.py

测试准备

  • 被测对象:operation.py
  • 测试用例:test_add.py
  • 测试数据:params.json

# operation.py 文件内容

def my_add(x, y):

result = x + y

return result


# test_add.py 文件内容

class TestWithJSON:

@pytest.mark.parametrize('x,y,expected', [[1, 1, 2]])

def test_add(self, x, y, expected):

assert my_add(int(x), int(y)) == int(expected)


# params.json 文件内容

{

"case1": [1, 1, 2],

"case2": [3, 6, 9],

"case3": [100, 200, 300]

}

Pytest 数据驱动结合 json 文件


# 读取json文件

def get_json():

"""

获取json数据

:return: 返回数据的结构:[[1, 1, 2], [3, 6, 9], [100, 200, 300]]

"""

with open('../data/params.json', 'r') as f:

data = json.loads(f.read())

# data.values()返回试图对象,需要转成列表

return list(data.values())

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值