在自动化测试中,经常会遇到一些程序需要运行在X windows环境下。 通常我会在shell脚本中用以下方法来运行脚本:
setup_vnc(){ # start vnc number from 10 to avoid confilct with the exists. VNC_DISPLAY=10 while ! vncserver :$VNC_DISPLAY do ((VNC_DISPLAY++)) if [ $VNC_DISPLAY -gt 100 ]; then echo "Create vnc sessions failed." exit -1 fi done export VNC_DISPLAY export DISPLAY=:$VNC_DISPLAY}teardown_vnc(){ vncserver -kill :$VNC_DISPLAY || echo "for tearing down VNC"}# Mask this sig handler.trap 'teardown_vnc' INT TERM EXITsetup_vnc# run the PRocedure under the X environment.如果你使用python的话,下面推荐一个更方便的module xvfbwrapper
from xvfbwrapper import Xvfbwith Xvfb() as xvfb: # launch stuff inside virtual display here. # Xvfb will stop when this block completes以及对应的robotframwork keyWord robotframework-xvfb
*** Settings ***Documentation This example demonstrates how to use current libraryLibrary Selenium2LibraryLibrary XvfbRobot*** Test Cases ***Create Headless Browser Start Virtual Display 1920 1080 Open Browser http://google.com Set Window Size 1920 1080 ${title}= Get Title Should Be Equal Google {title} [Teardown] Close Browser新闻热点
疑难解答