许多现代QT应用程序采用多流程架构。在这种情况下,图形用户界面ISN’t通过一个过程渲染。相反,使用多个进程,每个过程负责用户界面的某个部分。然后,使用中央,通常非常简单的作曲过程来组成要在屏幕上显示的最终图像。

这意味着GUI测试设置应该能够将多个进程视为单个应用程序,挂接到它们中的每一个。这种方式,可以记录和重放对GUI的任何部分的交互和验证,而不管GUI所呈现的过程如何。

与此同时,有许多情况下的子程处理舒尔没有自动化–例如根本没有用户界面的那些。用不需要的人扼杀测试脚本 waitforapplicationlaunch. 目前,语句可以减慢测试执行,并使GUI测试依赖于AUT的实现细节。

因此,它’对于具有非常细粒度的控制来说,对于自动化的专业GUI测试工具来说,这是一个非常细粒度的控制。本文介绍如何在决定蜂扣是否应钩住时在某些过程中包含或排除某些过程。

检测应用程序推出的子进程

默认情况下,QT的QUISH仅自动化通过蜂鸣器启动的应用程序。任何子进程都被忽略。这可以通过鳞片IDE改变:在 测试套件设置 您的测试套件的部分,打开AUT **部分。那里’■一个复选框说 挂于应用程序推出的子进程。选中此框将使Squish还考虑自动化的子流程。

测试套件配置中的自动设置

但是,根据手头的操作系统,可能需要进一步配置。

在Windows系统上显式选择

在窗户上,挂钩是“opt-in”:我们明确需要为那些与测试自动化相关的子进程启用子进程挂钩。

最简单的和最少的侵入性方法涉及用柔软的刀具替换可执行的二进制文件:

  1. First, append an underscore to your executable’s base filename. So if your AUT spawns a child-process which is called mychildapp.exe:
c:\MyApp\> rename mychildapp.exe myapp_.exe
  1. Next, copy Squish’s own tool, known as dllpreload.exe, into the filename of the original executable:
C:\MyApp\> copy SQUISHDIR\bin\dllpreload.exe mychildapp.exe

After doing this, all invocations of mychildapp.exe will automatically cause mychildapp_.exe to be executed which is then instrumented by Squish. Please see the 窃取用户指南 for more on this –该指南还讨论了挂钩到Windows进程的替代方法。

包容&摩托斯和Linux系统上的排除列表

在MacoS和Linux上,使蜂鸣IDE中的子进程的检测是全部的’需要。勾选复选框将使Squish钩钩为所有子流程。但是,有时您想忽略一些(或大多数)的子进程。幸运的是,可以使用两个配置设置相当轻松地配置。

  • 有可能只是自动化自动化 众所周知 auts的子进程。要这样做,放线
USE_WHITELIST=1

into the suite.conf file of a test suite. This tells Squish that only ‘mapped’应用程序将被钩住。这些可以从IDE设置,在服务器设置中 - > Mapped AUTs, or from the command line. For example, to register myapp in /usr/local/bin as a mapped AUT, execute:

$ bin/squishserver --config addAUT myapp /usr/local/bin

All processes which are not registered in squishserver will be ignored.

  • Editing a text file in SQUISHDIR/etc/ignoredauts.txt allows you to specify that certain executables are to be ignored by Squish. Each entry should be on a separate line. See the 用户指南以获取更多信息.

这对于该组的子进程未知,但是有一些已知的子进程您显式想要忽略。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

复制链接