继上一篇文章 参数组合测试利器 - allpairspy 后 ,部分读者但愿继续讲解 pairwise 。因而泰斯特这两天将过去实践的代码整理打包后传上了 Github、并写下这篇文章。python
本篇文章将围绕 testcase-automaker 开源项目 进行描述、实践、讲解~git
testcase-automaker,顾名思义, 测试用例 自动制造器,基于 pairwise 测试策略以及给 定的参数结构自动生成用例参数组合,可帮助 使用者快速制造测试用例集。github
很简单,依然是不变的 pip install:数组
# 先安装依赖库 allpairspy
pip install allpairspy
pip install testcase-automaker
复制代码
新建一个 python 文件后写入下列核心代码:测试
from testcase_automaker.interface.http_params_generator import http_params_generator
params_structure = {
'name': {
'type': 'string',
'value': '',
'range': ['张三', '李四'],
'iscompulsory': True
},
'phone': {
'type': 'number',
'value': '',
'iscompulsory': True
},
'claimant': {
'type': 'object',
'value': {
'name': {
'type': 'string',
'value': '',
'iscompulsory': True
},
'phone': {
'type': 'number',
'value': '',
'iscompulsory': True
}
},
'iscompulsory': True
},
'informations': {
'type': 'array',
'value': [{
'claimant': {
'type': 'object',
'value': {
'name': {
'type': 'string',
'value': '',
'iscompulsory': True
},
'phone': {
'type': 'number',
'value': '',
'iscompulsory': True
}
},
'iscompulsory': True
}
},
{
'name': {
'type': 'string',
'value': '',
'iscompulsory': True
}
}
],
'iscompulsory': True
}
}
if __name__ == '__main__':
params_generator = http_params_generator(parameters_structure=params_structure)
params_generator.generate_params_list()
print(params_generator.generated_params_list)
复制代码
其中 params_structure 是咱们给定的参数结构,里面包含参数的 类型、值的 范围、是否必填 等重要信息~优化
若不出意外,运行核心代码后控制台输出示例以下:spa
[{'name': '李四', 'phone': 15746159038, 'claimant': {'name': '华蔹绍', 'phone': 15698064521}, 'informations': [{'claimant': {'name': '齐檠', 'phone': 18912976530}}, {'name': '翟伽硝'}]}, {'name': '张三', 'phone': None, 'claimant': {'name': None, 'phone': None}, 'informations': [{'claimant': {'name': None, 'phone': None}}, {'name': '莫僖烹'}]}, {'name': '李四', 'phone': 18557203961, 'claimant': {'name': None, 'phone': 13736054179}, 'informations': [{'claimant': {'name': None, 'phone': 18810456792}}, {'name': None}]}, {'name': '李四', 'phone': None, 'claimant': {'name': '浦农', 'phone': None}, 'informations': [{'claimant': {'name': '阴桎煅', 'phone': None}}, {'name': None}]}, {'name': '张三', 'phone': None, 'claimant': {'name': None, 'phone': 18238590241}, 'informations': [{'claimant': {'name': '弓肓', 'phone': None}}, {'name': None}]}, {'name': '张三', 'phone': 18265714928, 'claimant': {'name': '昝胀噎', 'phone': None}, 'informations': [{'claimant': {'name': '应兰仓', 'phone': None}}, {'name': None}]}, {'name': '李四', 'phone': None, 'claimant': {'name': '毋羹', 'phone': None}, 'informations': [{'claimant': {'name': None, 'phone': 15701289735}}, {'name': None}]}]
Process finished with exit code 0
复制代码
输出的是一张列表,里面包含了基于 pairwise 以及给定参数结构 "智能生成" 的用例参数集,接下来就能够使用该参数集构造许多用例了~3d
目前 testcase-automaker 还很是稚嫩,有不少须要优化的地方,但愿能给读者们起到 抛砖引玉 的做用~code
同时你们也能够期待接下来的文章,将会讲述 testcase-automaker 在实际项目中的简单应用~orm
testcase-automaker 开源地址:
但愿你们能从本篇文章有所收获~
最后给你们推荐一下个人公众号 「智能测试开发」,欢迎你们扫描下方海报二维码关注公众号,交流数学~