全自动黑科技 - testcase-automaker

起源

继上一篇文章 参数组合测试利器 - allpairspy 后 ,部分读者但愿继续讲解 pairwise 。因而泰斯特这两天将过去实践的代码整理打包后传上了 Github、并写下这篇文章。python

本篇文章将围绕 testcase-automaker 开源项目 进行描述、实践、讲解~git

正文

什么是 testcase - automaker?

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 开源地址:

github.com/amazingTest…

但愿你们能从本篇文章有所收获~

最后给你们推荐一下个人公众号 「智能测试开发」,欢迎你们扫描下方海报二维码关注公众号,交流数学~

相关文章
相关标签/搜索