资讯专栏INFORMATION COLUMN

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

zxhaaa / 2488人阅读

摘要:如何在上运行本教程的目标是在使用作为主浏览器的上配置和运行。小结很久以前,我也使用做自动化的集成测试,使用的,所以不需要显示器。而最近在项目中发现这篇文章,解决我长久以来的问题在没有显示器的服务器上运行的集成测试。

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

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

作为程序员,我不满足于使用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

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

如果你能成功运行以上的步骤,那么接下来的部分就是轻而易举了。现在,我们可以在ubuntu服务器上运行selenium,如同你在本地运行一样。本教程的下一部分,我展示了如何运行一个独立selenium服务器,同时使用PHP的selenium webdriver去连接。

小结

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23381.html

相关文章

  • 3分钟在Linux(Deepin)下跑起Laravel

    摘要:近期在闲暇之余开启了学习之路,特地去感受那份优雅。本文更多的目的为了做一些学习中的相关记录,并且选择自认为的最佳实践。本人主力工作环境是,在裸下走一遍流程能熟悉相关依赖,更清晰认识环境搭建本质。 近期在闲暇之余开启了 Laravel 学习之路,特地去感受那份优雅。正所谓万丈高楼平地起,环境的搭建乃是学习任何一个框架甚至任何一门语言最重要的起点。本文更多的目的为了做一些学习中的相关记录,...

    hightopo 评论0 收藏0
  • 3分钟在Linux(Deepin)下跑起Laravel

    摘要:近期在闲暇之余开启了学习之路,特地去感受那份优雅。本文更多的目的为了做一些学习中的相关记录,并且选择自认为的最佳实践。本人主力工作环境是,在裸下走一遍流程能熟悉相关依赖,更清晰认识环境搭建本质。 近期在闲暇之余开启了 Laravel 学习之路,特地去感受那份优雅。正所谓万丈高楼平地起,环境的搭建乃是学习任何一个框架甚至任何一门语言最重要的起点。本文更多的目的为了做一些学习中的相关记录,...

    caoym 评论0 收藏0
  • truffle安装以及使用示例

    摘要:安装命令使用命令安装完成后,直接输入即可。函数名函数名用于修改状态变量的函数的调用,可以简写为后面这种。访问内有使用教程。文件夹中没有,取而代之的是,内容是个简单的,功能是修改一个状态变量的值为然后读取它。 Truffle ubuntu下安装truffle truffle安装的依赖环境有:Nodejs,git ,python2.7(ubuntu自带)安装git sudo apt-get...

    RiverLi 评论0 收藏0
  • truffle安装以及使用示例

    摘要:安装命令使用命令安装完成后,直接输入即可。函数名函数名用于修改状态变量的函数的调用,可以简写为后面这种。访问内有使用教程。文件夹中没有,取而代之的是,内容是个简单的,功能是修改一个状态变量的值为然后读取它。 Truffle ubuntu下安装truffle truffle安装的依赖环境有:Nodejs,git ,python2.7(ubuntu自带)安装git sudo apt-get...

    Clect 评论0 收藏0
  • Magento1如何打开调试模式,来显示前台路径提示信息?

    摘要:的版本中如何开启调试模式呢在前面,写了一篇有关如何开启调试模式来显示前台的路径信息,便于在学习的时候,能快速的找到各个对应的文件。但是,现在这个项目用的,在的版本中如何开启调试模式呢两种方法供参考方法一通过后台控制台来操作,选择也选择。 magento1.x的版本中如何开启调试模式呢? 在前面,写了一篇有关Magento2.0如何开启调试模式来显示前台的路径信息,便于在学习magent...

    hlcfan 评论0 收藏0

发表评论

0条评论

zxhaaa

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<