背景介绍
![img_6e65ad9b8f367a2456bad1f2efd3b0d7.gif](https://yqfile.alicdn.com/img_6e65ad9b8f367a2456bad1f2efd3b0d7.gif)
Robot Framework 是一款关键字驱动的验收自动化测试框架,现在在国内使用的越来越广泛了。一种通用的Web UI自动化测试解决方案是Robot Framework+Selenium2Library (RFS)。一般要使用Selenium2Library库,必须配置好浏览器驱动(driver)。不然就无法驱动浏览器来执行自动化命令。
![img_d1117ebe3c202065ef36fe8c4c53931b.png](https://yqfile.alicdn.com/img_d1117ebe3c202065ef36fe8c4c53931b.png?x-oss-process=image/resize,w_1400/format,webp)
上表简要说明了不同的浏览器所需要的驱动程序。这里我们重点介绍如何基于rfs+phantomjs进行无界面UI自动化测试。
![img_71dc12230ec1381da3838247025590ce.png](https://yqfile.alicdn.com/img_71dc12230ec1381da3838247025590ce.png?x-oss-process=image/resize,w_1400/format,webp)
环境安装
第一步: 安装RFS环境
这里推荐用pip进行安装,其他安装方式不做介绍。> pip install -U robotframework-selenium2library
安装Selenium2Library库会自动安装其依赖库Robot Framework.
第二步: 配置phantomjs执行环境
首先下载phantomjs, 可以下载windows版本,也可以下载linux版本。
这里我们介绍windows版本的配置。
去官方网站 http://phantomjs.org/download.html 下载对应的发布包即可。
下载完成后,加压压缩包,并且将其放到任意路径下,如D:\browser下。
![img_c79671bc22ca0a68246e7bcd5f1fe4a6.png](https://yqfile.alicdn.com/img_c79671bc22ca0a68246e7bcd5f1fe4a6.png?x-oss-process=image/resize,w_1400/format,webp)
接下来, 配置系统环境变量,将D:\browser添加到系统环境变量Path中去。
![img_851b32082024cf70faff9a02d8be997c.png](https://yqfile.alicdn.com/img_851b32082024cf70faff9a02d8be997c.png?x-oss-process=image/resize,w_1400/format,webp)
至此,我们就配置好了phantomjs的执行环境了。可以在控制台上输入phantomjs.exe --version
命令来验证是否配置正确。
![img_813fe0cd09c714df1595e1f335eb0578.png](https://yqfile.alicdn.com/img_813fe0cd09c714df1595e1f335eb0578.png?x-oss-process=image/resize,w_1400/format,webp)
上图正确输出了版本号,说明配置成功了。
用例执行
好的,接下来,我们就通过一个简单的测试用例,来验证rfs+phantomjs的无界面UI自动化测试功能。
编写Robot Framework测试用例 phantomjs_test.robot。
![img_5af530b29af82fe9184d4023358815ae.png](https://yqfile.alicdn.com/img_5af530b29af82fe9184d4023358815ae.png?x-oss-process=image/resize,w_1400/format,webp)
执行测试用例:> robot phantomjs_test.robot
![img_a47111b3466336c91b7b7bbbacbf11ec.png](https://yqfile.alicdn.com/img_a47111b3466336c91b7b7bbbacbf11ec.png?x-oss-process=image/resize,w_1400/format,webp)
从上图我们可以看出,测试用例正确执行了,和基于chrome的执行结果一致。