Docker CI: 配置 RF 以 headless 方式啓動瀏覽器
問題:後期要通過 Jenkins 集成,所以配置 RF 以 headless 方式啓動瀏覽器
一、概述
基於 Docker 集成 CI 環境。涉及技術:Linux(Ubuntu 14.04), Docker, Jenkins, Git/Gitlab, Web/Httpbin, Python/Pytest, UI/Selenium, Robotframework, Grid Server, Appium 等。
二、headless 啓動方式
1. 思路
- Set Environment Variable U_WEB_DEBUG FALSE # TRUE時,瀏覽器可見
- 通過 Selenium webdriver 的 ChromeOptions() 參數,配置 headless 模式
- headless 方式啓動瀏覽器
2. 關鍵字:GUI_Open_Broswer
GUI_Open_Broswer
[Arguments] ${broswer}=%{U_CUSTOME_BROSWER_TYPE}
[Documentation] | 關鍵字 | 打開瀏覽器 |
... | 功能 | 打開瀏覽器並檢查title |
[Timeout] 5 minutes
#Author: Allan
log ${broswer}
Close All Browsers
${web_domain} Set Variable If '%{U_WEB_TESTING_TPYE}'=='offline' %{G_PROD_DOMAIN_OFFLINE} %{G_PROD_DOMAIN_ONLINE}
# 配置 headless 啓動方式
${chrome_options} Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${chrome_options} add_argument headless
Call Method ${chrome_options} add_argument disable-gpu
${options} Run Keyword If '%{U_WEB_DEBUG}'=='FALSE' Call Method ${chrome_options} to_capabilities
... ELSE Set Variable None
# 打開首頁
Open Browser ${web_domain} browser=${broswer} desired_capabilities=${options}
Run Keyword If '%{G_SYSTEM_PLATFORM}'=='Windows' or '%{U_WEB_DEBUG}'=='TRUE' Maximize Browser Window
... ELSE Set Window Size 1680 1050
Capture Page Screenshot