如何在无显示器的ubuntu下跑前端测试

翻译自:http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/javascript

Selenium是一个web自动化测试框架。用它能够实现web应用自动化测试。不过,我不仅是用它来作测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容。java

做为程序员,我不知足于使用Selenium IDE来记录和重放宏记录。那样很蹩脚,并且不适合部署到多台服务器。这时,你须要Selenium WebDriver,它又灵活,并且经过Selenium headless,运行Selenium在服务器上不须要显示设备。程序员

为何要运行Headless Selenium 测试?

当你但愿能在服务器上运行的健壮的自动化操做,而其操做又依赖于 27X7,同时还但愿它是稳定的,这时,Selenium是你惟一的选择。可是,Selenium须要运行在浏览器上。因此,你得骗Selenium,让它以为,它正跑在一台带有显示器的机器上。这样,你就能够不间断的跑自动化测试,同时又不失稳定性和扩展性。web

如何在ubuntu上运行Selenium headless

本教程的目标是在使用Mozilla Firefox做为主浏览器的ubuntu上配置和运行selenium headless。ubuntu

安装Firefox headless

确认你的ubuntu安装的是最新版本的Firefox。我遇到过Selenium的版本和Firefox的版本不兼容问题。若是你没有安装Firefox或者使用的是老版本的Firefox,可按如下步骤升级Firefox:浏览器

  • 在/etc/apt/sources.list加入:服务器

    ppa:mozillateam/firefox-stable框架

  • 运行如下命令升级或安装Firefoxless

    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

若是终端(terminal)没有显示错误,就说明你已经成功运行Firefox在无显示设备的ubuntu上了。它会一直运行,直到你使用ctrl + C或其它相似方法来终止其运行。同时,它不会有任何输出。

若是你能成功运行以上的步骤,那么接下来的部分就是垂手可得了。如今,咱们能够在ubuntu服务器上运行selenium,如同你在本地运行同样。本教程的下一部分,我展现了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去链接。

小结

好久之前,我也使用selenium作自动化的集成测试,使用HtmlUnit的webdriver,因此不须要显示器。可是HtmlUnit的表现老是有些不如意。而最近在项目中发现这篇文章,解决我长久以来的问题:在没有显示器的服务器上运行Firefox的集成测试。

而本文,我更多尝试的是意译。有不对的地方,谢谢斧正!

相关文章
相关标签/搜索