httprunner 確實使用起來還是很方便的老速,可以快速的響應一個自動化測試的需求,而大大程度上降低了測試人員對代碼的要求,而且使用的范圍也非常廣孵构,學習一下httprunner的使用
httprunner目前已經(jīng)更新到3.X了,很多指令都變了烟很,所以在進行對應的操作的時候最好先help一下颈墅,看下現(xiàn)在的指令說明。
1.安裝HttpRunner
? ? 1.打開cmd
? ? 2.安裝:pip install httprunner
? ? ? ? ps:建議使用國內(nèi)源雾袱,推薦清華恤筛、豆瓣,防止出現(xiàn)timeout失敗
? ? ? ? ? ? ?安裝前先檢查自己的python版本芹橡,最好3.4或者以上的毒坛,低版本的不支持
? ? ? ? ? ? ?如果你需要使用最新的開發(fā)版本,那么可以采用項目的 GitHub 倉庫地址進行安裝:$ pip install git+https://github.com/HttpRunner/HttpRunner.git@master
? ? ? ? ? ? ?升級 使用-U指令:
?????????????pip install -U HttpRunner
? ? ? ? ? ? ?pip install -git+https://github.com/HttpRunner/HttpRunner.git@master
? ? 3.安裝校驗:在cmd輸入hrun命令:hrun -V
? ? ? ? ps: 如果安裝的時候提示成功林说,但是查詢版本報錯煎殷,提示你指令不正確,需要使用httprunner -V進行查看腿箩,因為httprunner3.0以后的使用指令發(fā)生了變化
? ? 4.如果要對httprunner進行開發(fā)調(diào)試蝌数,還需要用到pipenv對依賴包進行管理
? ? ? ? ????1.安裝pipenv:$ pip install pipenv
? ????????? 2.獲取httprunner源碼:$ git clone https://github.com/HttpRunner/HttpRunner.git
? ? ? ? ? ? 3.進入倉庫目錄,安裝所有依賴:$ pipenv install --dev
? ? ? ? ? ? 4.運行單元測試,若測試通過度秘,則環(huán)境正常:$ pipenv run python -m unittest discover
? ? ? ? ? ? 5.調(diào)試運行方式:
????????????# 調(diào)試運行 hrun$ pipenv run python main-debug.py hrun -h
????????????# 調(diào)試運行 locusts$ pipenv run python main-debug.py locusts -h
2.創(chuàng)建項目工程
? ? 1.基礎使用
? ? ? ? 在cmd命令行中顶伞,使用hrun --startproject 指定項目名稱
? ? ? ? 例如:hrun --startproject LearnHttpRunner
? ? ? ? ps:同理,如果指令不識別剑梳,使用httprunner startproject LearnHttpRunner
? ? ? ? 回自動化創(chuàng)建如下目錄和文件:
? ? ? ? ?api目錄:用于存放用例的最小單元(一般為正向用例)
? ? ? ? ?debugtalk.py文件:用戶定義python函數(shù)唆貌,進行相關處理
? ? ? ? ?reports目錄:用于存放測試報告
? ? ? ? ?testcases目錄:用于存放每個接口的用例(設計測試步驟和依賴)
? ? ? ? ?testsuite目錄:用于存放多個測試用例(來實現(xiàn)數(shù)據(jù)驅(qū)動&參數(shù)化)
? ? ? ? ?.env文件中,用于定義環(huán)境變量垢乙,可以在全局調(diào)用
? ? ? ? ?debugtalk.py:創(chuàng)建python代碼锨咙,加密簽證在這里做
? ? ? ? ?之后我們打開下載好的文件(文件下載到了你當前的文件類路徑)
? ? ? ? ?httprunner支持yml、json兩種格式文件追逮。
? ? ? ? ?以yml為例:
????????根據(jù)自己的測試信息進行對應項的輸入即可酪刀。
????????如果數(shù)據(jù)是form表單形式粹舵,將json改成data,對應修改請求頭當中的Content-Type骂倘。
? ? ?2.variables的使用
????????????可以通過定義base_url增加代碼的靈活性眼滤,request中的url不是http開頭的時候,會自動尋找base_url進行拼接历涝。
????????3.
????????4..evn文件的使用
????????????在.env文件中以變量名:變量值的形式創(chuàng)建環(huán)境變量诅需。
????????????使用方式:
????????????key:${ENV(變量名)}
????????5.debugtalk的使用
????????????調(diào)用方法:${方法}
3.運行測試
使用hrun執(zhí)行測試:hrun 文件路徑+文件名
ps:httprunner3請使用: httprunner run 文件路徑+文件名
4.測試報告
執(zhí)行成功后,查看打印信息荧库,看報告生成的路徑堰塌,進行查看。
可以在執(zhí)行的時候在命令后面加上--log-level debug來調(diào)整日志的等級
詳細日志中有詳細的請求信息喝響應結果等等分衫。
可以查看源碼场刑,進行更多拓展,testcases中可以進行測試步驟的定義,需要有登錄信息的接口可以在步驟中說明在登錄后執(zhí)行蚪战,testsuites中可以進行用力的參數(shù)化摇邦,也可以在文件中對參數(shù)說明后在testsuites下面引用,或者在debugtalk.py中定義函數(shù)動態(tài)生成參數(shù)屎勘,在testsuites下引用。
在根目錄下創(chuàng)建函數(shù)居扒,可以通過引入httprunner概漱,自定義函數(shù),通過模塊來執(zhí)行測試喜喂,就可以不通過命令行執(zhí)行了瓤摧。