エージェント

実行からテストを実行するエージェントの概要。

エージェントは、選択されたコンピュータ上でジョブに定義されたステップを実行し、セットアップに属するデバイスを活用し、追跡可能な結果をハブにアップロードする役割を担います。エージェントは、すべてのアプリケーションと対応するTyphoon HILコントロールセンターのバージョンを含むDockerイメージを使用します。同じイメージから、エージェントの複数のインスタンスを生成することができます。Dockerコンテナを使用すると、全く同じ構成で簡単に実行を開始できるため、再現性と追跡可能性が確保され、環境、実行、テストの依存性が単一になるのを回避できます。

エージェントには、静的エージェントと動的エージェントの2種類があります。両者の主な違いは、動的エージェントは実行開始時に起動し、実行終了時に自動的に停止することです。動的エージェントは、ユーザーが手動で管理しない(起動も停止もしない)ため、ステータスを持ちません。また、ワークスペースはエージェントごとに自動的に設定されるため、ユーザーが設定する必要もありません。これらのエージェントは、複数のインスタンスを許可するプロパティを備えているため、選択したエージェントの複数のインスタンスを同時に実行できます。

エージェントに関する最も重要な情報は、エージェントテーブル図1 )で確認できます。ここでは、新しいエージェントの作成、更新、既存のエージェントの削除が可能です。このエージェント概要には、基本データのみが表示されます。 「構成」タブでは、静的エージェントがオフラインの場合にデータを構成できますが、動的エージェントはいつでも構成できます。「変更履歴」タブには、選択したエージェントのすべての変更が表示されます。 「実行」タブには、選択したエージェントで実行された実行のテーブルが表示されます。

1エージェントテーブル
注記: クリックすると ボタンをクリックすると、表の列をカスタマイズできます。設定に応じて、表示または非表示にすることができます。表の列は、表ヘッダーをドラッグ&ドロップすることで並べ替えることができます。2つの列の間にカーソルを置くと、列サイズ変更カーソルが表示され、列幅を変更できます。表に加えられた変更はすべて自動的に保存されます。

エージェント テーブル (図 1 ) には次の情報が表示されます。

  1. ステータス: 使用可能、オフライン、実行中、開始中 (静的エージェントの場合のみ表示されます)。
  2. タイプ(静的および動的)
  3. 名前
  4. エージェントが実行されているコンピュータ
  5. 環境(Dockerまたはホスト)
  6. インスタンス(動的エージェントのインスタンス数) - エージェントが使用されている場合、インスタンスの総数のうち実行中のインスタンスの数が表示されます。
  7. イメージ(環境がDockerの場合)

さらに、このテーブルからエージェントを開始または停止することもできます。

エージェントを起動

ユーザーが開始するまで 役員コンピューター静的エージェントのステータスは赤です そして、 遊ぶ アクションが利用可能です。オフィサーが起動したら、再生ボタン()をクリックしてエージェントを起動します。静的エージェントが正常に起動すると、ステータスが緑色になります。 、そして 停止 ボタンが表に表示されます。 停止 ボタンをクリックするとエージェントが停止し、ステータスが赤に戻ります。オフィサーがシャットダウンされると、静的エージェントはオフラインになります。

静的エージェントの詳細

2エージェントの詳細

詳細セクションには、次のタブがあります。

  1. 概要タブ:ここではエージェントの名前と説明を更新できます。また、エージェントのステータス、使用されているイメージ、エージェントが実行中のコンピューターが表示されます。
  2. 構成タブ:エージェントの構成データを表示します。エージェントがオフラインのときに設定できます。
  3. 変更履歴タブ:エージェントの変更履歴が含まれます。
  4. 実行タブ:選択したエージェントで実行された実行のテーブルが含まれます。
  5. ログ タブ:静的エージェントのログが含まれます。
3動的エージェントの詳細

また、エージェントがオフラインの場合、アクション エージェントを削除 クリックすると表示されます ボタン。エージェントは、そのエージェントに関連付けられたジョブがない場合にのみ削除できます。

注意:エージェントを削除すると、実行との関連付けも削除されます。

エージェントを作成

新しいエージェントを追加するには、 ボタンをクリックします。 新しいエージェントを追加 形状 (図4()フォームはエージェントの種類によって異なります。エージェントが静的な場合はワークスペースを入力する必要がありますが、エージェントが動的な場合はワークスペースは入力せず、インスタンスの数を入力します。これにより、ユーザーは同じエージェントのインスタンスを複数実行できるようになります。

4新しいエージェントの追加フォーム

ここから、次のように新しいエージェントを定義できます。

  1. Typhoon Test Hub全体で参照する名前を入力してください。名前はそれぞれ一意である必要があります。
  2. 説明を書いてください。
  3. このエージェントを実行するコンピューターを選択します。
  4. エージェントのタイプ (静的または動的) を選択します。
  5. 静的エージェントの場合はワークスペース パス、動的エージェントの場合はインスタンスの数を指定します。
  6. 実行前にワークスペースをクリーンアップする必要があるかどうかをマークします(デフォルトでは true に設定されています)
  7. Officer が再起動したら、静的エージェントを自動的に起動する必要があるかどうかをマークします。
  8. 環境タイプ(Docker または Host のいずれか)を選択します。
  9. エージェントで使用するイメージを選択してください(環境タイプがDockerの場合)。これは、使用するTHCCのバージョンを表す可能性が高いです。THCCの新しいリリースごとに、新しいイメージとして提供されます。
注:フォームを保存するには、すべての入力フィールドが有効である必要があります。必須フィールドには*が付いています。

エージェント環境

エージェントはホスト上またはDockerコンテナ内で実行できます。

ホストエージェントは、 Officer が起動されたホストコンピューター上でプロセスとして実行されます。このエージェントはコンピューターのファイルシステムにアクセスでき、ユーザーがシェル/コマンドウィンドウに入力するのと同じように、任意のコマンドを実行できます。ホストエージェントは、ファームウェアの構築、アップグレードのインストール、コンピューターから Typhoon テストハブへのファイルのアップロードなどのジョブに使用できます。また、THCC がそのコンピューターにインストールされている場合は、Typhoon テストの実行にも使用できます。ホスト上で複数のエージェントを起動できますが、一度に THCC テストを実行できるのはそのうちの 1 つだけです。ユーザーが同じコンピューターで THCC を手動で使用している場合、Typhoon テストハブの自動ジョブに干渉する可能性もあります。Officer がインストールされると、エージェントがデフォルトの Python 環境として使用する仮想 Python 環境が作成されます。

Dockerエージェントは特別なDockerコンテナ内で実行されます。コンピュータにはDockerがインストールされている必要があります。Dockerエージェントを起動する前に、担当者がDockerイメージをプルします。Typhoon Test Hubは、THCCがプリインストールされたDockerイメージを提供します。Dockerエージェントはホストコンピュータのファイルシステムにアクセスできません。複数のDockerエージェントを起動し、それぞれでTHCCテストを並行して実行できます。各Dockerエージェントには、構成タブに表示されるように、Dockerコンテナの動作をより詳細に制御するためのいくつかの設定オプションがあります。

構成タブ

設定データはこのタブから確認できます(図5 )。静的エージェントはオフライン時にのみデータを更新できますが、動的エージェントの場合はいつでもデータを設定可能です。フォームはエージェントの種類と環境の種類によって異なります。

5エージェントの構成

エージェントが起動時にコンピュータに与えるアクセスの種類を設定できます。これらのアクセスの種類は、Dockerコンテナの標準オプションのサブセットです。これらのオプションの一部については、以下で詳しく説明します。

  1. イメージ: THCCのバージョンを選択できます。カスタムイメージを作成することもできます。
  2. ネットワークへのアクセス:
    • : 最もよく使用される - Dockerコンテナのデフォルトオプション。これによりDockerエージェントネットワークが分離され、他のコンテナに干渉することなくTHCCインスタンスを利用できるようになります。このモードでTyphoon Test Hubを実行する場合、HILデバイスのIPとシリアル番号を通知する必要があります。 エージェント アクセスできる必要があります。
      • --ethdev="00604-00-000001、00604-00-000002"
      • --discovery-ip="192.168.32.5,192.168.32.6"
    • ホスト: エージェントとコンピュータ間のネットワーク分離は行われません。そのコンピュータでは1つのエージェントのみ実行できます。ホストネットワークを選択すると、ホストにインストールされ起動されているTHCCインスタンスに接続するテストが実行される可能性があります。
  3. ボリューム:コンテナによって生成されたデータを永続化するために使用できます。これは、ホストコンピュータとコンテナ間でデータを共有する方法です。ホストロケーションは、コンピュータ上のディレクトリパスです。これはコンテナ内の場所に接続され、そのディレクトリが共有されます。ホストからエージェントにマッピングされる追加のボリュームを定義することもできます。Dockerボリュームに関する追加情報は、 Dockerのウェブサイトをご覧ください。
  4. ホストデバイスへのアクセス:エージェントがUSB経由のホストデバイスにアクセスするか、コンピューターに接続されているすべてのデバイスにアクセスするか、またはアクセスを許可しないかを選択します。デフォルトでは、コンテナ内のプロセスはホストデバイスにアクセスできませんが、これらのオプションを選択すると、テストハブは追加の権限でエージェントを起動します。これらのオプションには注意してください。
  5. ルートユーザーとして実行:選択すると、エージェントはコンピュータに対してルートレベルのアクセス権(管理者権限)を持ちます。Dockerコンテナを実行する際のベストプラクティスの一つは、非ルートユーザーでプロセスを実行することです。これは、コンテナ内でルートとして実行されているアプリケーションからユーザーが抜け出すことができれば、ホスト上でルートユーザーアクセスを取得できる可能性があるためです。さらに、コンテナを非特権ユーザーに設定することは、権限昇格攻撃を防ぐ最善の方法です。
  6. 再起動: エージェントがいつ再起動するかを定義します (つまり、停止してすべてのファイルを削除します)。
    • 一度もない
    • 処刑前
    • 実行後:これにより、実行で使用されたリソースが解放され、次の実行が新しく開始されます。

変更履歴タブ

選択したエージェントの変更履歴はこのタブから確認できます (図 6 )。

6エージェントの変更履歴

すべてのスナップショット(イベント)はJSON形式でエクスポートされ、 ボタンをクリックします。表内の各行を選択すると、単一のスナップショットが表示され、変更内容をプレビューしたり、選択したスナップショットと任意のスナップショットを比較したりできるようになります。

7選択したエージェントのスナップショットプレビュー

単一のスナップショット(イベント)はJSONとしてエクスポートでき、 ボタン。スナップショットは UI または JSON として比較できます。JSON オプションでは、Monaco エディターを使用して 2 つのスナップショット間の違いをより明確に表示できます。

8 UIを介したスナップショットの比較
9 JSONによるスナップショットの比較