本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

此项目包含一个安装了Robot Framework的容器镜像。该镜像还包含Firefox、Chrome、Microsoft Edge浏览器,以及Robot Framework的Selenium和Playwright/RFBrowser库。
本镜像的版本控制遵循Robot Framework的版本规范:
使用的组件版本如下:
根据Selenium2Library官方GitHub项目说明,从3.0版本开始,Selenium2Library已重命名为SeleniumLibrary,该项目主要用于帮助过渡。Selenium2Library 3.0.0是最后一个版本,新版本请关注SeleniumLibrary项目。
可使用以下命令运行容器:
docker run \ -v <本地报告文件夹路径>:/opt/robotframework/reports:Z \ -v <本地测试套件文件夹路径>:/opt/robotframework/tests:Z \ ppodgorsek/robot-framework:<版本>
浏览器可轻松切换。建议在Robot变量中定义${BROWSER} %{BROWSER},并在测试用例中使用${BROWSER}。这样如需更改浏览器,只需在一个地方设置。
运行测试时,只需在命令中添加-e BROWSER=chrome、-e BROWSER=firefox或-e BROWSER=edge。
注意:edge可与Selenium配合使用,但不适用于Browser Library,因为后者目前没有简单的机制安装额外浏览器。Browser库依赖的Playwright在非Ubuntu/Debian的Linux平台上无法安装额外浏览器,建议使用Chromium测试Microsoft Edge场景,除非需要Edge特定功能。
可通过修改以下环境变量定义浏览器运行的虚拟屏幕设置:
SCREEN_COLOUR_DEPTH(默认:24)SCREEN_HEIGHT(默认:1080)SCREEN_WIDTH(默认:1920)可使用不同目录读取测试和生成报告,这在复杂测试文件结构时很有用。要修改默认目录,设置以下环境变量:
ROBOT_REPORTS_DIR(默认:/opt/robotframework/reports)ROBOT_TESTS_DIR(默认:/opt/robotframework/tests)可并行执行测试套件。只需定义ROBOT_THREADS环境变量,例如:
docker run \ -e ROBOT_THREADS=4 \ ppodgorsek/robot-framework:latest
默认情况下不启用并行化。
使用并行化时,可传递额外的pabot选项,如--testlevelsplit、--argumentfile、--ordering等。可通过PABOT_OPTIONS环境变量传递,例如:
docker run \ -e ROBOT_THREADS=4 \ -e PABOT_OPTIONS="--testlevelsplit" \ ppodgorsek/robot-framework:latest
RobotFramework支持许多选项,如--exclude、--variable、--loglevel等。可通过ROBOT_OPTIONS环境变量传递,例如:
docker run \ -e ROBOT_OPTIONS="--loglevel DEBUG" \ ppodgorsek/robot-framework:latest
本项目包含IMAP库,允许Robot Framework连接到邮件服务器。
建议使用支持IMAP连接的Docker Mailcatcher实例进行电子邮件测试,确保测试完成后邮件被丢弃。
本项目旨在允许测试在任何环境运行,有时可能在与本地或测试位置不同的时区。为解决此类问题,此镜像包含DateTimeTZ库。
要设置Docker镜像内使用的时区,可设置TZ环境变量:
docker run \ -e TZ=America/New_York \ ppodgorsek/robot-framework:latest
无需扩展镜像,可在运行时动态安装额外依赖。
只需挂载一个包含要通过pip安装的依赖列表的文本文件(默认情况下,如不挂载,该文件为空):
docker run \ -v <本地依赖文件路径>:/opt/robotframework/pip-requirements.txt:Z \ -v <本地测试套件文件夹路径>:/opt/robotframework/tests:Z \ ppodgorsek/robot-framework:latest
该文件必须遵循Pip官方要求文件格式。
以下是此类文件的示例内容:
robotframework-docker==1.4.2 rpa==1.50.0
对于大型依赖,仍建议扩展项目镜像并在其中添加依赖,以避免重复安装依赖延迟CI/CD流水线。
通过将环境变量ROBOT_RERUN_FAILED设置为大于0的值,可重跑失败测试。所有失败测试的重跑将在无并行化情况下执行。
环境变量ROBOT_RERUN_FAILED中的数字表示最大重跑轮次。所有重跑轮次仅测试上一轮失败的用例。
报告文件会合并所有轮次的结果,最后一轮结果为最终结果。
ROBOT_RERUN_FAILED的默认值为0,即测试失败后不会重新执行。
docker run \ -e ROBOT_RERUN_FAILED=1 \ ppodgorsek/robot-framework:latest
默认情况下,容器隐式使用--user=1000:1000运行,请记得相应调整命令行设置,例如:
docker run \ --user=1001:1001 \ ppodgorsek/robot-framework:latest
请记住,该UID/GID应被允许访问挂载的卷,以便读取测试套件和写入输出。
此外,可依靠用户命名空间进一步增强安全性。官方容器文档中有详细说明:
确保容器无法对主机执行不必要的更改是良好的安全实践。在这方面,Podman可能领先于Docker,因为它不依赖root守护进程运行容器。
Azure DevOps提供Docker@2任务,但仅支持有限命令,因此需要使用script任务:
- job: FunctionalRegressionTests displayName: Robot Framework测试 steps: - script: | set -x mkdir -p $(Build.Repository.LocalPath)/robot-framework-reports chmod -R ugo+rwx $(Build.Repository.LocalPath)/robot-framework-reports # ROBOT_OPTIONS用于生成特定输出文件,可用于在Azure DevOps流水线中发布测试结果 # 记得将${{ parameters.robotFrameworkFolder }}替换为仓库中的正确文件夹名称 docker run --rm \ --shm-size=1g \ -v $(Build.Repository.LocalPath)/robot-framework-reports:/opt/robotframework/reports:Z \ -v $(Build.Repository.LocalPath)/${{ parameters.robotFrameworkFolder }}:/opt/robotframework/tests:Z \ -e ROBOT_OPTIONS="-x outputxunit.xml" \ -t docker.io/ppodgorsek/robot-framework:latest displayName: 运行Robot Framework测试 - task: PublishTestResults@2 condition: always() displayName: 发布Robot Framework测试结果 inputs: testResultsFormat: 'JUnit' testResultsFiles: '**/outputxunit.xml' searchFolder: '$(Build.Repository.LocalPath)/robot-framework-reports' failTaskOnFailedTests: true failTaskOnFailureToPublishResults: true failTaskOnMissingResultsFile: true
可直接通过shell命令在Jenkins流水线中运行项目:
pipeline { agent any stages { stage('功能回归测试') { steps { sh "docker run --shm-size=1g -e BROWSER=firefox -v $WORKSPACE/robot-tests:/opt/robotframework/tests:Z -v $WORKSPACE/robot-reports:/opt/robotframework/reports:Z ppodgorsek/robot-framework:latest" } } } }
流水线阶段也可依赖Docker代理,如下例所示:
pipeline { agent none stages { stage('功能回归测试') { agent { docker { image 'ppodgorsek/robot-framework:latest' args '--shm-size=1g -u root' } } environment { BROWSER = 'firefox' ROBOT_TESTS_DIR = "$WORKSPACE/robot-tests" ROBOT_REPORTS_DIR = "$WORKSPACE/robot-reports" } steps { sh ''' /opt/robotframework/bin/run-tests-in-virtual-screen.sh ''' } } } }
在使用持续集成工具时,定义测试运行ID(如构建号或分支名称)有助于避免覆盖连续执行报告。
为此引入了ROBOT_TEST_RUN_ID变量:
${ROBOT_REPORTS_DIR}/${ROBOT_REPORTS_DIR}/${ROBOT_TEST_RUN_ID}/可在执行时传递,例如:
docker run \ -e ROBOT_TEST_RUN_ID="feature/branch-name" \ ppodgorsek/robot-framework:latest
默认情况下,测试运行ID为空。
要将测试运行报告上传到S3桶,需定义以下环境变量:
docker run \ -e AWS_ACCESS_KEY_ID=<您的AWS密钥> \ -e AWS_SECRET_ACCESS_KEY=<您的AWS密钥 secret> \ -e AWS_DEFAULT_REGION=<您的AWS区域,例如 eu-central-1> \ -e AWS_BUCKET_NAME=<您的S3桶名称> \ ppodgorsek/robot-framework:latest
仍有疑问?test/文件夹中已准备简单测试,可使用以下命令运行:
# 使用Chromium docker run \ -v `pwd`/reports:/opt/robotframework/reports:Z \ -v `pwd`/test:/opt/robotframework/tests:Z \ -e BROWSER=chrome \ ppodgorsek/robot-framework:latest # 使用Firefox docker run \ -v `pwd`/reports:/opt/robotframework/reports:Z \ -v `pwd`/test:/opt/robotframework/tests:Z \ -e BROWSER=firefox \ ppodgorsek/robot-framework:latest
对于使用PowerShell的Windows用户,命令略有不同:
# 使用Chromium docker run \ -v ${PWD}/reports:/opt/robotframework/reports:Z \ -v ${PWD}/test:/opt/robotframework/tests:Z \ -e BROWSER=chrome \ ppodgorsek/robot-framework:latest # 使用Firefox docker run \ -v ${PWD}/reports:/opt/robotframework/reports:Z \ -v ${PWD}/test:/opt/robotframework/tests:Z \ -e BROWSER=firefox \ ppodgorsek/robot-framework:latest
测试结果截图将保存在reports/文件夹中。
Chrome驱动可能因Docker容器中/dev/shm大小不足而崩溃:
UnknownError: session deleted because of page crash
这是Chromium的已知bug。
要避免此错误,请在启动容器时添加以下参数修改shm大小:--shm-size=1g(或其他更适合您测试的大小)
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429