AUT 和设置

本节讨论了大量关于测试应用多个方面的内容,例如它们如何被定位、如何指定以及可以与 Squish 一起使用的各种特殊设置。

Java 的 AUT 类名和类路径

Java应用程序可以在测试套件中的测试套件设置视图中进行配置。自动程序(AUT)可以通过以下方式设置:

  • 应用程序留为<无应用程序>,并在主类编辑框中输入包含应用程序静态main方法的类的名称。例如,MyApplication.class。此方法不能用于Java/SWT应用程序,除非CLASSPATH指向swt.jar文件。
  • 应用程序设置为.class文件的名称——前提是这个文件包含应用程序的静态main方法。此方法不能用于Java/SWT应用程序,除非CLASSPATH指向swt.jar文件。
  • 如果存档包含一个合适的MANIFEST文件,列出包含应用程序静态main方法的程序类,将应用程序设置为.jar存档的名称。此方法不能用于Java/SWT应用程序。
  • 应用程序设置为脚本或其他可执行文件的名称。

注意:当测试RCP应用程序时,只需将应用程序设置为启动程序的可执行文件的名称即可。

Java/SWT应用程序

对于Java/SWT应用程序,一种方法是创建一个shell脚本或批处理文件,作为应用程序来设置。

在类Unix系统中,创建一个包含swt.jar的类路径的单一行的shell脚本,作为AUT。例如

java -cp "$PWD":"$PWD/../swt/swt.jar" MyApplication

同样,在Windows上创建一个单一的批处理文件。例如

start javaw -cp "%CD%;%CD%\..\swt\swt.jar" MyApplication

在这两个示例中,我们假设swt.jar文件位于名为swt的并行目录中。只需修改上面任何一个,以便指向您的swt.jar文件以及包含您的AUT的main功能的.class文件。

使用shell脚本或批处理文件的一个替代方法是设置CLASSPATH环境变量,使其指向swt.jar文件。在这种情况下,包含您的AUT的main功能的.class文件可以设置为AUT。

CLASSPATH环境变量可以在测试套件的测试套件设置视图类路径编辑框中设置,也可以作为平台上的环境变量以通常的方式在Squish之外设置。只需使用其中之一,而不是两个。如果在Squish内部设置CLASSPATH,请不要使用引号。

AUT路径和映射AUT

在Squish中,仅在测试套件的配置文件中存储要测试的应用程序的名称,而不是其绝对路径。这是因为测试运行程序(squishrunner)本身不执行AUT,而是命令squishserver启动AUT。squishserver可以在多台机器上运行,而AUT可能会位于每台机器的不同路径上。当squishrunner向squishserver提供要运行的AUT的名称时,squishserver负责定位AUT并启动其运行。

以下部分描述了如何告诉squishserver执行文件的所在位置。可以使用squishide注册和注销AUT路径和AUT。有关更多信息,请参阅管理AUT面板

AUT路径

AUT 路径是 squishserver 设置中的一个变量,它指定了一个路径列表,就像操作系统自带的 PATH 环境变量一样。当 squishserver 被提供要启动的 AUT 名称时,它会搜索 AUT 路径变量中的所有路径,一旦找到包含所提供名称的可执行文件的路径,就启动运行。

要将路径添加到 squishserver 的 AUT 路径变量中,请执行

squishserver --config addAppPath <path>

要从 AUT 路径变量中删除路径,请执行

squishserver --config removeAppPath <path>

同样可以使用 squishide管理 AUT 对话框完成这些操作。点击 编辑 > 服务器设置 > 管理 AUT 来调用它。要将路径添加到 AUT 路径,点击 AUT 路径 项,然后点击弹出的文件对话框中的 添加 按钮,选择路径。类似地,要删除 AUT 路径,展开 AUT 路径 项,点击不需要的路径,然后点击 删除 按钮。

已映射 AUT

而不是让 squishserver 所有 AUT 路径的路径搜索 AUT 的可执行文件,我们可以创建映射,将 AUT 名称直接关联到相应的路径。如果我们这样做,当 squishserver 被提供要执行的系统名称,它会首先检查名称是否已映射到路径——如果是,squishserver 会直接使用映射路径启动应用程序。这样可以避免搜索所有 AUT 路径路径的(通常不重要的)开销。

使用映射方法的好处还包括它可以防止意外执行错误的 AUT。如果没有使用映射,如果两个不同的可执行文件具有相同的名称,并尝试执行其中一个时,另一个可能会无意中执行,因为其路径在 AUT 路径列表中排在前面。

要将应用程序 myapplication 映射到路径 /home/jane/bin/,请执行

squishserver --config addAUT myapplication /home/jane/bin

这样,如果 squishserver 被给定名称 myapplication 来启动,它将不会搜索 AUT 路径列表中的所有路径,而是将使用映射路径,直接执行 /home/jane/bin/myapplication

删除映射也很简单

squishserver --config removeAUT myapplication

当使用 squishide 创建新的测试套件,并在新建测试套件向导中指定 AUT 时,幕后,squishide 使用 addAUT 选项调用 squishserver,将新的 AUT 设置为已映射的 AUT。

同样可以使用 squishide管理 AUT 对话框来完成。点击 编辑 > 服务器设置 > 管理 AUT 来调用它。要将已映射的 AUT 添加到已映射 AUT,点击 已映射 AUT 项,然后点击弹出的文件对话框中的 添加 按钮,选择 AUT。同样,要删除已映射 AUT,展开 已映射 AUT 项,点击不需要的映射,然后点击 删除 按钮。

另请参阅,管理 AUT 面板

设置环境变量

一些应用程序(包括 Squish 的工具)读取环境变量,并可能根据环境更改其行为。例如,环境变量可能用于提供在不同机器上可能不同的路径。

在测试的背景下,有两个不同的环境需要考虑。Squish 工具(包括测试脚本)执行的环境,以及 AUT 执行的环境。

为了设置 Squish 的环境(包括工具和测试脚本),我们必须在运行任何 Squish 工具之前设置相关的环境变量。这样,当它们被运行时,它们可以检测为它们创建的环境。Squish 使用的环境变量在 环境变量 中进行描述。只有当您希望覆盖默认值时才需要设置它们。

当 Squish 执行 startApplication() 时,squishserver 会为 AUT 提供一个基于 squishserver 从操作系统中继承的环境。这个环境将包括 PATH(在 Windows 上),LD_LIBRARY_PATH(Unix,但不是 macOS),或 DYLD_LIBRARY_PATH(macOS)。这些变量会被 Squish 修改,即使可以附加或插入其他路径,也不能删除它们。还可以创建 AUT 特定的环境变量,Squish 将为 AUT 设置这些变量——这将在下面的子节中介绍。

为 AUT 设置环境变量

在某些情况下,一个应用程序在成功启动之前可能需要设置一个特殊的环境。这可能包括设置一些环境变量,运行一个辅助应用程序,或者检查某些其他条件,例如是否有足够的内存可用。通常这是通过使用 shell 脚本或 Windows 批处理文件来完成这些预初始化工作,然后启动实际应用程序。有关此类 shell 脚本和批处理文件的信息,请参阅 Shell 脚本和 .bat 文件作为 AUT

但是,如果运行应用程序所需的所有操作只是设置一些环境变量,则无需创建任何 shell 脚本或批处理文件,因为 Squish 可以处理这些操作。事实上,当只需要环境变量时,首选的做法是让 Squish 处理它们。

当使用 startApplication() 启动 AUT 时,它将接收 squishserver 为它提供的环境。

要指定额外的环境变量,打开 squishide测试套件设置视图,然后滚动到如图所示的 环境 区域。

"Test Suite Settings view Environment section"

值本身可以是或包含对其他环境变量的引用,例如使用 $(NAME) 语法,如图所示。

表格总是显示一个空白行,可以输入一个新的密钥(环境变量名称)和值。只需单击表格中的单元格即可开始添加或编辑密钥或值。要删除一行,请删除密钥并单击其他位置。

现在,每当 squishserver 被告知运行 AUT 时,它将先以正常方式设置环境,然后添加标识套件和测试案例的环境变量,然后添加我们在此处设置的环境变量,以便当 AUT 启动时,它具有我们希望的环境。

变量

Squish 认识自己的一组环境变量,可以设置以影响 Squish 的行为。那些用于控制运行和录制测试方面的行为可以设置在如上所述的 测试套件设置 对话框的 环境 选项卡中。有关此类环境变量的示例,请参阅 使用环境变量封装自定义类

然而,影响 squishide 和命令行工具行为的那些环境变量必须在运行 squishide 或工具之前设置,因此不能在 测试套件设置 对话框中设置。有关这些环境变量的更多详细信息,请参阅 环境变量,以及有关测试脚本如何访问 AUT 的环境变量的详细信息。

测试脚本也可以访问环境变量。有关更多信息,请参阅如何在测试脚本中读取环境变量

Shell 脚本和 .bat 文件作为自动测试对象

在启动应用程序不仅需要设置一些环境变量的情况下。有关详细信息,请参阅设置自动测试对象的环境变量。最佳解决方案是创建一个启动外壳脚本或批处理文件来执行必要的设置并启动应用程序,并将此启动脚本或批处理文件指定为自动测试对象,而不是实际的程序可执行文件。

基于 Qt 的应用程序

在 Unix 上,即使在将外壳脚本作为自动测试对象使用时,也必须使将要运行的实际可执行文件为 Squish 所知道。Squish 只将钩子插入由自动测试对象启动的、列入白名单的程序。当使用外壳脚本作为自动测试对象时,Squish 必须将其钩入的实际应用程序二进制文件将由脚本启动,而不是由 Squish 直接启动。通过将可执行文件作为已知的自动测试对象添加到 Squish 中或通过将其路径添加到自动测试对象路径列表中,可以轻松地将可执行文件列入白名单。两种方法都可以在 squishide 中执行,或使用 Squish 的命令行工具。有关更多信息,请参阅自动测试对象路径和映射自动测试对象

在 Unix 和 macOS 上,使用外壳脚本按预期工作,前提是实际应用程序的可执行文件为 Squish 所知道。

在 Windows 上,一旦创建了批处理文件,就必须对启动应用程序的行进行一个小调整。为了让 Squish 钩入应用程序,必须使用名为 dllpreload.exe 的小包装应用程序启动自动测试对象。

更改很简单。假设我们想要测试的应用程序名为 myapp.exe。通常我们可以在批处理文件中将其名称单独放在一行中运行它,如下所示

myapp.exe

但要使其对 Squish 可访问,必须从包装程序运行它,因此必须将该行更改为如下所示

"%SQUISH_PREFIX%\bin\dllpreload.exe" myapp.exe

如果通过 squishserver 启动了自动测试对象,则将设置环境变量 SQUISH_PREFIX,它指向 Squish 的基本目录。

这将启动 myapp.exe 并允许 Squish 钩入它。但在实践中,您通常只希望在测试应用程序时这样做,否则应用程序应该以正常方式启动。可以通过将以下代码放入批处理文件中,在应该启动应用程序二进制文件的位置执行此操作

IF "%1"=="-testing" (
    "%SQUISH_PREFIX%\bin\dllpreload.exe" myapp.exe
) ELSE (
    myapp.exe
)

默认情况下,myapp.exe 将以正常方式运行。要使其在 Squish 的包装程序内运行,必须在 Test Suite Settings (测试套件设置)对话框的 Arguments (参数)字段中指定 -testing 作为参数,以便在启动时由 Squish 传递给自动测试对象(在这种情况下为批处理文件)。

另请参阅对由自动测试对象启动的子进程进行录制/回放连接到正在运行的应用程序

Eclipse/RCP 基于的应用程序

Squish 通过提供定制的 Java VM 共享库——Squish Java VM——来将钩子插入 Java 应用程序。为了使标准的 Oracle Java 启动器(java、java.exe、javaw.exe、javaws 和 javaws.exe)使用 Squish Java VM,Squish 将环境变量 JDK_ALTERNATE_VM 设置为 Squish Java VM 共享库文件的目录。标准的 Oracle Java 启动器支持此环境变量。

不幸的是,Eclipse 不支持 JDK_ALTERNATE_VM 机制,因此必须明确地指定要将哪个 VM 用于。这可以通过使用带有 -vm 选项的 Eclipse 来轻松完成。

例如,在Windows上,我们不是执行eclipse.exe,而是这样做:

eclipse.exe -vm "%JDK_ALTERNATE_VM%" -noSplash

-vm选项应先于其他任何选项传递。

当使用Squish中的eclipse.exe运行Eclipse/RCP应用程序时,不需要使用-vm选项,因为Squish会自动传递适当的-vm

设置自定义Java安全性策略

Squish for Java安装了自己的安全性策略。由AUT设置的策略文件会丢失。为了克服这一点,squishserver将在AUT特定的ini文件中合并指定的策略文件。

[general]
SecurityPolicy = "c:/Users/me/secure.policy"

Wrapper的AUT文件

测试Java Applet

要测试Java Applet,在测试套件设置对话框中,将Java appletviewer(Java SDK/JDK的一部分)指定为AUT(待测应用程序),并在参数字段中输入包含applet的HTML文件的URL。无需另外操作。

使用Squish for Web,也可以测试嵌入在网页浏览器中的Java Applet。如果您想测试在Microsoft Internet Explorer 11中运行的applet,请与我们联系,以获取适合Windows的64位Squish for Web包。

测试Java Web Start

对于需要通过Java Web Start启动的Java应用程序的测试,在测试套件设置AUT标签页中,为应用程序指定<无应用程序>,并在Java Web Start字段中输入您的Web Start应用程序JNLP文件的URL。

当使用某些Java版本(如OpenJDK 1.8)与Squish一起使用时,您可能需要为应用程序使用javaws,并在参数中使用JNLP URL。有关自动化Java Web Start应用程序的更多信息,请参阅本文。

Wrapper的AUT .ini 文件

可以使用手动书写的.ini文件来配置特定的AUT(应用程序)wrapper的某些特定选项。

使用squishserver

创建完.ini文件后,可以使用squishserver进行注册。命令的语法如下:

squishserver --config setConfig <name-of-AUT> <path/file.ini>

应用程序的名称必须与测试套件设置对话框中使用的名称完全相同。

还可以使用与之前极其相似的语法使用removeConfig选项注销.ini文件。

squishserver --config removeConfig <name-of-AUT> <path/file.ini>

使用环境变量

还可以使用不显式将其注册到squishserver中的.ini文件。通过在测试套件设置对话框中创建SQUISH_WRAPPER_CONFIG环境变量(请参阅为AUT设置环境变量)并将其值指定为.ini文件的路径和文件名来实现。

更改Java的Object Picking提示信息

默认情况下,在选中对象时,Squish会在鼠标悬停对象的工具提示中显示生成的对象名称。但是,当用户界面相当复杂时,这可能会导致拖动。因此,可以覆盖这种行为。该选项称为ObjectPickerTooltip,必须在Java Wrapper部分下。例如。

[Java Wrapper]
ObjectPickerTooltip = "ClassName"

仅显示对象的Java类名。或者,可以通过使用Off将工具提示完全关闭。

包装自定义Java类

默认情况下,Squish 3包装了一系列预定义的Java类。脚本只能访问这些包装类的静态类成员。包装的Java对象的类会自动由Squish包装。这在使用Object findObject(objectName)Object waitForObject(objectOrName)或访问返回对象的类成员时发生,例如。

Squish 4通过包装更多类以及动态地包装AUT类来扩展Squish 3在这个区域的功能。

无论使用Squish的哪个版本,我们可能都需要访问某些原因下默认未封装的类。一种方法是扩展包装类列表,使附加类像预定义的包装类一样可访问。这是通过创建一个列出必须封装的类的.ini文件,然后告诉Squish的Java进程包装器在哪里找到这个文件来实现的。这将在下一节讨论—— 创建文件

访问未注册类的最简单方法是使用Java的自省能力。这可以通过以下几个简单的步骤完成

  • 使用以下方法之一获取类实例
    • 如果类在Java的rt.jar中,则可以使用java_lang_Class的静态方法forName
    • 如果应用程序类和应用没有自己的类加载器,则可以使用来自静态方法getSystemClassLoaderjava_lang_ClassLoader实例上的loadClass方法。
    • 如果应用程序有自己的类加载器,则使用UI元素上的类加载器。例如,Eclipse/RCP应用程序有自己的类加载器。并且必须使用这些类加载器从plugins目录加载类。例如。
      name = "{type='org.eclipse.swt.widgets.Shell' visible='true'}"
      win = waitForObject(name)
      win.getClass().getClassLoader().loadClass("org.eclipse.swt.SWT")
      ok = org_eclipse_swt_SWT.OK
  • 使用脚语言特定的new运算符来获取实例。
  • 可选地调用实例上的方法以将其置于我们需要的状态。
  • 使用实例。

以下是一个示例(来自examples/java/paymentform/suite_*/tst_card_mode测试案例),我们想使用java.text.SimpleDateFormat类,尽管Squish默认没有包装它,尽管它没有在AUT中使用,因此也没有动态包装。

    java_lang_Class.forName("java.text.SimpleDateFormat")
    formatter = java_text_SimpleDateFormat()
    formatter.applyPattern("yyyy-MM-dd")
    test.verify(formatter.format(model.getStart()) ==
                formatter.format(date))
    java_lang_Class.forName("java.text.SimpleDateFormat");
    var formatter = new java_text_SimpleDateFormat();
    formatter.applyPattern("yyyy-MM-dd");
    test.verify(formatter.format(model.getStart()) ==
                formatter.format(threeYearsAgo));
    java_lang_Class::forName("java.text.SimpleDateFormat");
    my $formatter = new java_text_SimpleDateFormat();
    $formatter->applyPattern("yyyy-MM-dd");
    test::verify($formatter->format($model->getStart()) eq
                 $formatter->format($date));
    LC::Java_lang_Class.forName("java.text.SimpleDateFormat")
    formatter = LC::Java_text_SimpleDateFormat.new
    formatter.applyPattern("yyyy-MM-dd")
    Test.verify(formatter.format(model.getStart()) ==
    formatter.format(date))
    invoke java_lang_Class forName "java.text.SimpleDateFormat"
    set formatter [construct java_text_SimpleDateFormat]
    invoke $formatter applyPattern "yyyy-MM-dd"
    set minimumAllowed [invoke $formatter format [invoke $model getStart]]
    set minimumDate [invoke $formatter format [invoke $calendar getTime]]
    test compare $minimumAllowed $minimumDate

此技术的另一个示例在如何创建半自动测试以查询用户输入中显示。

如果使用这种方法,则不需要使用.ini文件创建或注册类。但是,如果您需要访问许多不同的未封装类,则使用.ini文件可能更为方便。

创建.ini文件

以下示例说明了.ini文件的格式,它要求Squish包装两个类,com.example.product.Examplecom.example.product.Main

[general]
AutClasses="com/example/product/Example", "com/example/product/Main"

注意:对于像Eclipse这样的应用程序,使用ini文件或使用forName可能将类加载到错误的classloader实例中,或者默认的classloader可能找不到类。请使用自定义类加载器将Java类封装到Squish。

类名必须相对于CLASSPATH。如果您要封装的类不是默认封装的,则可以将其封装在Java标准库中,例如

[general]
AutClasses="java.util.Calendar","java.util.Date",\
"java.text.DateFormat","java.text.SimpleDateFormat"

当一个额外的类被封装时,所有超类、方法参数中的类以及返回类型类也会被封装。

在某些情况下,封装可能会失败。如果发生这种情况,在Spy工具中未封装成功的类将被识别为类型为Unknown

此外,可以设置一个额外的CLASSPATH,如果应用程序在执行过程中扩展了其CLASSPATH,可能需要它。例如,使用Squish for Web测试Java小程序时,CLASSPATHAPPLET HTML标签的ARCHIVE属性扩展。因此,从第一个示例继续,可以添加以下CLASSPATH设置。

[general]
AutClasses="com/example/product/Example", "com/example/product/Main"
AutClassPath="demo.jar"
AutClassBaseUrl="http://www.example.com/product/"

AutClassPath条目使用与CLASSPATH环境变量相同的语法,使用分号(Windows)或冒号(Mac/Linux/Unix)作为分隔符。整个值必须加引号,例如所示。

还可以设置一个AutClassBaseUrl。这是可选的,但是当设置时,它将添加前缀到AutClassPath条目中的所有路径,并且将AutClassBaseUrl本身添加到CLASSPATH

排除属性

由于将公共getter函数从属性自动添加到封装的类中(请参阅如何访问对象属性),这可能并不总是理想。当遍历应用程序对象树时,将获取这些属性。这将随后调用getter方法。

要排除某个属性,请使用JavaWrappingBlackList。此配置选项接受一个或多个类.属性名称列表。类包分隔符必须是一个斜杠。例如

[general]
JavaWrappingBlackList="java/awt/Component.locationonscreen"

配置原生Windows控件识别

为Squish创建识别原生Windows控件的INI文件

Squish可以通过在适当的.ini文件中放入一些信息来了解原生Windows控件。在原则上这与处理Java类非常相似;请参阅封装自定义类

不需要从头创建文件。相反,将Squish的etc文件夹中的winwrapper.ini文件复制过来,然后按照以下部分所述修改该文件。

在复制和修改了winwrapper.ini文件后,您必须让Squish知道该文件存在,这样Squish在需要的时候才能读取它。这是通过为要使用的每个AUT注册文件来完成的。有关更多信息,请参阅Wrapper的自定义文件

使用“winwrapper.ini”文件的一份副本而不是原始文件,可以确保您始终可以参考原始文件。例如,查看各种配置项的默认值。当然,当您升级Squish时,您的副本文件不会被覆盖(只要您不将其保存在Squish目录中)。

如果您已经有一个.ini文件,可能是因为您创建了它与Squish for Java一起工作,如下所述的包装自定义类,您可以使用现有文件,只需简单地将新的Windows专用行添加到其中。Squish不关心文件名或位置,只要它是一个包含正确信息的正确格式的.ini文件即可。

解决用于识别GUI控件的不同方法

默认情况下,Squish只有在它可以清楚地识别控件为控件(如嵌入式ActiveX控件)时,才会录制对原生控件的操作。然而,在使用Java时,Squish无法确定某物是原生控件还是Java控件。鉴于此,有必要通知Squish有关正在使用的原生控件,以便Squish可以正确记录对它们的操作。

例如,要告知Squish“MyCalendarCtrl”控件的调用是一个原生控件,请根据创建一个用于识别原生Windows控件的INI文件的说明创建一个配置文件,以下列内容为例

[Windows Wrapper]
Whitelist="MyCalendarCtrl"

注意:如果您不知道原生控件的类名,请咨询应用程序的开发者。或者,您可以使用诸如Spy++(由Microsoft Visual Studio提供)或AutoIt Window Info之类的工具。

要使Squish白名单中列出多个类,请用逗号分隔它们,并给每个名字加上引号。例如

[Windows Wrapper]
Whitelist="MyCalendarCtrl","AnotherControl","InternetExplorerCtrl"

也可以让Squish记录由您的应用程序启动的原生Windows程序上的事件。为此,您必须告知Squish由Windows应用程序使用窗口标题栏标题,以便Squish知道它属于您的应用程序。这是通过向.ini文件添加一个Extra Windows条目来实现的,例如

[Windows Wrapper]
Whitelist="MyCalendarCtrl","AnotherControl","InternetExplorerCtrl"
Extra Windows="Microsoft Word"

注意:Extra Windows的值必须是引号界定并逗号分隔的。要么指定确切的窗口标题,要么使用通配符。通配符*匹配任意数量的字符,而通配符?匹配任意单个字符。

访问基于ActiveX和COM控件的属性

Squish可以用于访问由ActiveX控件公开的所有属性。此ActiveX功能还用于自动化Infragistics和Exontrol等第三方供应商提供的控件。默认情况下,此功能处于禁用状态,因为它可能会对性能和测试稳定性产生轻微的运行时成本,但它很容易激活。

要激活ActiveX控件识别——实际上,所有COM控件的识别——请编辑创建一个用于识别原生Windows控件的INI文件中描述的.ini文件,添加一个COM Object Detection条目,并将此条目的值设置为1以启用它。

[Windows Wrapper]
COM Object Detection=1

winwrapper.ini参考

winwrapper.ini[Windows Wrapper]部分支持多个=对,如下所示按字母顺序描述。

黑名单密钥用于标识Windows包装器不应尝试记录或回放的窗口类名。匹配基于类名,尽管也支持通配符(*表示匹配任意多个字符)。

[Windows Wrapper]
Blacklist="#76423", "Outlook*"

黑名单对象密钥用于标识Windows包装器不应尝试记录或回放的对象。这些对象使用Squish真实(多属性)名称进行标识。

[Windows Wrapper]
Blacklisted Objects="{type='WindowsControl' text='OK'}", "{type='WindowsControl' text='Cancel'}"

注意:出于性能原因,只有使用type='WindowsControl'的对象名称或根本未指定type的对象名称,例如class='QWidget' text='Hello',可以被使用。

黑名单进程密钥用于标识Windows包装器不应尝试记录或回放的可执行文件。匹配是在可执行文件的文件名上进行的,但大小写不敏感。

[Windows Wrapper]
Blacklisted Processes="notepad.exe"

COM对象检测密钥在访问基于ActveX和COM控件属性的属性中进行描述。

额外的Windows密钥用于使Squish能够根据窗口标题挂钩到其他任意进程。值可以使用简单的glob样式的通配符(*表示匹配任意多个字符,?表示匹配任意单个字符)。例如,为了匹配任意OpenOffice窗口或计算器窗口,我们可以使用

[Windows Wrapper]
Extra Windows="*OpenOffice*", "Calculator"

白名单密钥用于标识Windows包装器应记录和回放的窗口类名。匹配基于类名,尽管也支持通配符(*表示匹配任意多个字符)。

[Windows Wrapper]
Whitelist="#31482", "Notepad++"

白名单对象密钥用于标识Windows包装器应记录和回放的对象。这些对象使用Squish真实(多属性)名称进行标识。

[Windows Wrapper]
Whitelisted Objects="{type='WindowsControl' text='OK'}", "{type='WindowsControl' text='Cancel'}"

注意:出于性能原因,只有使用type='WindowsControl'的对象名称或根本未指定type的对象名称,例如class='QWidget' text='Hello',可以被使用。

Android的启动参数

在测试套件设置页面的启动参数字段中可以设置一些特殊选项。这些选项是androidobserver的命令行选项,它处理与Android AUT的连接。无需参数的选项可以设置在startApplication字符串中,但无需使用-前缀。可用选项包括

©2024 The Qt Company Ltd. 本文档的贡献包括各自所有者的版权。
提供的文档是根据Free Software Foundation发布的GNU自由文档许可证版本1.3的条款许可的。
Qt及其相关标志是The Qt Company Ltd.在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者所有。