本文章內容參考了白夜黑羽教python的教程,出處為http://www.python3.vip/doc/tutorial/selenium/01/
感謝上方大佬!
提前准備的環境及資源:
2.需求文檔:點擊這里訪問
3.基於RobotFrameWork的黑羽robot:點擊這里訪問
4.安裝RobotFramework,執行 :pip install robotframework
即可
5.pycharm
環境OR資源介紹:
1.下載解壓bysms.zip后,進入bysms目錄,雙擊運行runserver.bat 即可啟動 白月SMS系統。 出現下面這樣的信息
注意:該窗口不能關閉,否則web 系統就會停止
然后可以瀏覽器訪問 登錄頁面 http://127.0.0.1/mgr/sign.html
輸入用戶名 :byhy 密碼: 88888888
3.黑羽robot
解壓下載的zip包,會產生一個名為 autotest_hyrobot
的目錄, 這就是hyrobot的自動化項目目錄。
你修改該目錄的名字,比如我們要講解 自動化測試 白月SMS系統
, 就可以改名為 autotest_bysms
黑羽robot 項目目錄中包含
-
cases 目錄
里面存放 自動化測試用例代碼
-
cfg 目錄
里面存放 配置文件
-
hyrobot 目錄
里面存放 hyrobot庫 和 工具 代碼, 開發者不需要 修改里面的內容
-
lib 目錄
里面存放 自動化測試用例 使用的 庫 存放的目錄
-
run.bat
運行 黑羽robot, 執行自動化測試 的 腳本
環境的使用:
1.可在pycharm中打開黑羽robot目錄,依據用例文檔編寫測試用例
圖中,每一個用例都對應一個類,不用用例名做類名,因為用例名中可能包含特殊符號
右鍵點擊.py文件,有Synchronize文件的選項,點擊后就會出現同名的.robot文件,這個其實就是轉換為robotframework語法后的文件,
2.用例設計完成后,在Pycharm中的Terminal或cmd窗口中運行run.bat(直接輸入run.bat回車即可)
然后會生成測試結果和測試報告(在Lib文件夾中)
rf.bat是直接用robotframework運行的,如果沒有了解過,還是只用run.bat就好了
3.這里插播介紹幾個黑羽robot的內置函數:
<一.划分測試步驟>
(1).在用例的.py文件第一行導入黑羽內置函數包:from hyrobot.common import *
(2).在每個需要表明步驟的位置寫: STEP(1,'登錄網站')
如圖:
如此,就可以在生成的結果中看到具體是進行到哪一個步驟時出現了問題。如下圖:
<二.設置檢查點>
(1).設計測試用例的時候,如果用例的測試未通過,不能退出測試,下圖的寫法是錯誤的
(2).正確的寫法,用CHECK_POINT()函數,傳入兩個參數,第一個是檢查點的描述,第二個是具體的檢查方法
<三.打印可以在log中或報告中顯示的內容>
(1).用例中寫的print內容是不會在log或report中顯示的,只會在pycharm終端顯示
(2).如果想讓某些內容在log或report中顯示,把print換成INFO()即可
4.測試用例中重復的操作,比如打開瀏覽器,登錄的操作,可以做成一個文件放在lib文件夾內
每次要使用的時候,在用例.py文件的第一行導入這個文件即可,如from lib.webui import *
5.但每個用例執行時都要打開瀏覽器然后登錄,不如共享登錄環境,在此賬號下盡行各種操作,這就是共享數據
同一個環境下用例執行完畢后(數據共享完成后),還需要對環境進行初始化,清除干凈所用共享數據,來保證其他環境下用例的執行不會受到影響。
黑羽robot的初始化/清除(和robotframework一樣)支持 3種方式
- 單個用例的初始化、清除
- 整個用例文件的初始化、清除
- 整個用例目錄的初始化、清除
6.這里插播介紹幾個黑羽robot的內置函數:
<一.創建全局變量>
GSTORE['名字'] = 全局變量名
7.單個用例共享數據的初始化和清除
如圖上面的圖片↑,先在庫函數中准備好全局變量wd(包括在open_browser創建以及新建一個函數get_global_webdriver用來方便引用)
接着在用例中寫好共享數據的創建(setup)和清除(teardown)
圖中這個類中的函數的執行順序是setup-->其他函數-->teardown(teardown中包含了wd.quit()所以其他函數中就不用再寫quit了)
這樣,每一個用例(類)執行時,都進行了創建共享數據、執行用例、清除共享數據的過程
8.整個用例文件共享數據的初始化和清除
在定義的class之外,定義suite_setup()和suite_teardown()函數,相當於執行這套用例的時候,運行順序為:suite_setup-->其他類-->suite_teardown()
假如我在suite_setup和suite_teardown中分別設置了打開瀏覽器登錄賬號、退出瀏覽器,那么也就是說這兩個用例共享了數據。
9.整個用例目錄的初始化和清除(插播黑羽robot的一個內置文件)
比如有時候會出現整個目錄下的用例都需要共享數據環境,那么黑羽robot內置了一個文件,當文件命名為__st__.py時,這個文件所在的最近一層目錄中的用例文件,都會使用它里面定義的數據環境,如圖所示
那么說明管理員操作和葯品操作兩個用例文件共用了數據環境,執行順序如圖
10.挑選要執行的測試用例
有時候不需要全部的用例跑一遍,只需要測試其中一部分用例,那么有幾種挑選方法:
<一.根據名稱挑選>
如果名稱無規律,並且數量也很多,那么可以創建一個名字為args的參數文件,內容如下
一行一個參數,然后命令的話,敲 run -A args 就可以了
<二.根據標簽挑選>
標簽的創建:
①比如 force_tags = ['登錄功能','冒煙測試','UI測試']
放在class類中,那么這個類下的所有用例都會帶有此標簽。
②比如 force_tags = ['登錄功能','冒煙測試','UI測試']
放在一個.py文件中做全局變量,那么這個py文件中的所有用例都是帶有此標簽的
③比如 force_tags = ['登錄功能','冒煙測試','UI測試']
放在__st__.py文件中,那么對應所在的目錄下的所有.py文件中的所有用例都會帶有此標簽。
標簽的挑選:
11.指定關鍵測試用例
定義及重要性:如果本次測試中有關鍵測試用例沒有通過,整個測試就被視為測試不通過。
可以通過命令參數 --critical
或 --noncritical
后面加 標簽名稱 來指定哪些用例 是 關鍵用例 或者 非關鍵用例
12.代碼的debug方法
由於在這個robot框架下,如果代碼部分出現問題,不能直接用右鍵的debug來調試,因為當前的代碼是python代碼轉換成了robotframework格式的代碼,所以運行出錯去調試的時候不能直接調試python代碼。
在修改的過程中,如果不確定某行的代碼是否正確,想debug一下,那么需要進行一下配置
點擊如上圖所示的debug configurations,添加好代碼腳本的路徑(找到要調試的代碼文件)
接下來點擊“+”號,新建一個Python文件,可以命名為“DebugRun”
參數配置如下
Configuration中較為重要的是Module name和Working directory
Module name直接寫robot.run即可
Working directory寫文件的根目錄
OK后,再回到pycharm代碼頁面點擊debug,就相當於是cd到根目錄,運行python -m robot.run cases這個命令,然后代碼就會依次debug到斷點,最后根據到達斷點的數據返回情況判斷是哪里出現了異常。
--end--