4

私たちのデータ収集システムは、一緒に実行される多くのプログラムとスクリプトで構成されており、いくつかは順次、ほとんどは並行して、異なるマシン上で実行されています。

Jenkins を使用して単体テストをビルドおよび実行します。

システムへの入力としてデータ ジェネレーターを使用し、データ取得チェーンの出力をチェックすることで、システム全体をテストします。

システムをテストする手順の簡略図:

  1. システムの復元 (データベース、リポジトリ内のパッケージ、仮想マシンの再起動)
  2. 必要に応じてシステムを構成します (使用する構成ファイルを作成し、データベースを更新します)。
  3. 必要ないくつかの親プロセスを起動し、準備が整うまで待ちます
  4. データ入力開始
  5. 完了したら、メトリクスと結果を収集し、予想される結果と比較し、ログでエラー メッセージを確認します。

理想的には、さまざまな構成と入力で実行する必要があります。

そのためにどのツールを使用しますか? それとも、ジェンキンスで直接やろうとしますか?

4

4 に答える 4

2

システムの複雑さに応じて、多数のツールを使用できます。一般に、最後に結果を視覚化する何らかのジョブ フローが必要です。決定的な答えを与える代わりに、いくつかのツール/プラグインを紹介させてください。

ジェンキンス:

  • MultiJob プラグインを使用すると、並列ジョブ フェーズを使用してワークフローをフェーズに指定できます
  • BuildFlow プラグインを使用すると、単純な DSL で並列ジョブと依存ジョブを使用して独自のビルド フローを作成できます。
  • メトリクスを収集して経時的にプロットする Plot プラグイン
  • テストから JUnit スタイルの xml または JSON をキャプチャする xUnit プラグイン。たとえば、小さなスクリプトや、Python の py.test などの xUnit フレームワークまたはより凝ったものによって生成されます。
  • OFrandeDiEnneの回答に関連するRobotFramework プラグイン。

Vagrant: Vagrant は基本的に、VirtualBox VM 上のコマンドライン インターフェイスです。これを使用して複数の VM を同時に起動できます (Jenkins からも実行できます)。Puppet、Chef、SaltStack などのプロビジョナーを使用して、データベースや構成などをセットアップします。

ランタイム デザイン オートメーション (RTDA) によって提供されるようなビルド フロー ツール。商業。これはおそらくやり過ぎです。

于 2013-05-07T10:14:28.917 に答える
1

テスト サーバーにOpenSSHまたはその他の SSH サーバー サービスがある場合は、SSH Chanel 経由でテストを開始できます。

たとえば、Java 言語では次のようになります。

  1. TestNGまたは JUnit を使用してテスト ケースを整理できます。どちらも Jenkins と簡単に統合できます。
  2. テスト コードでは、JSCHをインポートし、独自の ssh クライアントを作成して、リモート サーバーでコマンド ラインを実行します。または、コマンド ラインを plink.exe (Putty の一部) またはコマンド ラインの実行にも使用される他のサード パーティの ssh クライアントにプッシュします。並列実行の場合は、マルチスレッドを使用してコマンドをプッシュするだけです。
  3. 返されたコードとメッセージを確認してください。

同様に、Robot Framework を使用してこれを行うこともできます。これは、Jenkins と簡単に統合することもできます (これにはサードパーティのプラグインがあります)。また、ootb ssh ライブラリもあります。

さらに、アプリケーションにコマンド ライン エントリがない場合は、AutoIT ライブラリを使用して GUI 経由でアプリケーションを操作することもできます。

于 2013-05-10T04:45:55.680 に答える