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

摘要:
xvfb提供的视频卡帧缓冲区用于让浏览器认为它有桌面,从而达到测试没有桌面系统的真实浏览器兼容性的目的。自动化web界面测试通常需要验证真实浏览器的兼容性,但云系统通常不提供图形桌面,因此自动化web界面检测成为云中的一个问题。

【摘要】 利用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顺利跑了。

来源:华为云社区 作者:divfor

免责声明:文章转载自《云端远程Ubuntu系统进行无桌面Web浏览器自动化测试》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信小程序setdata修改数组或对象转载 :React普通样式(className)和行内样式(LineStyle)多种设置样式设置详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android 系统重启与关机:java 代码实现

在应用层如何通过代码实现 android 系统的重启,分享给大家。 这篇博客是在 android 系统开发的基础之上进行实践的,所以如果你是纯粹的 app 开发,可能要让你失望了。 该代码在真机上测试成功,在模拟器上面测试失败。 在 linux 下面,重启 pc,非 root 用户需要执行 sudo reboot,所以在 android 下重启机器也需...

ubuntu磁盘分配和挂载

Linux(ubuntu)可以把分区作为挂载点,常用的几个挂载点、作用及一般应该分配的磁盘空间如下表所示:Markdown Extra 表格语法: 挂载点(目录) 建议大小 格式 作用 / 20G左右 ext4 根目录 /home 越大越好 ext4 用户工作目录,用户存储的数据,文件,安装的软件都存放在这儿 /boot 300M左右 e...

linux操作提示:“Can't open file for writing”或“operation not permitted”的解决办法

在linux上使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用“:q!”命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示:E212: Can't open file for writing Press ENTER or type command to continue出现这个错误的原因可能有两个:1.当前用户的权限不足...

.Net Core官方的 JWT 授权验证

什么是JWT? JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。 尽管可以对JWT进行加密以提供双方之间的保密性,但我们将重...

第九章Admin后台系统

第九章 Admin后台系统 默认启用的Admin后台系统'django.contrib.admin', 创建账户密码之前,确保项目已执行数据迁移,在数据库中创建相应的数据表 中文显示后台 把该中间件位于settings.py中的第三个中间件的位置'django.middleware.locale.LocaleMiddleware', 注册模型到后台的两种方...

Mac 删除非当前AppleID安装的APP

Mac上面的APP一般都是通过App Store安装,这样 APP就与AppleID建立了绑定关系。 Mac无法更新一款APP,是因为下载这个APP的AppleID已经不能正常登录。 不要紧,独辟蹊径,找到APP和AppleID的关联文件,删除之,就可以通过当前登录的AppleID更新了。 需要删除的关联文件叫“_MASReceipt”。 它的路径地址一般...