這是一個自動生成介面測驗測驗用例的專案, 您可以通過如下方式使用他
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")

感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
① 2000多本Python電子書(主流和經典的書籍應該都有了)
② Python標準庫資料(最全中文版)
③ 專案原始碼(四五十個有趣且經典的練手專案及原始碼)
④ Python基礎入門、爬蟲、web開發、大資料分析方面的視頻(適合小白學習)

⑤ Python學習路線圖(告別不入流的學習)
在我的QQ技術交流群里(技術交流和資源共享,廣告進來腿給你打斷)
可以自助拿走,群號953306497(備注“csdn111”)群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289198.html
標籤:其他
