這是一個自動生成接口測試測試用例的項目, 您可以通過如下方式使用他
run in python3 當你git clone 該項目後,可以通過如下指令配置你的環境 如果你習慣使用venv環境, 那麼你可以進行如下操作
>>> cd doraemon
>>> . venv/bin/activate
>>> pip3 install -r requirements.txt
測試用例的編寫
在根路徑下找到cases路徑
在cases路徑下, 新增 .json 尾綴的檔案
如果是單個檔案單個case, 可參考如下示例: test_history_day.json
{
"test_get_history_days": {
"url": "http://api.juheapi.com/japi/toh",
"params": "v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2",
"method": "get",
"desc": "測試曆史上的今天接口, get請求",
"assert": {
"result": ["len", 0],
"error_code": 10005
}
}
}
用字典包含字典的結構進行儲存
在上面的示例中, {key: {...}},
檔案名表示生成測試用例中的class的命名(以test開頭,下劃線分割多個單詞)
key表示測試方法名, 如果需要case有序執行, 可以将示例中: test_get_history_days 修改為test_1_get_history_days
key對應的字典, 是這條case中所有的需要用到的參數, 目前支援結構體如下
key | value | Sample |
ResponseType | 驗證傳回結構體類型 | {"ResponseType": ["type", "dict"]}(支援字段類型驗證) |
url | 對應接口位址 | http://api.juheapi.com/japi/toh |
method | 請求方法 | get |
desc | 測試報告對應的用例描述資訊 | 測試曆史上的今天接口, get請求 |
assert | 測試斷言資料 | {"result": ["len", 0], "error_code": 10005} |
params | get方法需要傳遞的資料 | v=&month=&day=&key=1d39d53a70ebed87d5cabbc8b73b96e2 |
data | post送出表單資料 | {"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"} |
json | post送出json資料 | {"pno":1,"ps":30,"dtype":"json","key":"4beb9d77d2b95ce9bec6d8363ee5a620"} |
schema | 需要斷言傳回資料的結構體驗證 | TODO |
headers | 請求頭資訊 | {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/63.0.3239.132 Safari/537.36"} |
cookies | 需要自定義cookies資訊 | 字典類型的key value 鍵值對 |
run.py
當你編寫完成測試用例後, 可以通過以下指令運作測試
python3 run.py
>>> Testing ...
run.py是一個可以接受外部傳參的檔案, 當你需要自定義測試用例路徑/ 測試報告生成路徑 / 測試用例的Pattern時, 可以先通過 python3 run.py --help 來檢視對應的入參後按需修改
? doraemon [master] ? python3 run.py --help
Usage: run.py [OPTIONS]
Options:
--cases TEXT case file path
--pattern TEXT get cases file pattern
--report TEXT generator report in path
--help Show this message and exit.
預設參數配置如下
@click.option('--cases', default='src/testcases/', help="case file path")
@click.option('--pattern', default='*.py', help="get cases file pattern")
@click.option('--report', default='src/report/', help="generator report in path")【文章來源】:
https://github.com/TesterlifeRaymond/doraemon
推薦文章++++
*D-TECT - 基于指令行的Web應用程式滲透測試工具
*fox -- 一種主動和被動的易受攻擊的測試工具
*VulnerabilityList 滲透測試漏洞掃描檢測工具