1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

pytest功能测试数字驱动yaml/excel/csv/json

数字驱动:推动自动化技术功能测试的落实

数字驱动是指数据库的更改进而推动自动化技术功能测试的落实,最后造成检测结果的变化。简单来说就是参数化设计的应用。

pytest功能测试数字驱动yaml/excel/csv/json

检测推动在功能测试中的运用情景:

  • 测试流程的数字驱动;
  • 测试报告的数字驱动;
  • 配备的数字驱动;

实例展示:

以下是几种 pytest 数据驱动的实例展示。

1、pytest 融合数字驱动-yaml

这个实例是使用 yaml 文件完成读取测试环境变量的操作,主要实现读取 yaml 文件,先创建 env.yml 文件配备测试报告。

import pytest
import yaml

class TestYaml:
    @pytest.mark.parametrize("env",yaml.safe_load(open("./env.yml")))
    def test_yaml(self,env):
        if "test" in env:
            print("这是测试环境")
            print("测试环境的ip是:",env["test"])
        elif "dev" in env:
            print("这是开发环境")
            print("开发环境的ip是:",env["dev"])

2、pytest 结合数据驱动-excel

这个实例主要是使用 excel 文件完成数据驱动的操作,以读取 excel 文件,实现 A+B=C 并断言为例。

import openpyxl
import pytest
from test_pytest.read_excel.func.operation import my_add

def test_get_excel():
    """
    解析 excel 数据
    :return: [[1,1,2],[3,6,9],[100,200,300]]
    """
    book=openpyxl.load_workbook('../data/param.xlsx')
    sheet=book.active
    cells=sheet["A1":"C3"]
    print(cells)
    values=[]
    for row in sheet:
        data=[]
        for cell in row:
            data.append(cell.value)
        values.append(data)
    print(values)
    return values

class TestWithExcel:
    @pytest.mark.parametrize("x,y,expected",test_get_excel())
    def test_add(self,x,y,expected):
        assert my_add(int(x),int(y))==int(expected)

3、pytest 结合数据驱动-csv

这个实例主要是使用 csv 文件完成数据驱动的操作,以读取 csv 文件,实现 A+B=C 并断言为例。

import csv
import pytest
from test_pytest.read_csv.func.operation import my_add

def test_get_csv():
    """
    解析 csv 文件
    :return:
    """
    with open('../data/params.csv') as file:
        raw=csv.reader(file)
        data=[]
        for line in raw:
            data.append(line)
        print(data)
        return data

class TestWithCsv:
    @pytest.mark.parametrize("x,y,expected",test_get_csv())
    def test_add(self,x,y,expected):
        assert my_add(int(x),int(y))==int(expected)

4、pytest 结合数据驱动-json

这个实例主要是使用 json 文件完成数据驱动的操作,以读取 json 文件,实现 A+B=C 并断言为例。

import json
import pytest
from test_pytest.read_json.func.operation import my_add

def test_get_json():
    """
    解析 json 数据
    :return: [[1,1,2],[3,6,9],[100,200,300]]
    """
    with open('../data/params.json','r') as file:
        data=json.loads(file.read())
        print(list(data.values()))
        return list(data.values())

class TestWithJson:
    @pytest.mark.parametrize("x,y,expected",test_get_json())
    def test_add(self,x,y,expected):
        assert my_add(int(x),int(y))==int(expected)

总结

以上是几种常见数据驱动的实例介绍,通过数字驱动的方式,可以快速高效地进行自动化测试,提升测试效率,减轻测试人员的工作压力。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6635.html