云端远程Ubuntu系统进行无桌面Web浏览器自动化测试

举报
divfor 发表于 2019/01/03 17:35:58 2019/01/03
【摘要】 利用xvfb提供的显卡帧缓冲区,让浏览器以为有桌面,以达到无桌面系统下测试真实浏览器兼容性的目的。

自动化web界面测试往往需要验证真实浏览器的兼容性,但是云端系统往往并不提供图形化的桌面,所以自动化web界面测试在云端就成为一个问题。本文描述了一个技巧解决这个问题,其主要原理是利用xvfb提供的显卡帧缓冲区,让浏览器以为有桌面。

Install xvfb in ubuntu

sudo apt install xvfb
cat > /etc/init.d/xvfb <<”EOF“
XVFB=/usr/bin/Xvfb
XVFBARGS=":99 -screen 0 1024x768x24 -fbdir /var/run -ac"
PIDFILE=/var/run/xvfb.pid
case "$1" in
 start)
   echo -n "Starting virtual X frame buffer: Xvfb"
   start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
   echo "."
   ;;
 stop)
   echo -n "Stopping virtual X frame buffer: Xvfb"
   start-stop-daemon --stop --quiet --pidfile $PIDFILE
   echo "."
   ;;
 restart)
   $0 stop
   $0 start
   ;;
 *)
       echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
       exit 1
esac
EOF
chmod +x /etc/init.d/xvfb
export DISPLAY=:99.0
/etc/init.d/xvfb start


Install chrome in ubuntu

sudo apt-get install libxss1 libappindicator1 libindicator7
sudo apt-get install -f wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
sudo ln -s /usr/bin/google-chrome /usr/bin/chrome


Install chromedriver in ubuntu

wget http://chromedriver.storage.googleapis.com/2.25/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudo mv chromedriver /usr/bin/


Install firefox in ubuntu

sudo apt install firefox


Install geckodriver for firefox in ubuntu

wget https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz
tar zxf geckodriver-v0.11.1-linux64.tar.gz
sudo mv geckodriver /usr/bin/


如上安装设置完毕之后,在本地Ubuntu桌面环境下开发调试通过的自动化测试,就可以在远程Ubuntu顺利跑了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。