繼上一篇文章 參數組合測試利器 - 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 開源地址:
但願你們能從本篇文章有所收穫~
最後給你們推薦一下個人公衆號 「智能測試開發」,歡迎你們掃描下方海報二維碼關注公衆號,交流數學~