拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Robot Framework安装教程:从零搭建Python自动化测试环境

Robot Framework安装教程:从零搭建Python自动化测试环境

自动化测试框架Robot Framework安装教程,超详细!

做测试的同学应该都听过Robot Framework的大名。这个基于Python的开源自动化测试框架,这几年在接口测试、UI测试、RPA流程自动化这些领域越来越常见,不少公司的自动化测试体系里都有它的位置。我最早接触它是2018年,那时候Selenium用得多,但碰上需要同时管理多个测试场景、又要让团队里不写代码的同事也能上手维护用例,Robot Framework的关键字驱动设计就派上了大用场——测试用例用自然语言描述,底层关键字用Python封装,整个团队可以分角色协作,用不着人人都啃代码。

这个框架能解决什么问题?说白了,它把“测试逻辑”和“测试执行细节”做了分离。普通业务人员能看懂用例流程,测试开发可以把复杂操作封装成关键字,等到跑回归的时候,一条命令把所有用例串起来,自动出报告。你不需要自己有很深的编程基础,也不需要从零搭一套测试平台,装好环境就能开始写用例。

这篇教程适合谁看?零基础想入行自动化测试的新人,正在准备把Robot Framework引入团队但卡在环境搭建这一步的测试工程师,还有那些跟着教程装到一半发现报错、去网上搜半天也没找到对应解决方法的同学。我会尽量把每一步为什么这么做、容易踩哪些坑都讲清楚,最大程度帮你省掉试错时间。

1. Robot Framework安装前,先把这些概念理清楚

1.1 框架本身、库、工具之间的关系

先纠正一个常见的误区。很多人以为装完Robot Framework就能做Web自动化、接口自动化,结果装完写用例时发现没有对应的关键字。这是因为Robot Framework本身只是一个执行引擎,它负责解析用例文件、调度测试流程、生成日志报告,但具体能干哪些事,取决于你装了哪些库(Library)。

画个不太严谨但好理解的类比:Robot Framework就像一台安装了操作系统的电脑,Pytho是底层硬件驱动,而SeleniumLibrary、RequestsLibrary这些库就是一个个应用软件。你装个视频播放器就能看电影,装个浏览器才能上网,全看你需要什么功能。

所以完整的安装链路至少包含三层:

  • Python环境:提供基础运行环境,也是pip包管理器的载体
  • Robot Framework本体:核心执行引擎,提供基础关键字和测试调度能力
  • 各类扩展库:比如SeleniumLibrary负责Web UI操作,RequestsLibrary负责接口请求,AppiumLibrary负责移动端测试

1.2 版本选型的基本思路

安装之前还有一个关键问题:版本怎么选?Robot Framework目前有两个大版本分支,5.x和7.x,中间隔了好几个版本,API和功能有所差异。早期教程大量基于3.x、4.x,如果你照搬那些内容,在新版本上很可能会跑出过时警告甚至直接报错。

我的建议是:新装环境直接上最新的稳定版。你不需要关心当前最新版具体是多少,pip安装时直接装,装出来的就是当前的最新稳定版。如果你有历史项目要维护,再用虚拟环境单独把老版本钉住,这个后面细说。

另外要注意,Robot Framework依赖的Python版本有最低要求。新版本至少需要Python 3.8以上,太老的Python版本即使能装也是各种不兼容,与其到处找兼容方案,不如直接把Python升上去,一劳永逸。

2. 环境准备:Python和虚拟环境,一个都不能少

2.1 Windows下Python安装的细节

很多初学者装Python犯的错误是:官网下载安装包之后一路点“Next”,完全没注意Add Python to PATH这个选项。如果没勾选,安装完成后在命令行里敲python大概率提示“不是内部或外部命令”。解决办法有两种:

一种是把Python安装目录和Scripts子目录手动加到系统环境变量PATH里。另一种更推荐:卸载重装,重新走一遍安装向导,这次一定记得勾选Add Python to PATH。别嫌麻烦,这个选项保证后续所有命令都能直接在命令行里用,省掉很多无谓排查。

安装过程还有一个小技巧:在安装向导里有一个Customize installation入口,进去之后把Install for all users选上,然后把安装路径改成简单的目录,比如D:\Python\。为什么要这样?因为默认路径在用户目录下,经常出现权限问题,而且路径里带用户名和空格的情况容易让某些底层库编译时出问题。

装完验证方法很简单,打开命令行输入:

python --version pip --version

能正常输出版本号,说明环境OK。如果提示python不是命令,再检查一遍PATH;如果提示pip不是命令,用python -m pip --version代替验证。

2.2 macOS和Linux环境

macOS自带的Python很老,不要直接用它,建议通过Homebrew安装新版。Linux发行版比如Ubuntu也自带Python 3,但很多系统工具依赖自带Python,不要随便卸载,正确做法是用apt安装python3-pip,或者用venv创建独立环境。

# Ubuntu / Debian sudo apt update sudo apt install python3 python3-pip -y

macOS用户更推荐用brew install python,装出来自带pip。

2.3 为什么我强烈建议新建虚拟环境

这是整篇教程里我最想强调的一点。很多读者直接pip install robotframework全局安装,短期看确实快,但后期维护是真头疼。

虚拟环境就是给每个项目单独隔离一套Python环境,各项目依赖互不干扰。比如A项目用Robot Framework 5.0,B项目用7.0,全局装的话两个版本冲突,但虚拟环境下各用各的,井水不犯河水。

创建方式很简单,Python 3.3以上自带venv模块:

# Windows python -m venv venv venv\Scripts\activate # macOS / Linux python3 -m venv venv source venv/bin/activate

命令行前面出现(venv)前缀,就说明已经进入虚拟环境了。后面所有pip安装都在这环境下进行,不会污染全局。这个习惯养成了,你后面管理多个自动化项目会少掉很多麻烦。

2.4 国内环境的镜像加速

如果你在国内,直接pip install大概率会遇到下载超时或速度极慢的问题。这不是你的操作有问题,而是默认源在国外。解决办法是换用国内镜像源,比如清华、阿里云的PyPI镜像。

一次性使用:

pip install robotframework -i https://pypi.tuna.tsinghua.edu.cn/simple

永久配置,在用户目录下创建pip.ini(Windows)或pip.conf(Linux/macOS)文件,写上:

[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn

配好之后,每次pip安装默认走镜像,速度能快好几倍。注意trusted-host这一行是配合HTTPS证书校验的,如果你用的是HTTP源才需要,用HTTPS源可以不加,但加上也无妨。

3. Robot Framework安装:用pip就对了

3.1 核心安装命令

进入虚拟环境,执行:

pip install robotframework

装完之后验证一下,命令行执行:

robot --version

能看到类似Robot Framework 7.x.x (Python 3.x.x on xxx)的输出,说明核心引擎装好了。如果你用的测试用例还是旧的pybot、rebot命令格式,新版本已经改名为robot,注意这一点。

再执行:

python -m robot --version

如果输出一致,说明模块调用方式也没问题。这两条验证命令侧重点不同,robot --version验证的是命令入口,python -m robot --version验证的是模块导入链路,后面排查问题时用得着。

3.2 装最新版还是固定版本?

我之前带过一位新人,他按网上一篇文章装的是pip install robotframework==3.2.2,理由是那篇文章这么写的。结果做接口测试时,新版的RequestsLibrary要求Robot Framework 4.0以上,他又得去升级框架,中间还碰到一堆依赖冲突。

所以我的建议很简单:除非有明确的项目兼容性要求,否则直接装最新版。最新版意味着所有依赖库都同步适配过,社区支持和文档也最全。锁定旧版本之前,先确认你需要的库和工具支持那个版本,别装完再折腾。

3.3 安装界面工具和依赖库

这里补充一个很多教程忽略的知识点:Robot Framework以前的版本自带RIDE(独立的用例编辑界面),但新版本已经把RIDE分离出去,变成了独立的项目。RIDE的安装是这样的:

pip install robotframework-ride

装完之后Windows下直接在命令行输入ride.py启动。但说句实话,RIDE目前更新速度跟不上框架本身,体验也一般,我身边大部分人已经转用VS Code或PyCharm加插件的方式,所以如果你不是特别喜欢图形化界面,RIDE可以跳过不装。

接下来是最关键的库安装:

# Web UI自动化 pip install robotframework-seleniumlibrary # 接口测试 pip install robotframework-requests # 数据驱动 pip install robotframework-datadriver # 内置断言增强 pip install robotframework-assertions

装完后同样验证一下,比如进入Python交互模式:

from SeleniumLibrary import SeleniumLibrary print("SeleniumLibrary OK")

能正常导入,说明库和框架能对接上。如果这里报错,多数情况是版本不匹配导致的,后面排查章节细说。

4. 编辑器选择与配置:怎么写用例更顺手?

4.1 VS Code方案

装完框架和库,你得有个像样的编辑环境。大多数人现在用的是VS Code,配合Robot Framework扩展,写用例时有高亮、自动补全、语法检查,直接按F5还能跑用例。安装扩展直接在VS Code扩展商店里搜“Robot Framework”,选下载量最多的那个即可。

装完扩展后,建议在用户设置里加两行:

{ "robot.codeFormatter": "robotframework.tidy", "robot.languageServer": "robotframework" }

这样既有格式化工具,又能让语言服务器生效,写用例时能自动识别关键字是否存在。如果编辑器里对关键字不认识、放弃标红,优先检查这个语言服务器配置。

4.2 PyCharm方案

如果你已经用PyCharm做Python开发,那就别额外折腾VS Code了。安装方式有两种:一种是打开IDEA插件市场,搜索“Robot Framework Support”直接安装;另一种是运行命令自动安装:

pip install robotframework-intellij

不过PyCharm的Robot Framework插件质量这么多年一直一般,胜在托了PyCharm的福,Python后端调试体验好。两个编辑器选一个就行,哪个顺手用哪个。

4.3 新建一个可运行的最小项目

既然环境搭好了,立刻动手验证能不能跑通一个最简用例。找一个目录,新建test_demo.robot文件,内容如下:

*** Settings *** Library Collections *** Test Cases *** 第一个测试用例 ${dict} Create Dictionary name=Robot level=framwork Dictionary Should Contain Key ${dict} name Log ${dict}

然后命令行执行:

robot test_demo.robot

如果一切正常,控制台会显示测试通过,同时生成output.xml、log.html、report.html三个文件。log.html是详细日志,report.html是汇总报告,这是Robot Framework最吸引人的输出产物,直接用浏览器打开就能看。

这里提醒一下:跑完用例务必看一眼生成的文件名和样式。不同版本的Robot Framework生成报告格式会有调整,你至少要知道去哪看结果,后面开发用例时排查问题全靠它们。

5. 常用自动化场景库安装指南

5.1 Web UI自动化:SeleniumLibrary

Web自动化正在做的同学,这个库是必装项。SeleniumLibrary是Robot Framework和Selenium之间的桥梁,底层是Selenium WebDriver,但全部操作封装成了关键字,比如Open Browser、Click Element、Input Text这些,不用写Java或Python代码。

安装:

pip install robotframework-seleniumlibrary

但只装这个库还不够,你还得装浏览器驱动。Chrome浏览器需要对应版本的ChromeDriver,Firefox对应geckodriver。装驱动最省心的方式是:

pip install webdrivermanager webdrivermanager chrome

它会把匹配你本机浏览器版本的驱动下载并配置到PATH里。很多人卡在这一步,pip装库很快,结果跑用例时浏览器压根不弹出,报WebDriverException,十有八九是驱动没装或版本不匹配。

写过一条最简单的Web用例试试:

*** Settings *** Library SeleniumLibrary *** Test Cases *** 打开百度搜索 Open Browser https://www.baidu.com chrome Input Text id=kw Robot Framework Click Button id=su Sleep 2s Close Browser

能跑通就说明整个链路是通的。如果报SessionNotCreatedException,去核对Chrome版本和ChromeDriver版本是否一致,这是该场景下最高频的报错。

5.2 接口自动化:RequestsLibrary

接口测试现在几乎每个项目都离不开。RequestsLibrary把Python的requests库封装成了Robot Framework关键字,比如GET、POST、DELETE这些,配合JSON校验就能快速编写接口用例。

安装:

pip install robotframework-requests

简单示范:

*** Settings *** Library RequestsLibrary *** Test Cases *** 发送GET请求 Create Session api https://jsonplaceholder.typicode.com ${response} GET On Session api /todos/1 Should Be Equal As Integers ${response.status_code} 200 Log ${response.json()}

注意Create Session这一步很多人忽略,它的作用不仅仅是设置Base URL,还包括会话保持、超时配置、Cookie管理。接口用例多了之后,推荐把所有公共的Session创建放到一个专门的资源文件里,用例直接引用,避免每个文件都傻乎乎重复这段设置。

5.3 数据库操作、SSH和更多扩展

自动化测试往往需要操作测试数据,所以数据库相关的库也常驻。Robot Framework官方维护的DatabaseLibrary支持连接MySQL、Oracle、SQL Server等,底层依赖Python的数据库驱动。安装:

pip install robotframework-databaselibrary pip install pymysql

如果涉及到需要登录远程服务器执行命令的场景,还能装SSHLibrary:

pip install robotframework-sshlibrary

它能实现通过SSH执行Linux命令、传输文件等操作,在部署验证、环境巡检类自动化里很好用。但注意这里的用法,Robot Framework的SSHLibrary只是帮你连远程主机,前提是你得有账号和权限,别拿这个库去搞不合规的操作。

5.4 还有哪些场景可以扩展?

Robot Framework的生态远不止上面这几个库。官方维护了一个Library列表,社区也贡献了一大堆:

  • AppiumLibrary:移动端App自动化
  • AutoItLibrary:Windows桌面应用自动化
  • OperatingSystem:内置库,执行系统命令、文件操作
  • String:内置库,文本处理
  • Collections:内置库,列表和字典操作

凡是内置库无法覆盖的场景,优先去官方文档查一下有没有对应的外部库,通常都能找到现成的,没必要自己动手封装底层操作。

6. 安装过程中最常见的故障与排查方法

6.1 命令不是内部或外部命令

这个问题在Windows上尤其常见,多数是Python没有加入PATH。排查思路:

先检查Python装在哪,找到安装目录下的python.exe,把安装目录和Scripts子目录都加入系统PATH,然后重新打开命令行窗口。注意改完PATH必须重启命令行,新的环境变量不会自动刷新到已打开的窗口里。

如果加了PATH还是不行,看看是不是装了多个Python版本。Windows系统特别容易出现这个问题,系统里既有Anaconda的Python,又有官网安装的Python,两个版本抢PATH。解决办法:在环境变量里把你想用的那个Python路径放到最前面,或者干脆统一用Anaconda。

6.2 pip安装卡住或超时

国内用户大概率会遇到,安装进度条半天不动最后提示Timeout。原因就是默认源在国外。按第二章说的换镜像源就好,还没解决的问题,试试用pip install --default-timeout=100加大超时时间,或者用pip download把安装包拉到本地再装。

6.3 安装成功但import报错

比如你明明装了SeleniumLibrary,但用例执行时报Importing library 'SeleniumLibrary' failed。先别急着重装,逐项排查:

  1. 确认当前命令行所在的Python环境和pip安装的目标环境是同一个。如果你开了虚拟环境没激活,pip装到了别的环境,就会出现“装是装了但导入不了”的症状。
  2. 检查库版本和Robot Framework版本兼容性,老框架配新库经常出现接口对不上的问题。
  3. 试着手动执行python -c "import SeleniumLibrary",看详细报错信息,比看用例的报错更直观。

6.4 浏览器弹不出来或报驱动错误

这是SeleniumLibrary场景下独有的问题,报错信息通常带着SessionNotCreatedException或WebDriverException。核心原因99%是ChromeDriver版本与Chrome版本不匹配。去Chrome的“关于”页面看浏览器版本号,然后到ChromeDriver官网下载对应版本,替换掉环境里的旧驱动即可。

6.5 用例执行时报“No keyword with name”错误

这种错误说明用例中用到的关键字在当前加载的库里不存在。检查点有三个:

  1. *** Settings ***里是否已正确声明Library名称,拼写有没有错
  2. 关键字名称大小写是否一致,Robot Framework本身不区分关键字大小写,但下划线和空格它分得清
  3. 需要引包的关键字是否在对应的库里,比如Open Browser在SeleniumLibrary里,如果你引的是RequestsLibrary,当然找不到

6.6 输出文件和报告打开是空白

生成的log.html、report.html打开后内容空白,一般有两种情况:一种是用浏览器直接打开文件时,浏览器的本地文件权限限制了JavaScript执行,换Firefox或Edge浏览器试试;另一种是报告生成时出错,去命令行看执行末尾的提示信息。

7. 装好之后,再从这五个方面做一遍体检

很多同学装完环境就急着往前冲,其实装成功与否不是以--version能输出为准,而是整个链路都能跑通才算真正的“安装完成”。我习惯给每个新环境做一遍五项体检,花不了几分钟,但能提前暴露问题:

第一项:核心框架体检。执行robot --version,确认框架版本可用,最好和项目要求一致。

第二项:库引用体检。建一个最简用例文件,在Settings里只声明Library不写任何用例,执行robot看是否报导入错误。所有库都用这种方式过一遍,能快速发现版本不兼容。

第三项:浏览器驱动体检。如果计划做Web自动化,执行一条最简单的打开浏览器用例,亲眼看到浏览器弹出来再关掉。

第四项:接口连通体检。发送一个你熟悉的公共接口请求,确认RequestsLibrary工作正常,网络和代理环境没干扰。

第五项:报告输出体检。确认执行完用例后三个文件正常生成,报告能正常打开,内容信息完整可读。

五项全部通过,环境才算真的准备好了。后面遇到任何问题,你可以很自信地判断“环境层面没问题,问题在用例本身或测试代码里”。

我在实际使用中的建议是:永远不要在“看起来能跑”的时候停止验证。环境搭建只是自动化测试万里长征的第一步,但这第一步走扎实了,后面写用例、调试、跑CI都会顺很多。全套装完大概需要半小时到一小时,中间最耗时的是等pip下载和折腾浏览器驱动,这两块按我上面说的方法处理,基本都能一次过。

最后分享一个小技巧:把安装记录数据库保存下来。等你日后要给第二台机器部署同样的环境时,执行pip freeze > requirements.txt,然后在另一台机器上执行pip install -r requirements.txt,所有依赖版本一步到位,不用再一个个装、一个个排错。这个习惯让我在新机器部署Robot Framework环境的时间从一小时压缩到十分钟,强烈建议你也养成。

返回列表