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

本文介绍如何在Ubuntu上配置并运行Selenium Headless Firefox,包括安装最新版Firefox及Xvfb虚拟显示服务,适用于服务器上的自动化测试。

翻译自: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://my.oschina.net/zjzhai/blog/295288

基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业。 基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模拟浏览器行为的小红书关键词搜索和笔记爬取源码+文档说明基于Selenium模
### 如何在Ubuntu上安装和配置图形用户界面 (GUI) #### 安装Xvfb虚拟显示服务器 为了能够在没有物理显示器的情况下运行图形化应用,可以使用`Xvfb`这款工具来模拟显示环境。这特别适用于自动化测试或是CI/CD流水线中的构建任务,在这些场景下可能不存在真实的屏幕连接。 通过下面的命令可以在Ubuntu环境中安装`Xvfb`: ```bash sudo apt-get update && sudo apt-get install -y xvfb ``` 一旦完成上述操作,则意味着已经准备好了一个虚拟帧缓冲区,可用于无头模式下的图形渲染[^1]。 #### 切换至命令行界面与返回图形界面 对于那些希望减少资源占用或者更倾向于文本交互方式工作的用户来说,可以从默认启动进入的图形会话转而采用纯TTY终端工作;反之亦然。具体方法如下所示: - **从图形界面切换到命令行** 按组合键 `Ctrl + Alt + F3`(或其他F系列按键如F2~F6),即可退出当前图形登录并进入到字符控制台中。 - **由命令行恢复图形界面** 输入用户名密码登陆TTY之后,可以通过按 `Ctrl + Alt + F7` 或者更高编号的功能键(取决于版本可能是F8/F9),重新回到原有的GNOME/KDE等桌面环境窗口[^2]。 #### 部署完整的桌面体验——以Xubuntu为例 如果目标是在服务器端提供一个较为精简但仍具备基本多媒体支持和个人生产力软件套件的工作站风格的操作系统镜像,那么考虑部署基于XFCE框架设计而成的Xubuntu发行版将会是一个不错的选择。其特点是消耗较少内存空间的同时保持良好的用户体验度。 要达成此目的,只需执行下列指令序列之一来进行安装过程: ```bash sudo apt-get update sudo tasksel install xubuntu-desktop ``` 待全部组件加载完毕后重启机器便能享受到全新的视觉效果了。另外需要注意的是,首次开机时可能会提示设置某些初始参数比如时间区域之类的信息,请按照屏幕上的指示逐步完善相应选项[^3]。 #### 使用wxPython进行简单的GUI编程入门 除了传统的Linux桌面环境外,开发者还可以利用Python语言结合专门面向该生态系统的库函数快速搭建自定义的应用程序前端。其中比较流行的一个就是`wxPython`,它允许编写一次源码就能无缝移植到多个操作系统平台上运行而不做任何修改。 这里给出一段最基础的例子用来展示怎样弹出一个小对话框并向里面写入文字内容: ```python import wx app = wx.App(False) frame = wx.Frame(None, title="Hello World", size=(300, 200)) panel = wx.Panel(frame) text = wx.StaticText(panel, label="Welcome to wxPython!", pos=(100, 50)) frame.Show(True) app.MainLoop() ``` 这段脚本首先引入必要的模块,接着创建应用程序实例以及主容器部件,并在其内部放置静态标签控件用于呈现固定文本字符串最后调用循环等待事件处理机制接管后续流程直至关闭为止[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值