代码之家  ›  专栏  ›  技术社区  ›  SAMills

无人值守处理-应用程序自动化

  •  2
  • SAMills  · 技术社区  · 16 年前

    我在寻找自动化应用程序的信息[我犹豫着去推断“最佳实践”]。我特别指的是用用户计划并“自动”执行的内容替换那些可以通过传统手动方式(人工操作GUI)预测可重复的内容。

    我们在内部使用autoit来执行自动化测试,并考虑了同样的方法来提供无人值守的应用程序处理,但是由于用户可能“意外”地与应用程序交互,我们不愿意这样做。 并行地 执行计划的“自动化”,从而“打破”自动化。

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

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

    3 回复  |  直到 7 年前
        1
  •  2
  •   Godeke    16 年前

    一般来说,自动化用户界面是一种危险的做法。对于一个短期的问题来说,它是一个有用的黑客:我发现自己在某些情况下使用autohotkey来运行一些乏味的任务…但是,只有当任务不值得编写代码来实现更改时(即一次15分钟的任务)。

    否则,由于某些屏幕响应滞后、UI不一致等原因,您可能会遇到运行不一致的问题。大多数应用程序都有可用的API,如果不使用它,将比在99%的情况下获取和使用它要痛苦得多。

    在不幸但可能的情况下,没有用户界面,您只能进行屏幕抓取/操作,执行自动测试的工具可能和您所得到的一样好。它允许你 验证 应用程序的状态(在某种程度上),因此可以在其中建立一些安全网。此外,我还将为这项任务指定一个工作站…把键盘和鼠标锁在远离好奇用户的地方。(远程桌面或VNC风格的连接很好地解决了这一问题:您可以启动进程并断开连接,使其不受篡改。)

    然而,我认为这种方法只是不顾一切的最后手段。操作一个API是远、远、远、远(我在其中得到了足够的“fars”吗?)更可持续。

        2
  •  0
  •   Dave Swersky    16 年前

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

    我强烈建议您避免使用用于测试的工具来执行处理。许多主要的软件系统都有公共的API,您可以使用这些API执行操作,而无需直接的用户交互。这是一种更加健壮和可靠的自动化流程调度方法。请联系您正在使用的软件的供应商,有时可以根据要求提供API。

        3
  •  0
  •   Tom E    16 年前

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

    推荐文章