「なぜ働かないの?」
-テスト中です。
こんにちは、Habrolyudi。
トートロジーに関する私の経験、つまり自動テストの自動化を皆さんと共有することにしました。 ご存知のように、回帰テストに時間を無駄にしないために、スマートテスターは手以外の何かを使用してテストを実行するというアイデアを思いつきました。
しかし、テストの最初から結果を取得するまでの全サイクルを自動化したかったのです。 だから...
チャレンジ。
人間の介入なしで、異なるオペレーティングシステム上のアプリケーションの周期的なテストを自動化します。
状態。
ソフトウェア製品があり、その新しいバージョンが積極的に開発されています。 したがって、回帰テストの必要性は明らかです。 マルチプラットフォーム製品-異なるオペレーティングシステムでテストする必要があります。
「鉄」計画では、5台のテストコンピューター、1台のサーバー、1台のFTPサーバーがあります。これらはすべて「テストファーム」と呼ばれています。 私の場合の難しさは、これらすべてが私から2000キロ離れていて、アクセスはRDPとKVMを介してのみであったことでした。
プログラムでは、テストアプリケーションはQtを使用して作成され、テスト用にSquishが選択されます。 Acronis Snap Deployは、テストコンピューターにさまざまなオペレーティングシステムをインストールするために使用されます。
解決策。
アプリケーションを直接テストするスクリプトがあります。 サイクルでそれらを起動し、結果を取得し、OSを変更し、起動し、結果を取得する必要があります。 最後に、これらの結果を何らかの形でフォーマットするとよいでしょう。
システムイメージは、Acronis Snap Deployを使用してターゲットコンピューターにどのように自動的にインストールされますか? イメージをより自動モードでインストールするには、PXEサーバーをキャッチしたときにターゲットコンピューターを再起動する必要があります(コンピューターは最初にネットワークカードから起動するように構成する必要があります)。 PE環境がロードされ、ローカルでシステムイメージの展開を実行できます。 事前にPE環境を準備する必要があります。つまり、Aronis Snap Deployコマンドラインユーティリティ(asdcmd.exe)とpsexesvc.exeサービスをアセンブルして埋め込み、Acronis PXEサーバーに入れてデフォルトの負荷を設定する必要があります。
スクリプトをどのように実行しますか? スケジュールに従ってテストファームのサーバー(以下、これについてのみ説明します)で.batファイルが起動され、スクリプトが実行されます。
したがって、.batファイルと特にpsexecのすべての力が実際に明らかにされているチェーン:
特定の時間に.batファイルが起動し、ターゲットコンピューターに必要なシステムが展開されます。
- アクロニスサービスを開始します。それ以降はオフにします。
- IP = comIPでターゲットコンピューターを送信して再起動します。
- 時間がかかり、コンピューターが再起動するまで待機し、PXE環境を取得してPEメディアを入力します。
- システムサービスの展開後に、PXEサーバーのデフォルトであるPEメディアではなくOSがロードされるように、Acronisサービスをオフにします。
- 実際には展開スクリプト自体です。詳細は説明しませんが、すべてマニュアルに記載されています。
net start AcronisPXE.exe
psexec \\ compIP reboot
ping compIP
ping compIP
net stop AcronisPXE.exe
psexec \\ compIP asdcmd /deploy [param]
次に、イメージが展開されるまで待機します。 これを行うには、ready.txtなどのファイルに挿入して、各画像に事前にポップする必要があります(とにかく作成する必要があります)。 ファイルが利用可能になるときをチェックします。これは、展開の終了を示します。
psexec \\compIP cmd
if exist ready.txt (
goto do
) else ( ping compIP)
do scripts.bat
したがって、イメージをインストールした後、テストを開始します。 scripts.batファイルはSquishのインストールを開始し、テストし、結果を生成し、それらを送信します。最終的に、バッチファイルを呼び出し、これをすべて繰り返します。 プロセスが循環しないように、たとえば単純なカウンターなど、さまざまな方法でプロセスを制御できます。
おわりに
このソリューションにより、バニックをダブルクリックして、マルチプラットフォーム自動テストのプロセス全体を開始できます。
また、これは非常に重要なタスクであるとは思えませんが、この問題に対するいくつかの簡単な解決策があるはずです。 今、私はAltirisに向かって掘ります。
この作品を読んでくれてありがとう。