unittest 多个测试文件只开一次浏览器_接口测试平台代码实现75: 多接口用例15
????根據我們上一節最后的投票。?引入unittest框架 碾壓了第一種。其實我個人也偏向這個。因為我嘗試過很多,但是唯獨沒有引入unittest在接口測試平臺中。所以借此機會,也想挑戰一下,漲點經驗。
????請注意:目前博主是完全完全沒這個設計和實現過的狀態,和正在看此文章的你一樣,讓我們感受最原始的設計思路。
????首先我們打開views.py,找到我們寫了個開頭的這個實際請求的函數:
?既然要引入unittest,那我們這塊可能要想到,這么一個測試類,是否應該放在其他文件呢??我覺得可以試一試一會。
????這里我們從數據庫中先拿到所有步驟,然后這些步驟我們利用循環,讓其自動生成這個測試類的 子函數。然后運行這個unittest測試類即可。
????這個過程如果不經過講解,很難看明白來龍去脈。
我們先新建一個其他文件,作為unittest的主要運行文件。而當前的這個views.py 就會履行它真正的作為視圖邏輯的交互責任,就是整理過濾前端請求數據,傳遞給業務層。
????我們在貼著views.py的位置 創建一個新的文件叫: run_case.py:
好了我們繼續,用過unittest的人都知道我下面的寫法吧:
????非常簡單的一個unittest demo。
我們現在就是要想辦法,調用這個文件,啟動這個unittest
我們現在來想個問題,就是我要怎么調用,并且,還能帶著參數-一群步驟
那么現在看這個寫法,應該沒法帶參數,甚至沒法調用。因為我們要引入httptestrunner,所以我們正好可以利用起來,具體操作如下:
首先下載并導入這個HTMLTestRunner 文件。
然后代碼如下:
這時候我們運行這個run的話,就會執行這個用例,并且生成xxx.html測試報告。
不過我們不在這里運行,而是選擇去views.py中調用這個run()函數來運行。
所以這個views.py寫法如下:
然后我們重啟服務 刷新頁面,點擊運行按鈕 看看效果:
可以看到 成功運行了,并且生成了測試報告:
只是這個報告目前 位置我們還沒有設計好,所以默認生成在這了。
右鍵這個html,選擇open in broswer,選擇你的瀏覽器 看看效果:
大家請忽略報告中的一些文案~ 后續我會放上純凈版的這個HTMLTestRunner.py文件。
然后就是我們本節的結尾,就是給這個報告放在指定位置:
在templates包下新建一個名為Reports的包,用來存放我們的測試報告:
然后別忘了刪除我們剛剛調試生成的那個報告,記得及時清理這些垃圾。
然后在我們的run函數中,改寫這個filename:
然后我們重啟服務 再試一次:
發現這次報告生成在了 應該出現的位置。
最后我們順便再做一下這個查看報告的功能吧,早做出來也早方便我們調試。
打開P_cases.html,找到這個查看報告按鈕,給它外面套一層a標簽。超鏈接按圖中所寫:
然后我們去寫好對應的urls.py:
最后去寫好對應的views.py中的函數:
我們這時候要思考一個問題,我們怎么來讓這些生成的報告文件 能與?用例關聯起來而不至于錯亂呢?
最簡單的辦法,我們的html文件就干脆用大用例id來命名即可。所以我們代碼如下:
如上圖,我直接返回了這個html。
現在我們需要的就是讓我們unittest自動生成的這些報告都以大用例的id來命名吧,這也就說了回來,我們一開始要對unittest的run函數傳遞數據,除了各種小步驟之外,還要傳遞大數據的id name等。以便生成清晰的報告。
所以這么改 Run_Case函數:
然后去unittest的文件的run函數接收好這倆個參數:
然后再想辦法 拼接到生成的報告文件的名稱中:
好,我們重啟服務,刷新頁面再測試:
測試結果顯示,這個大用例id為1的 報告生成成功了!
然后我們再點擊 頁面上的查看報告按鈕,看看能否展示:
發現也可以正常展示了!
好了本節內容到此為止。
附上這個文件:
鏈接: https://pan.baidu.com/s/1culicHiLfXf29O5sAndrMg? 密碼: 地址有誤,請在下節中獲取正確的
大家不要忘記分享,點贊,在看 這些啊~?
總結
以上是生活随笔為你收集整理的unittest 多个测试文件只开一次浏览器_接口测试平台代码实现75: 多接口用例15的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: get post请求区别_LoadRun
- 下一篇: vc++64位系统下long的长度为4个