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