【问题标题】:Reset office application state on start在启动时重置 Office 应用程序状态
【发布时间】:2021-10-14 07:19:55
【问题描述】:

我使用 squish 进行测试,但它不会始终正确关闭测试的应用程序。 在这种情况下,office(Word、Excel、PowerPoint)开始使用一些恢复选项(恢复以前的文档,出现一些对话框窗口等)我需要在开始新测试之前重置应用程序的状态。

【问题讨论】:

  • 替代方案是禁用恢复选项,或配置它们以使其不会妨碍自动化,或让测试脚本在显示恢复选项/GUI 时处理应用程序。

标签: ms-office word squish


【解决方案1】:

正常关闭Office应用不是更好吗?

例如,您可以使用自动化来自动化 Office 应用程序。恢复选项意味着主机应用程序未正常关闭或发生意外情况(崩溃?)。因此,我建议询问squish 开发人员,他们的软件出了什么问题,而不是寻找解决方法来压制证据。

【讨论】:

  • Squish 带有一些正常的默认行为,例如,如果在测试脚本退出时仍在运行,请确保杀死自动化应用程序(以避免延迟应用程序导致其他问题)。在 Windows 上并不总是可以优雅地关闭应用程序(无论如何 Squish 都不会这样做),测试脚本应确保以合适的方式关闭应用程序。 Squish 允许声明一个名为“cleanup()”的函数,它可以在 main() 函数退出后执行此操作。
  • 杀死进程并不是阻止它们的正确方法。那时,Squish 开发人员并不关心用户。
  • Eugene,鉴于您刚才所说,听起来您并不熟悉自动化 GUI 测试的要求。 1)应用程序必须在下一个测试用例之前关闭。 2)应用程序可能不会退出。 3) 应用程序可能具有阻止关闭其窗口的模式对话框(假设关闭窗口会退出应用程序)。 4)关闭应用程序对话框可能会导致更多的对话框,无休止。 5)关闭应用程序窗口可能不会关闭应用程序。最后但并非最不重要的一点是,kill 对于自动化 GUI 测试很有用,因为它会练习经常被忽略的进程以无序方式完成的情况(断电、崩溃、被用户杀死)。
  • Eugene,如果您有想法如何以一种避免杀死应用程序的方式解决这些问题,请告诉我,我很乐意将它们转发给 Squish GUI 测试器的开发人员。
  • 您需要等待一段时间并让主机应用程序关闭,而不是杀死进程。每个 Office 应用程序都有完成这项工作的 CloseQuit 方法。如果应用程序没有关闭 - 这是一个很好的指标,表明代码中没有释放底层 COM 对象引用。通常应用程序正确关闭,如果没有 - 问题出在自动化代码中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2016-08-25
  • 1970-01-01
相关资源
最近更新 更多