由于服务器都没有安装桌面系统,想要在centos 7上使用karma启动headless chrome来运行angularjs ut,略麻烦了些,最后参考一些文章最后完成了环境搭建,成功运行了UT。
关键词:
- CentOS 7 Core
- Headless Browser
- Karma
- Xvfb
安装步骤:
安装chrome浏览器
因为受联网限制,下载了google-chrome-stable_current_x86_64.rpm手动安装。
同时要注意也需要安装与chrome-stable 版本兼容的chromedriver_linux64.zip,chromedriver和chrome的配套关系在下载目录的ntoes.txt中查看。
下载地址:
http://chromedriver.storage.googleapis.com/index.html
解压后将得到的可执行文件配置到$PATH下。
安装Xvfb
yum install Xvfb libXfon xorg-x11-fonts* -y
Xvfb使得没有GUI的情况下也可以打开浏览器运行自动化测试。
启动xvfb服务
根据情况设置下面的screen参数
nohup Xvfb -ac :7 -screen 0 1280x1024x8 &
export DISPLAY=:7
安装npm 依赖包
npm install UT所需要的所有包
运行karma ut!
/home/node/sources/node_modules/karma-cli/bin/karma start ./karma.config.js
注意:
1)上述命令需要指定karma.config.js文件地址,否则会报错
2)karma.config.js 浏览器配置需要设定一下chrome的启动参数,否则会报 no sandbox 之类的错误,类似如下:
browsers:['NoSandboxChromeHeadless'],
captureTimeout: 60000,
customLaunchers: {
NoSandboxChromeHeadless: {
base: 'ChromeHeadless',
flags: ['--no-sandbox']
}
},