全自動黑科技 - 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…

但願你們能從本篇文章有所收穫~

最後給你們推薦一下個人公衆號 「智能測試開發」,歡迎你們掃描下方海報二維碼關注公衆號,交流數學~

相關文章
相關標籤/搜索