为了让UI 自动化脚本在Linux server上跑起来,也就是headless browser automation,我在网上查了一下,基本就2种解决方案:
- 基于phantomjs的headless browser自动化测试框架;
- 使用xvfb命令让case在后台运行;
最终我采用了第一种方案,在我的MAC OS系统搭建完成后,调试case跑起来都没有问题,但是当我把测试脚本放在阿里云上的Ubuntu操作系统运行时,根本跑步起来。网上搜索了一下根本原因,是因为Ubuntu Server缺失了一系列图形化界面用到的依赖包,虽然运行的时候不会在screen上展示,但是实际上需要在一个虚拟环境里模拟运行。
解决方案:
按照下列的依赖:
apt-get update && apt-get install -y xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps clang libdbus-1-dev libgtk2.0-dev libnotify-dev libgnome-keyring-dev libgconf2-dev libasound2-dev libcap-dev libcups2-dev libxtst-dev libxss1 libnss3-dev gcc-multilib g++-multilib xauth --no-install-recommends && apt-get autoclean && apt-get clean
然后运行用xvfb-run命令运行:
xvfb-run ./node_module/mocha/bin/mocha test/test.js