Web UI自動化測試框架Seldom實戰 一
阿新 • • 發佈:2020-11-05
1、Seldom簡介
Seldom是基於selenium 和 unittest 的 Web UI自動化測試框架。
- 提供更加簡單API編寫自動化測試。
- 提供腳手架,快速生成自動化測試專案。
- 全域性啟動和關閉瀏覽器,減少瀏覽器的啟動次數。
- 支援用例引數化。
- 支援用例失敗/錯誤重跑。
- 定製化HTML測試報告,用例失敗/錯誤自動截圖。
- 支援XML測試報告
2、Seldom 安裝
目前已經上傳 pypi.org ,可以使用pip命令安裝。
> pip install seldom
如果你想隨時體驗最新的程式碼,可以使用下面的命令。
> pip install-U git+https://github.com/defnngj/seldom.git@master
2.3、如果需要對Seldeom進行二次開發,則可以克隆git專案下來進行二次開發
$ git clone https://github.com/SeldomQA/seldom.git
3、seldom建立專案
3.1、建立一個python檔案test_sample.py
。
import seldom class BaiduTest(seldom.TestCase): def test_case(self): """a simple test case """ self.open("https://www.baidu.com") self.type(id_="kw", text="seldom") self.click(css="#su") self.assertTitle("seldom_百度搜索") if __name__ == '__main__': seldom.main("test_sample.py")
3.2、seldom
提供了腳手架,可以快速的幫我們建立Web UI自動化專案。
> seldom --project mypro
4、seldon瀏覽器與驅動
4.1、在seldom中需要只需要修改一個配置即可設定瀏覽器。不僅支援瀏覽器,還支援Mobile web 模式,支援的phone和pad型別如下:
PHONE_LIST = [ 'iPhone 5', 'iPhone 6', 'iPhone 7', 'iPhone 8', 'iPhone 8 Plus', 'iPhone X', 'Pixel 2', 'Pixel XL', "Galaxy S5" ] PAD_LIST = ['iPad', 'iPad Pro']
在main()方法中通過browser引數設定不同的瀏覽器,預設為Chrome瀏覽器。
import seldom if __name__ == '__main__': seldom.main(browser="chrome") # chrome瀏覽器,預設值 seldom.main(browser="firefox") # firefox瀏覽器 seldom.main(browser="ie") # IE瀏覽器 seldom.main(browser="opera") # opera瀏覽器 seldom.main(browser="edge") # edge瀏覽器 seldom.main(browser="safari") # safari瀏覽器 seldom.main(browser="chrome_headless") # chrome瀏覽器headless模式 seldom.main(browser="firefox_headless") # Firefox瀏覽器headless模式 seldom.main(browser="iPhone 6") # iPhone 6 手機瀏覽器展示
4.2、開啟headless模式,Firefox和 Chrome瀏覽器支援headless
模式,即將瀏覽器置於後臺執行,這樣不會影響到我們在測試機上完成其他工作。
import seldom
from seldom import ChromeConfig
#只需要將 ChromeConfig 類中的 headless 設定為True
即可, Firefox瀏覽器配置方法類似。
if __name__ == '__main__':
ChromeConfig.headless = True
seldom.main(browser="chrome")
4.3、開放Chrome瀏覽器配置能力,seldom為了更加方便的使用驅動,遮蔽了瀏覽器的配置,但架不住部分個性化的需求,比如禁用瀏覽器外掛,設定瀏覽器代理等。所以,通過ChromeConfig類的引數來開放這些能力。
例如,瀏覽器忽略無效證書的問題。
import seldom from seldom import ChromeConfig from selenium.webdriver import ChromeOptions if __name__ == '__main__': chrome_options = ChromeOptions() chrome_options.add_argument('--ignore-certificate-errors') # 忽略無效證書的問題 ChromeConfig.options = chrome_options seldom.main(browser="chrome")
4.4、支援遠端節點(Selenium Grid)
import seldom from seldom import ChromeConfig # 需要先下載selenium-server,然後啟動服務java -jar selenium-server-standalone-3.141.59.jar if __name__ == '__main__': ChromeConfig.command_executor = "http://127.0.0.1:4444/wd/hub" seldom.main(browser="chrome")
5、seldommain() 方法
main()
方法是seldom執行測試的入口, 很多重要的配置都是通過這個方法完成。
import seldom """ path : 指定測試目錄或檔案。 browser : 指定測試瀏覽器,預設Chrome。 report : 自定義測試報告的名稱,預設格式為2020_04_04_11_55_20_result.html title : 指定測試報告標題。 description : 指定測試報告描述。 debug : debug模式,設定為True不生成測試HTML測試,預設為False。 rerun : 設定失敗重新執行次數,預設為 0。 save_last_run : 設定只儲存最後一次的結果,預設為False。 timeout : 設定超時時間,預設10秒 xmlrunner: 設定為 True ,生成XML格式的報告。不支援同時生成HTML和 XML 兩種格式的報告。 """ if __name__ == '__main__': seldom.main(path="./", browser="chrome", report=None, title="百度測試用例", description="測試環境:chrome", debug=False, rerun=0, save_last_run=False, timeout=None, xmlrunner=False )