如何在无显示器的ubuntu下跑selenium

标签: 显示器 ubuntu selenium | 发表时间:2014-08-21 10:02 | 作者:m635674608
出处:http://www.iteye.com

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,只要运行:

  1. sudo apt-get install xvfb 

现在,可以运行xvfb服务上一个带有数字的显示设备上,这样是为了防止你在下阶段添加设备时引发冲突。本教程,我们分配一个显示设备 10..

  1. sudo Xvfb :10 -ac 

-ac代表关闭xvfb的访问控制。好了,服务器可以运行了。

启动浏览器

在你运行浏览器前,你首先要设置DISPLAY环境变量,以指定xvfb运行在哪个显示设备上。在加入环境变量前,我们检查一下所有的这些都如我们所料:

  1. export DISPLAY=:10   
  2. firefox 

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

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

小结

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

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

英文原文: http://www.installationpage.com/selenium/how-to-run-selenium-headless-firefox-in-ubuntu/

译文链接: http://my.oschina.net/zjzhai/blog/295288

转发: http://os.51cto.com/art/201407/446726.htm



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [显示器 ubuntu selenium] 推荐:

如何在无显示器的ubuntu下跑selenium

- - 操作系统 - ITeye博客
Selenium是一个web自动化测试框架. 用它可以实现web应用自动化测试. 不过,我不只是用它来做测试,我还用它从电子商务网站签到页面爬取javascript生成的或AJAX的内容. 作为程序员,我不满足于使用Selenium IDE来记录和重放宏记录. 那样很蹩脚,而且不适合部署到多台服务器.

Selenium Grid简介与安装

- - CSDN博客互联网推荐文章
      很多敏捷团队已经使用了Selenium和Watir等 工具进行验收测试或用户接口测试. 这些工具通过驱动Web浏览器的方式反映用户体验,并且为测试那些使用DHTML和Ajax构建的动态接口提供强力支 持. 然而,随着更多的团队采纳类似的工具,他们发现,运行这一整套浏览器驱动的Web接口测试会花费很长时间,而导致构建太慢.

java模拟浏览器包htmlunit,selenium

- - BlogJava-首页技术区
发现一个很不错的模拟浏览器包htmlunit,它可以直接执行访问网站地址,并执行相应的JavaScript脚本;这个功能对于网站爬虫有很大的帮助,一些网站使用了ajax,如果使用简单的http访问只能抓到原始的html源码,但对于页面内执行的ajax却无法获取;使用这个包后,可以将执行ajax后的html源码一并抓取下来.

robotframework + selenium实现网站自动测试

- - idv2
本文参考: How to use RobotFramework with the Selenium Library. Selenium是个强大的自动化测试工具,可以手工编写或自动录制测试脚本,可以手工执行,也可以自动执行. 而 robotframework是个通用的自动化测试框架. robotframework-seleniumlibrary是robotframework的一个测试库,它可以集成Selenium,并提供一套简单易懂的语法用于书写测试用例(好处就是测试人员不用学任何编程语言也能写测试用例了).

用 STAF+Selenium 实现并行的自动化测试框架

- - IBM developerWorks 中国 : 文档库
我们有很多理由去开展自动化测试的工作,例如自动化测试可以节省时间、简化手工测试、提高测试覆盖率等等,这也充分说明实现软件自动化是非常重要的. 自动化测试时一个很吸引人的技术问题是,对于不同的软件项目或多或少都要借助于自动化工具进行测试. 如今随着 Agile 开发模式逐渐的应用到各个开发测试团队,如何快速连续地交付产品对于开发和测试团队都成为一个很大的挑战.

自动化测试工具 Selenium WebDriver 入门教程

- - 行业应用 - ITeye博客
先要去官网( http://seleniumhq.org/download/)下载必需的文件: . Selenium IDE (专门用于 FireFox 测试的独立界面,可以录制测试步骤,但我更倾向于写代码做标准的功能测试). Selenium Server (可以输入指令控制、可以解决跨域的 js 问题,等到后面学到了再讲吧).

Selenium Grid跨浏览器-兼容性测试

- - CSDN博客互联网推荐文章
Selenium Grid跨浏览器-兼容性测试. 这里有两台机子,打算这样演示:. 一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.168.4.124. 另一台机子启动两个次节点hub,一个次节点浏览器为firefox,另一个浏览器为chrome (系统为windows),ip为:192.168.4.137.

[Python爬虫]使用Selenium操作浏览器订购火车票

- -
     一个会写Python的Oracle DBA. [Python程序]利用微信企业号发送报警信息. [Python爬虫]使用Python爬取静态网页-斗鱼直播.  [Python爬虫]使用Python爬取动态网页-豆瓣电影(JSON).  [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium).

Ubuntu 速查表

- 威 - Linux爱好者
曾经,FOSSwire 制作了一张 Unix/Linux 命令速查表,为 Unix/Linux 用户带来了方便. 现在,他们又专门针对 Ubuntu 制作了一张速查表,其中包含权限、显示、系统服务、包管理、网络、防火墙、系统等方面的常用命令介绍. 此外,该速查表也介绍了一些特殊的 Ubuntu 包及应用程序名称.

Ubuntu 7 岁了

- Lee Jia - cnBeta.COM
就在7年前的今日,Mark Shuttleworth 和他的团队宣布了第一个Ubuntu 发行版本“Warty Warthog(疣猪)”. Ubuntu 4.10 标志着一个新时代的开始,它是第一个Ubuntu 发行版本. 基于Debian,致力于给用户简单易用、无障碍的Linxu体验. 该版本也开创了免费海运为用户提供Ubuntu CD安装盘模式.