allpairspy一款高效的正交实验法生成用例工具

import pytest
from allpairspy import AllPairs
from collections import OrderedDict

parameters = [
    ["男","女"],
    ["一年级", "二年级", "三年级", "四年级", "五年级"],
    ["8岁以下", "8-10岁", "10-13岁"]
]


print("PAIRWISE:")
for i, pairs in enumerate(AllPairs(parameters)):
    print("用例编号{:2d}: {}".format(i, pairs))


print("#######################过滤因素之间值的组合是无效###################################")

def is_valid_combination(row):
    n = len(row)
    # print(row)
    # print(n)
    # 设置过滤条件
    if n > 2:
        # 一年级 不能匹配 10-13岁
        if row[1] in ["一年级","二年级"]  and  "10-13岁" == row[2]:
            return False
    return True


parameters = [
    ["男","女"],
    ["一年级", "二年级", "三年级", "四年级", "五年级"],
    ["8岁以下", "8-10岁", "10-13岁"]
]

print("PAIRWISE:")
for i, pairs in enumerate(AllPairs(parameters,filter_func=is_valid_combination)):
    print("用例编号{:2d}: {}".format(i, pairs))



print("##############################OrderedDict演示#####################################")
parameters = OrderedDict({
    "性别": ["男", "女"],
    "年级": ["一年级", "二年级", "三年级", "四年级", "五年级"],
    "年龄区间": ["8岁以下", "8-10岁", "10-13岁"]
})

print("PAIRWISE:")
for i, pairs in enumerate(AllPairs(parameters,filter_func=is_valid_combination)):
    print("用例编号{:2d}: {}".format(i, pairs))


print("#################################################################")

def function_to_be_tested(sex, grade, age):
    if grade == "一年级" and age == "10-13岁":
        return False
    return True


@pytest.mark.isms
class Test_Parameterized(object):

    @pytest.mark.parametrize(["sex", "grade", "age"], [
        value_list for value_list in AllPairs([
            [u"男", u"女"],
            ["一年级", "二年级", "三年级", "四年级", "五年级"],
            ["8岁以下", "8-10岁", "10-13岁"]
        ])
    ])

    def test(self, sex, grade, age):
        assert function_to_be_tested(sex, grade, age)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容