2

アプリケーションの自動化に関する情報 [「ベスト プラクティス」を推測するのをためらっています] を探しています。具体的には、従来の手動の手段 [GUI を操作する人間] によって予測可能に再現可能なものを、ユーザーによってスケジュールされ、「自動的に」実行されるものに置き換えることを指しています。

自動テストを実行するために内部でAutoIT を使用し、アプリケーションの無人処理を提供するために同じアプローチを検討しましたが、スケジュールされた「自動化」、したがって自動化を「中断」します。

事前定義された一連のアクションを制御するために、既知のイベントと固定引数を使用して独自のスケジューラを構築することを恥ずかしがり屋ですが、どのアプローチを評価/検討する必要があり、どのツールが必要になるでしょうか?

追加情報: この機能をアプリケーション コンテキスト内で「バッチ処理」と呼ぶ人もいます。

4

3 に答える 3

2

一般に、UI を自動化することは危険な行為です。これは、短期的な問題に対する便利なハックになる可能性があります。AutoHotKey を使用して、いくつかの状況で退屈なタスクを実行していることに気づきました...ただし、そのタスクが変更を実装するためのコードを記述する価値がない場合に限ります (つまり、1 回限り、 15 分のタスク)。

そうしないと、一部の画面の応答が遅い、UI が一貫していないなどの理由で、実行に一貫性がなくなる可能性があります。ほとんどのアプリケーションには利用可能な API があり、それを使用しないことは、99% のケースで取得して使用するよりもはるかに苦痛になります。 .

UI がなく、画面のスクレイピングや操作を余儀なくされるという不幸ではあるが可能性のある状況では、自動テストを実行するツールはおそらく最高のものです。これにより、アプリの状態を (ある程度)確認できるため、セーフティ ネットを構築できます。さらに、ワークステーションをこのタスク専用にします... キーボードとマウスを好奇心旺盛なユーザーから遠ざけるようにロックします。(これには、リモート デスクトップまたは VNC スタイルの接続が適しています。プロセスを開始して切断することで、改ざんを防ぐことができます。)

しかし、私はそのアプローチは絶望的な最後の手段としてのみ考えています. API を操作することは、はるかに、はるかに、はるかに (そこに十分な "fars" が得られたでしょうか?) より持続可能です。

于 2009-02-09T19:33:27.117 に答える
0

GodekeとDaveは絶対に正しいので、利用可能な場合はAPIが最適なルートです。ただし、実際にはこれが不可能な場合があり、GUI自動化ルートを使用する必要があります。自動化を実行するための前述の専用ワークステーションに加えて、問題が発生した場合のデバッグやバックトラックが容易になるように、いくつかの監査証跡にコーディングすることをお勧めします。バッチ処理の自動化では、どのレコードが処理されたか、いつ処理されたか、どのように処理されたかの詳細なログを保持する必要があります。レコード自体(ネイティブアプリケーション内)が自動化によって更新/処理されたことを反映するように設定する必要があります。たとえば、各レコードに更新可能なメモ/コメントフィールドがある場合、自動化はこのフィールドに「Processed by Automation user、2009-02-25 10:05:11 AM、」のようなテキストを追加する必要があります。

于 2009-02-26T14:42:44.627 に答える
0

私の理解が正しければ、特定のソフトウェア システムで定義済みのアクション リストを実行するツールを使用して、自動処理を実行したいと考えていると思います。これは、自動テストとは異なります。

テスト用のツールを使用して処理を実行することは避けてください。多くの主要なソフトウェア システムには、ユーザーが直接操作せずにアクションを実行するために使用できるパブリック API があります。これは、自動化されたプロセスをスケジュールするためのより堅牢で信頼性の高い方法です。使用しているソフトウェアのベンダーに問い合わせてください。要求に応じて API を入手できる場合もあります。

于 2009-02-09T19:30:39.293 に答える