起源
继上一篇文章 参数组合测试利器 - allpairspy 后 ,部分读者希望继续讲解 pairwise 。于是泰斯特这两天将过去实践的代码整理打包后传上了 Github、并写下这篇文章。
本篇文章将围绕 testcase-automaker 开源项目 进行描述、实践、讲解~
正文
什么是 testcase - automaker?
testcase-automaker,顾名思义, 测试用例 自动制造器,基于 pairwise 测试策略以及给 定的参数结构自动生成用例参数组合,可帮助 使用者快速制造测试用例集。
如何使用?
安装
很简单,依然是不变的 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 是我们给定的参数结构,里面包含参数的 类型、值的 范围、是否必填 等重要信息~
控制台输出
若不出意外,运行核心代码后控制台输出示例如下:
[{'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 以及给定参数结构 "智能生成" 的用例参数集,接下来就可以使用该参数集构造许多用例了~
总结
目前 testcase-automaker 还非常稚嫩,有很多需要优化的地方,希望能给读者们起到 抛砖引玉 的作用~
同时大家也可以期待接下来的文章,将会讲述 testcase-automaker 在实际项目中的简单应用~
testcase-automaker 开源地址:
希望大家能从本篇文章有所收获~
最后给大家推荐一下我的公众号 「智能测试开发」,欢迎大家扫描下方海报二维码关注公众号,交流数学~