squishserver

squishserver 负责处理 squishrunner 和待测试应用程序之间的通信。它有三种使用模式:服务、停止和配置。

squishserver必须在与AUT相同的机器上运行,尽管squishrunner可以在不同的机器上运行。

如果没有指定的命令行选项启动squishserver,它将监听端口号4322的连接,并且仅接受来自本地主机(127.0.0.1)的连接。要使它接受来自其他主机的连接,必须指定这些主机。为此,squishserver读取文件/etc/squishserverrc(在类似Unix的系统上)或C:\squishserverrc(在Windows上)。如果找不到文件,squishserver将尝试读取SQUISHDIR/etc/squishserverrc(在类似Unix的系统上)以及在Windows上的SQUISHDIR\etc\squishserverrcSQUISHDIR\etc\squishserverrc.txt

squishserverrc文件可以使用这种格式的行来指定允许连接的IP地址

ALLOWED_HOSTS=ip-address1 ip-address2 ...

在指定的IP地址中可以使用通配符来匹配多个IP地址。例如

ALLOWED_HOSTS=192.168.0.* ...

可以通过在squishserverrc文件中添加形如PORT=端口号的行来更改squishserver监听的端口号。

注意:Squish不创建squishserverrc文件。如果需要,请使用纯文本编辑器手动创建。

服务

使用不带命令行选项的squishserver,或使用此处记录的选项,以拥有squishrunner可以使用的服务器。

用法

squishserver [--quiet] [--verbose] [--configfile configfile] [--host address] [--port port] [--local] [--listenfile listenfile] [--daemon] [--logfile logfile] [--disable-presence]

方括号中的项是可选的。

选项

可以使用不带任何选项的squishserver,或者使用形如--port 端口号的选项来指定要监听的端口号。命令行选项会覆盖在squishserverrc文件中指定的任何PORT=端口号

另一个有用的选项是--host address,它可以指定要监听的IP地址。默认情况下,它接受分配给运行squishserver的机器上的任何IP地址的连接。

如果使用了--verbose选项,squishserver将产生比通常更多的输出。额外的输出设计成有助于调查远程服务器连接问题或Qt库路径设置不正确等问题。

在类似Unix的平台上(即在Windows上以外),可以指定--daemon选项。如果使用此选项,则squishserver将在后台运行。这意味着服务器将从控制终端分离,并停止向标准输出或标准错误打印任何内容。

使用--logfile选项将所有日志消息以及任何重定向的AUT输出写入给定的文件路径。

使用--disable-presence选项禁用SSDP服务发现。默认情况下,squishserver使用此协议在局域网上广告自己存在。

--local选项由squishide在启动本地squishserver时内部使用。它不打算供最终用户使用。此选项禁用SSDP发现,并默认监听127.0.0.1。它选择介于49152和65535之间的端口号,并将其打印到标准输出。

停止

要停止squishserver的运行,请使用--stop选项。

用法

squishserver --stop [--host address] [--port port]

如果未指定端口,服务器将使用Squish的默认端口号进行连接。

示例

squishserver --stop

这指示squishserver关闭。在几乎所有使用场景中,squishrunner无法在没有squishserver的情况下运行。

配置squishserver

使用带有--config选项的squishserver来更改各种设置。

用法

squishserver --config 操作

大多数配置命令默认操作 server.ini文件,该文件位于Squish用户设置目录的ver1中。您可以通过使用--configfile选项提供不同配置文件的位置。

squishserver [--configfile /path/to/myserver.ini] --config 操作

每次只能指定一个配置操作。(为了向后兼容,支持一个可选的附加选项--settingsGroup settingsGroup。如果指定,它告诉squishserver要使用哪个设置组。Squish不支持设置组,并且该选项已被弃用。)

示例

squishserver --config addAppPath C:\squish\examples\qt\addressbook

这将把C:\squish\examples\qt\addressbook路径添加到Squish搜索AUT的路径列表中。

可以通过使用$(NAME)语法在命令行中引用环境变量(尽管在某些shell中——通常是Unix中使用的shell——可能需要对$()部分进行转义)。

squishserver --config addAUT addressbook $(SQUISHPATH)/examples/qt/addressbook

这里我们添加了一个新的AUT,我们使用了SQUISHPATH环境变量来完成此操作——它必须已经被设置之前。

操作

选项描述
addAppPath 路径将路径添加到squishserver在启动AUT时寻找应用程序的路径列表中。
removeAppPath 路径从squishserver在启动AUT时寻找应用程序的路径列表中移除路径。
addAUT aut 路径将映射到指定路径的应用程序添加。如果同一应用程序的不同版本具有相同的可执行名称并出现在使用addAppPath选项注册的不同路径中,此选项指定Squish应使用哪个版本,以避免任何歧义。
removeAUT aut删除应用程序。
addAttachableAUT aut [主机:]端口指定可以附加到的AUT。
removeAttachableAUT aut注销之前使用addAttachableAUT操作注册的AUT。
setWrapperLibs aut lib1[,lib]*用于指定AUT的包装库或库。
setUsesBuiltinHook aut 开|关启用或禁用Squish期望一个内置钩子而不是默认的非侵入式钩子。在使用此选项之前,请阅读使用内置钩子
setAUTTimeout Squish应该在多少秒后超时并使用测试失败退出,如果AUT在被启动后没有响应。默认值为20。
setResponseTimeout Squish应该在多少秒后超时并使用测试失败退出,等待AUT的响应。默认值为300。这与Object waitForObject(objectOrName)函数使用的超时不同。
setAUTPostMortemTimeout 毫秒设置 Squish 在第一个 AUT 进程退出后应等待的毫秒数。这适用于实际以新/独立(子)进程启动 真实 AUT 的 AUT,如 Java Web Start 和第三方 Java 应用程序启动器。在这些情况下,第一个 AUT 进程可能在 Squish 连接到第二个(真实的)AUT 进程之前就退出了。如果不在这段时间内成功连接到第二个 AUT 进程,Squish 将会因错误而放弃尝试启动(并连接)AUT,除非在此设置中指定的毫秒数内成功连接到第二个 AUT 进程。默认值为 1500。
setHardExitTimeout 毫秒在向应用程序发送 SIGTERM 之后,squishserver 应该等待多少毫秒,如果没有收到响应,则发送 SIGKILL 杀死应用程序。这个时间将添加到 setSoftExitTimeout 的值。在 Windows 上,此选项不起作用。默认值为 100 毫秒。
setSoftExitTimeout 毫秒在 squishrunner 结束后,squishserver 应该等待多少毫秒,如果应用程序还在运行,则在自动启动或在 ApplicationContext startApplication(autName) 调用中启动应用程序时,应杀死应用程序。默认值为 2000 毫秒。
setBrowserPath browser executable浏览器及其可执行路径:firefox (Firefox),ie (Microsoft Internet Explorer),edge (Microsoft Edge),或 safari (Safari),chromium-based (基于 Chromium 的应用程序)。可执行文件应包含浏览器可执行文件的完整路径。

Squish 支持特定桌面平台上的特定浏览器“即插即用”。但是,也可以通过使用 Squish 的 网络代理 来测试其他浏览器或在非桌面平台上(例如,iPhone 和类似设备)进行测试。

setJavaVM filenameJava 可执行文件的完整路径。例如,Linux 上为 /usr/lib/jvm/java-6-sun/jre/bin/java
setLibJVM filenameJava 虚拟机的完整路径。例如,Linux 上为 /usr/lib/jvm/java-6-sun/jre/lib/i386/client/libjvm.so
setJavaVersion version要使用的 Java 版本。例如,1.5.0_11
setSWTJar filename对于使用 SWT GUI 库的 Java AUT,使用该库的 .jar 文件的完整路径。例如,Windows 上为 C:\swt\swt.jar
setConfig aut path注册一个实现 Java 扩展 API 的自定义 .jar 文件。
removeConfig aut path注销一个实现 Java 扩展 API 的自定义 .jar 文件。

squishserver 也有一些其他配置选项,特别是 usesBuiltinHooksetJavaHookMethod,用于向后兼容,不应该使用。

©2024 The Qt Company Ltd. 内包含的文档贡献是各自所有者的版权。
提供的文档根据自由软件基金会发布的版本 1.3 的 GNU 自由文档许可证 许可。
Qt 和 respective logos 是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。