Oracle 系统管理 - Linux 系统 - Backtrack 5 - 安全 - Juniper 技术 - Cisco 技术 - 思科模拟器 - Cisco 认证 - Cisco ios 下载

您现在的位置是:Docker > Centos > xvfb实现无需GUI的web UI自动化测试

xvfb实现无需GUI的web UI自动化测试

时间:2018-07-09 15:14  来源:未知  阅读次数: 复制分享 我要评论

假设我们使用selenium已经写好了web ui的自动化测试。 如果我们希望case跑在linux无desktop界面的服务器上,我们应该如何实现呢?

(假设您的自动化case在有desktop的gui的操作系统运行过没有问题)。

1. 在需要跑的服务器上重新配置webdriver , selenium所需要的环境。  例如作者这里使用了robotframework 框架, python解析器。 所以提前需要将所需要的库等一并全部安装成功。  (此处省略1万字, 安装所有的东西是一个比较漫长的过程,你可以边做些其他事情边玩着边装环境)

2. 安装xvfb。 sudo yum install -y xorg-x11-server-Xvfb (笔者使用centos)

3. 安装成功后,使用如下命令进行测试。

备注: 使用-screen 设定分辨率。 默认的分辨率非常小大概是800*600的样子。

xvfb-run -a –server-args=”-screen 0 1024x768x24″ /usr/local/bin/pybot –pythonpath ../verify_ui/libs/ ../verify_ui/verify_system_tests/auth_tests.robot

4. 全程无浏览器弹出,通过测试用例中的截到的图可以看到,测试正常执行了。

 

更多xvfb 的链接和文章。 

xvfb是一个运行于内存的显示器系统。

Xvfb (short for X virtual framebuffer) is an in-memory display server for UNIX-like operating system (e.g., Linux). It enables you to run graphical applications without a display (e.g., browser tests on a CI server) while also having the ability to take screenshots.

http://elementalselenium.com/tips/38-headless

备注:

chrome selenium2 自动化, 除了安装chrome浏览器外,需要单独安装chromedriver, chromedriver只要设定在path当中即可。 https://sites.google.com/a/chromium.org/chromedriver/

除了设定在path中外,也可以通过代码中进行指定。

1. include the ChromeDriver location in your PATH environment variable

2. (Java only) specify its location via the webdriver.chrome.driver system property (see sample below)

3. (Python only) include the path to ChromeDriver when instantiating webdriver.Chrome (see sample below)

 

其他问题: 因为无GUI,所以debug的时候可能会浪费时间,只能通过截图和case的结果来分析判断。  例如linux中安装的字符集问题, 发现firefox打开的网站凡是中文都是乱码(大方块), 这些都需要时间去修复,以便之后自动化测试时定位到底是测试环境的问题还是Bug!

相关资讯