天天看點

Doraemon-接口自動化測試工具

這是一個自動生成接口測試測試用例的項目, 您可以通過如下方式使用他

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")
           
Doraemon-接口自動化測試工具

感謝每一個認真閱讀我文章的人,看着粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什麼很值錢的東西,如果你用得到的話可以直接拿走:

① 2000多本Python電子書(主流和經典的書籍應該都有了)

② Python标準庫資料(最全中文版)

③ 項目源碼(四五十個有趣且經典的練手項目及源碼)

④ Python基礎入門、爬蟲、web開發、大資料分析方面的視訊(适合小白學習)

Doraemon-接口自動化測試工具

⑤ Python學習路線圖(告别不入流的學習)

在我的QQ技術交流群裡(技術交流和資源共享,廣告進來腿給你打斷)

可以自助拿走,群号953306497(備注“csdn111”)群裡的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

Doraemon-接口自動化測試工具

繼續閱讀