如何在没有 X 服务器的情况下通过挤压运行 GUI 测试

Dav*_*yan 2 squish

我也有同样的疑问……如何在后台运行测试用例来测试 AUT,以便我可以在我的机器上处理其他一些任务。虽然在 squish 中的测试运行着如此多的弹出窗口,并且 AUT 功能不断出现在您的屏幕上,并且在您处理其他事情时很烦人。

Dze*_*nly 5

据我了解,当他们模拟键盘和鼠标事件时,问题的关键时刻是与测试并行工作。所以“没有 X 服务器”我理解为“不影响实际用户操作”。

为此,我在 Linux 上使用了 Xvfb,在 Windows上使用了 sysinternals 桌面 ( http://technet.microsoft.com/en-us/sysinternals/cc817881.aspx ),当我创建挤压 GUI 测试时。我可以与正在运行的测试并行工作。

我将这样的脚本保存到 /etc/init.d/xvfb

#! /bin/sh    

### BEGIN INIT INFO
# Provides: Xvfb
# Required-Start: $local_fs $remote_fs
# Required-Stop:
# X-Start-Before:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Virtual Frame Buffer
### END INIT INFO

XVFB=/usr/bin/Xvfb
XVFBARGS=":1 -screen 5 2560x1440x24 -ac"
PIDFILE=/var/run/xvfb.pid
case "$1" in
  start)
    echo -n "Starting Xvfb"
    start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
    echo "."
    ;;
  stop)
    echo -n "Stopping Xvfb"
    start-stop-daemon --stop --pidfile $PIDFILE
    echo "."
    ;;
  restart)
    $0 stop
    sleep 2
    $0 start
    ;;
  *)
        echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
        exit 1
esac

exit 0
Run Code Online (Sandbox Code Playgroud)

现在我可以做/etc/init.d/xvfb start/etc/init.d/xvfb stop。此外,要在启动时自动启动 Xvfb,您可以使用:update-rc.d xvfb defaults 92

在此之后,在开始 GUI 测试之前,我export DISPLAY=":1.5"在我开始测试的终端控制台中使用。然后测试在没有可见的 GUI 触摸的情况下运行,我可以并行工作。

至于“桌面”(适用于 Windows) - 它在 Windows 中创建了额外的 4 个桌面,您可以在其中一个桌面上开始测试并切换到另一个桌面上工作。