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

时间:2015-02-19 08:27:48

标签: squish

我也有同样的疑问......如何在后台运行测试用例来测试AUT,以便我可以在我的机器上处理其他任务。虽然在压扁测试中运行了如此多的弹出窗口并且AUT功能继续进入你的屏幕并且在你正在处理其他事情时它很烦人。

2 个答案:

答案 0 :(得分:3)

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

为了实现这个目标,我在Windows上使用Xvfb和Windows上的sysinternals桌面(http://technet.microsoft.com/en-us/sysinternals/cc817881.aspx),当我创建了squish 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

现在我可以/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个桌面,您可以在其中一个桌面中启动测试并切换到另一个桌面即可工作。

答案 1 :(得分:0)

您可以通过SquishServer运行一些exixsting测试脚本,同时打开SquishIDE以编写更多测试。 这基本上是你要问的吗?

我安装了squish-5.1.1-qt48x-win32-msvc9。 我还使用一些虚拟机来运行测试。 虽然测试在那些虚拟机上运行(在我的本地计算机上运行,​​但它可能是服务器),但我打开了SquishIDE并开发了更多测试。

获取此配置的起点应该是此处的文件:

C:\squish-5.1.1-qt48x-win32-msvc9\squish-5.1.1-qt48x-win32-msvc9\examples\regressiontesting\

看看它们,因为我使用过它们。 实际上,我对它们进行了一些修改,你需要一些python知识。如果你不熟悉这种语言,你应该打电话给知道它的人。

使用这些文件,您可以指定要运行的测试,配置squish_server,并且在测试运行后,您将获得[* .html]文件形式的一些报告。

希望这会有所帮助。您还可以在此处找到一些其他帮助:http://doc.froglogic.com/squish/latest/第17章。用户指南