參考文檔:https://www.kancloud.cn/lamecho/pyswat/330991
1、Pyswat簡介
Pyswat(python-selenium-web-auto-test)是基於selenium實現web頁面UI自動化操作的,主要模塊在於錄製和回放,錄製的不是腳本命令而是操作執行的步驟,excel對於操作步驟清晰可見同時便於修改維護,錄製時一方面借用selenium,另一方面利用pythonHook記錄用例的鼠標、鍵盤操作。
框架也封裝了一些方法:
drag(拖拽,區別於selenium的軟拖拽,完全是根據傳入兩個元素的位置做了物理拖拽,效果更理想)
check(頁面內容檢查,傳入你想檢查的內容,回放時會在日誌中記錄查找結果統計)
scroll(滾動屏幕,支持底部,頂部滾動,滾動到元素位置,流暢滾動等)
uploadFile(傳入文件路徑即可,支持多個文件同時上傳,對於檢查文件不存在等異常會自動關閉選擇文件)
2、Pyswat框架環境搭建
1)Python2.7
2)selenium庫
pip2 install selenium
3)xlrd,xlwt庫:用於操作excel表格
pip2 install xlrd
pip2 install xlwt
4)ConfigParser庫:用於讀寫Enviroment.ini配置文件
pip2 install ConfigParser
5)numpy、matplotlib庫 用於生成運行結果柱狀圖
pip2 install numpy
pip2 install matplotlib
6)pyHook庫:用於python鉤子,記錄鼠標鍵盤操作,位數要和python位數版本一致
7)pywin32:python下操作win32api,位數要和python位數版本一致
8)bs4庫
pip2 install beautifulsoup4
9)Pillow庫
pip2 install Pillow
全部安裝完成後,pip2 list查看各庫的版本
3、Pyswat框架文件結構
- modual文件夾:程序運行依賴的模塊
- pic:保存程序運行時報錯的截圖
- 2excel.py:生成excel案列的python程序。運行時確保存在“temp_case.txt”存在,名稱可在配置文件中任意指定
- webs_record.py:錄製程序
- webs_replay.py:回放程序
- 雪球網演示案例.xls:回放執行案例
- res.png:運行結果的柱狀圖
- run.log:運行時的日誌文件
- temp_case.txt:運行webs_record.py生成的錄製原始文件,用2excel.py轉換爲excel格式
- temp_case.xls轉換後的案例文件
- Enviroment.ini:配置pyswat框架運行環境
4、Enviroment.ini
使用pyswat前需要配置好Enviroment.ini各項參數:
- [record]:控制“webs_record.py”錄製程序的相關參數
- file = temp_case.txt:錄製完成後生成的原始記錄的文件名稱
- url = https://xueqiu.com:錄製網址url鏈接
- browser = Chrome:錄製使用瀏覽器,目前支持Chrome,Firefox,IE。需要selenium運行環境中存在對應各個瀏覽器的driver
- ex-record = 1:錄製增強模式,默認打開。0是關閉(建議打開)
- [2excel]:控制“2excel.py”程序轉換案例程序的相關參數
- sheet = temp_case:生成案例的sheet名稱,可自定義
- file = temp_case.xls:生成案例的excel文檔名稱,可自定義
- smart_mode = 1:轉化模式,目前默認爲1,自動轉換鍵盤輸入內容。目前pyswat框架運行只識別該模式下的案例
- [replay]:控制“webs_replay.py”回放程序的相關參數
- file = C:\Users\lamecho\Desktop\pyswat_xueqiu_show\雪球網演示案例.xls:運行案例的完整路徑
- case = login,send_message(1),pay_message,new_stock,修改個人信息,退出登錄:運行案例的case名稱及運行次數(case名稱是對應案例excel表中sheet名)
- url = https://xueqiu.com:回放時打開的web網址
- browser = Chorme:錄製使用瀏覽器,目前支持Chrome,Firefox,IE。需要selenium運行環境中存在對應各個瀏覽器的driver
- think_time = 0:思考時間配置,0表示不使用錄製的思考時間;1表示回放時執行思考時間
- wait_time = 3:各個case切換時的等待時間,默認3秒
- retry = 0:當案例回放失敗後是否執行重試,0不打開重試功能,1執行重試
- [parameters]:保存案例中指定random方式生成的參數名稱及其內容
- p1 = message-0005:當存在多個參數時,會依次保存
- [parameters_seq]:保存案例中指定的sequence方式生成的參數及其內容。可修改參數內容,運行時確保案例中調用的參數存在於配置文件中。
- p1 = message-0004,message-0005,message-0002,message-0003,message-0001:當存在多個參數時,會依次保存。可修改參數內容,運行時確保案例中調用的參數存在於配置文件中。注意分隔符號採用英文逗號