如何在无显示器的ubuntu下跑selenium
2016-03-10 16:05
134 查看
Selenium是一个web自动化测试框架。用它可以实现web应用自动化测试。不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容。
作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚,而且不适合部署到多台服务器。这时,你需要Selenium WebDriver,它又灵活,而且通过Selenium headless,运行Selenium在服务器上不需要显示设备。
在/etc/apt/sources.list加入:
ppa:mozillateam/firefox-stable
运行以下命令升级或安装Firefox
sudo apt-get update
sudo apt-get install firefox
运行成功后,ubuntu上就应该安装好最新版本的Firefox了。
sudo apt-get install xvfb
现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。本教程,我们分配一个显示设备 10..
sudo Xvfb :10 -ac
export DISPLAY=:10
firefox
如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。本教程的下一部分,我展示了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去连接。
而本文,我更多尝试的是意译。有不对的地方,谢谢斧正!
英文原文:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/
译文链接:/article/2691912.html
转发:http://os.51cto.com/art/201407/446726.htm
作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚,而且不适合部署到多台服务器。这时,你需要Selenium WebDriver,它又灵活,而且通过Selenium headless,运行Selenium在服务器上不需要显示设备。
为什么要运行Headless Selenium 测试?
当你希望能在服务器上运行的健壮的自动化操作,而其操作又依赖于 27X7,同时还希望它是稳定的,这时,Selenium是你唯一的选择。但是,Selenium需要运行在浏览器上。所以,你得骗Selenium,让它觉得,它正跑在一台带有显示器的机器上。这样,你就可以不间断的跑自动化测试,同时又不失稳定性和扩展性。如何在ubuntu上运行Selenium headless
本教程的目标是在使用Mozilla Firefox作为主浏览器的ubuntu上配置和运行selenium headless。安装Firefox headless
确认你的ubuntu安装的是最新版本的Firefox。我遇到过Selenium的版本和Firefox的版本不兼容问题。如果你没有安装Firefox或者使用的是老版本的Firefox,可按以下步骤升级Firefox:在/etc/apt/sources.list加入:
ppa:mozillateam/firefox-stable
运行以下命令升级或安装Firefox
sudo apt-get update
sudo apt-get install firefox
运行成功后,ubuntu上就应该安装好最新版本的Firefox了。
安装Xvfb——一个X虚拟框架
这个仿真框架使用虚拟内存能让X-Server运行在没有显示设备的机器上。这样,浏览器就可以运行了。在ubuntu和Debian上安装xvfb,只要运行:sudo apt-get install xvfb
现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。本教程,我们分配一个显示设备 10..
sudo Xvfb :10 -ac
-ac代表关闭xvfb的访问控制。好了,服务器可以运行了。
启动浏览器
在你运行浏览器前,你首先要设置DISPLAY环境变量,以指定xvfb运行在哪个显示设备上。在加入环境变量前,我们检查一下所有的这些都如我们所料:export DISPLAY=:10
firefox
如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。本教程的下一部分,我展示了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去连接。
小结
很久以前,我也使用selenium做自动化的集成测试,使用HtmlUnit的webdriver,所以不需要显示器。但是HtmlUnit的表现总是有些不如意。而最近在项目中发现这篇文章,解决我长久以来的问题:在没有显示器的服务器上运行Firefox的集成测试。而本文,我更多尝试的是意译。有不对的地方,谢谢斧正!
英文原文:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/
译文链接:/article/2691912.html
转发:http://os.51cto.com/art/201407/446726.htm
相关文章推荐
- Integer 缓存池
- 远程调用服务(RPC)和消息(Message Queue)对比及其适用/不适用场合
- elasticsearch权威指南 学习3
- Spark Streaming原理简析
- redis-cluster研究和使用
- Java常用工具包 Jodd
- OSI七层与TCP/IP五层网络架构详解
- jce 中的Provider
- Spring Security二
- ListenableFuture demo
- Axure RP
- 异步调用流程图
- linux命令行抓取网页快照-(xvfb+CutyCapt)
- URl传递中文乱码
- Jedis分片连接池(分布式)
- lucene4.7 之排序(四)
- OSI七层与TCP/IP五层网络架构详解
- js 优化
- Spring Security
- 基于Jedis实现Redis分片的理解