2

我正在寻找自动化应用程序的信息 [我犹豫推断“最佳实践”]。我特别指的是用由用户安排并“自动”执行的东西来替换通过传统手动手段[人类操作 GUI] 可预测的可重复的东西。

我们在内部使用 AutoIT 来执行自动化测试,并考虑使用相同的方法为我们的应用程序提供无人值守处理,但我们不愿意,因为用户可能会“意外”与应用程序进行交互,同时执行预定的“自动化”,因此“打破”自动化。

羞于在我们自己的调度程序中构建具有已知事件和固定参数来控制一组预定义的操作,我应该评估/考虑哪些方法以及需要哪些工具?

附加信息:有些人将此功能称为应用程序上下文中的“批处理”。

4

3 回答 3

2

一般来说,自动化 UI 是一种危险的做法。对于短期问题,这可能是一个有用的技巧:我发现自己在某些情况下使用 AutoHotKey 来运行一些乏味的任务……但前提是该任务不值得编写代码来实现更改(即一次, 15 分钟任务)。

否则,您可能会因某些屏幕响应迟缓、UI 不一致等而遭受运行不一致的困扰。大多数应用程序都有可用的 API,在 99% 的情况下,不使用它比获取和使用它要痛苦得多.

在没有 UI 并且您沦为屏幕抓取/操作的不幸但可能的情况下,执行自动化测试的工具可能与您将获得的一样好。它允许您验证应用程序的状态(在某种程度上),从而可以建立一些安全网。此外,我会专门为这项任务配备一个工作站......键盘和鼠标被锁定,远离好奇的用户。(远程桌面或 VNC 风格的连接非常适合:您可以启动进程并断开连接,使其能够防止篡改。)

但是,我认为这种方法只是一种绝望的最后手段。操作 API 远、远、远、远(我在那里获得了足够的“远距离”吗?)更可持续。

于 2009-02-09T19:33:27.117 回答
0

如果我理解正确,您想使用某些工具进行自动化处理,该工具将在给定的软件系统中执行预定义的操作列表。这与自动化测试不同。

我会敦促您避免使用用于测试的工具来执行处理。许多主要的软件系统都有公共 API,您可以使用这些 API 来执行操作,而无需直接的用户交互。这是一种更强大、更可靠的方式来安排自动化流程。联系您正在使用的软件的供应商,有时 API 可根据要求提供。

于 2009-02-09T19:30:39.293 回答
0

Godeke 和 Dave 是绝对正确的,如果可用,API 是最好的途径。然而,实际上这有时是不可能的,你必须走 GUI 自动化路线。除了前面提到的运行自动化的专用工作站之外,我建议在一些审计跟踪中编码,以便在出现问题时更容易调试或回溯。您的批处理自动化应该详细记录处理了哪些记录、处理时间以及处理方式。您应该设置它,以便记录本身(在本机应用程序中)反映它是通过自动化更新/处理的。例如,如果每条记录都有一个可更新的注释/评论字段,则自动化应在此字段中添加文本,例如“由自动化用户处理,2009-02-25 10:05:11 AM,

于 2009-02-26T14:42:44.627 回答