pytest参数化实现DDT:读取JSON数据

Posted 永远不要矫情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest参数化实现DDT:读取JSON数据相关的知识,希望对你有一定的参考价值。

JSON(javascript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。与上一篇文章类似,使用pytest中的pytest.mark.parametrize()便可实现参数化。

代码如下所示:导入json模块,使用json.load()方法加载json文件。

import pytest
import json

def get_data():
    with open('test.json') as f:
        lst = []
        data = json.load(f)
        lst.extend(data['keys'])
        return lst
@pytest.mark.parametrize('name', get_data())
def test01(name):
    print(name)


if __name__ == '__main__':
    # print(get_data())
    pytest.main(['-sv','test_json.py'])

与之同目录的test.json数据如下所示:

{
  "keys": ["tom", "kite", "rose"]
}

输出如下:

============================= test session starts =============================
platform win32 -- Python 3.7.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 -- D:\\python3.7.6\\python.exe
cachedir: .pytest_cache
rootdir: D:\\pythonProject\\my_selenium_project\\ddt
plugins: allure-pytest-2.9.41, dependency-0.5.1
collecting ... collected 3 items

test_json.py::test01[tom] tom
PASSED
test_json.py::test01[kite] kite
PASSED
test_json.py::test01[rose] rose
PASSED

============================== 3 passed in 0.08s ==============================

以上是关于pytest参数化实现DDT:读取JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

pytest参数化实现DDT:读取CSV数据

pytest参数化实现DDT:读取excel文件

pytest学习和使用12-Unittest和Pytest参数化详解

DDT与pytest.mark.parametrize参数化区别

Pytest进阶之参数化

参数化之ddt数据驱动框架