在每个测试用例之后 Squish 关闭我的应用程序
Posted
技术标签:
【中文标题】在每个测试用例之后 Squish 关闭我的应用程序【英文标题】:Squish close my Application after every Test Case 【发布时间】:2014-04-25 11:52:45 【问题描述】:测试工具 Squish 在每个测试用例之后都会关闭我的应用程序,我该如何避免这种情况? 我什至取消选中“自动启动 AUT”并使用 startApplication() 启动应用程序。我也尝试了 attachToApplication() 方法,但没有成功!
非常感谢我的朋友
马丁
【问题讨论】:
【参考方案1】:基本上,如果您默认使用 Squish 或使用“startApplication”启动 AUT,Squish 将在测试用例之后立即终止应用程序。
幸运的是,Squish 提供了一种方法来满足您的情况,即attachToApplication
。
当使用这种方式时,当 AUT 完成一个测试用例时,squish 不会终止它。参考此链接:Attaching to running applications。附加应用程序分为三个步骤。我已经检查过,它适用于windows平台,我想它也适用于其他平台。
使用特定端口启动 AUT。您需要在 Windows 中使用名为 startxxxAUT
、startwinaut
的 squish 应用程序启动应用程序。此应用程序位于您的 Squish 安装目录下。例如<Squish-Install-DIR>/bin/startwinaut
startwinaut --port=8899 c:/Installed/notepad/notepad++.exe
下一步,在 squish 中注册您的应用程序,您可以使用命令 squishserver --config addAttachableAUT note 8899
来注册您的 AUT。或者,您可以使用 Squish IDE 执行此操作。 <Edit>--<Server Settings>--<Manage AUTs...>--<Attachable AUTs>--<Add>
。参考屏幕截图:
请记住,端口号应与您用于启动 AUT 的端口号相匹配。
最后一步,在脚本中附加 AUT,如下所示:
def main():
attachToApplication("note")
snooze(10)
顺便说一句,如果您需要以自动方式启动 AUT(不是手动输入命令),您可以使用“subprocess.popen
”执行命令“startwinaut --port=8899 c:/Installed/notepad/notepad++.exe
”来启动 AUT。
希望对你有帮助,谢谢!
【讨论】:
【参考方案2】:在设置上下文以启动测试脚本时,可附加 AUT 方法需要付出额外的努力。
将 AUT 置于正确的上下文中对于任何要执行的自动化测试都很重要。 Squish 默认行为是在测试结束时终止应用程序,以保证您在同一时间开始和结束测试。在正常的方法中,无需担心将应用程序带到一个常见的已知状态,因为它总是会通过启动应用程序开始并通过终止应用程序来停止。
正如@Lowitty 所解释的,如果您要使用附加到已经运行的 AUT 方法(如果这符合您的需要),那么您必须确保在每个测试结束时使用正确的清理步骤,这将设置您的AUT 到初始上下文,以便下一个测试脚本可以从那里重新开始。
【讨论】:
以上是关于在每个测试用例之后 Squish 关闭我的应用程序的主要内容,如果未能解决你的问题,请参考以下文章
PHPUnit -setUp() - 它在每个测试用例之前和之后运行吗?
如何打开和关闭应用程序并仍然记录每个测试用例? (RobotFramework/AppiumLibrary)