継続的な統合への道。 セレン+ TeamCity

エントリー



TeamCityを使用して、Selenium IDEベンチマークを継続的な統合プロセスに統合することを検討してください。 QAがテストを作成する(多くの場合、クリッカーがプロジェクトを単に「クリック」してレポートを作成するときに発生する)多くの場所でそれを見て、定期的にそれらを実行します。 私にとっては、これは体系的なアプローチではなく、プロセスを完全に自動化する100万のソリューションによって解決されています(現在は2014年)。

さて、継続的インテグレーションは非常に人気のあるプラクティスであるため、機能テストを継続的インテグレーションのプロセスに導入し、テスターの負担を軽減し、製品全体の品質レベルを上げてください。



何が欲しいのか、何が欲しいのか



何がありますか?



何が必要ですか?





最初のビルドをインストール、構成、作成する方法は、必要以上にオープンスペースにビルドするため、説明しません。これについては説明しません。

猫をお願いします。



エージェントビルドの準備と構成



ビルドエージェントのビートとして、Windowsマシンがインストールされ、TeamCityエージェントがTeamCityサーバーにインストールされてピックアップされました。

実行用に設定するには、次の手順を実行します。



すべての操作は「C:\ Selenium」で行われます。これは、同じ名前のディレクトリをそこに作成するためです。

このマシンでは、Seleniumサーバーのスタンドアロンを上げる必要があります。手動呼び出しは完全に機能しているわけではないため、Windowsにサービスとしてインストールすると便利です。 これは、 nssmユーティリティ(「非吸引サービスマネージャー」)を使用して実行できます。

ダウンロードして解凍し、「C:\ Selenium」に入れます。

selenium-server-standaloneをダウンロードして、そこに配置します(執筆時の後者はこちらからダウンロードできます )。

サービスとしてのSelenium Serverのインストール



C:\Selenium\nssm-2.16\win64\nssm.exe install Selenium-Server "C:\Program Files (x86)\Java\jre7\bin\java.exe" "-jar C:\Selenium\selenium-server-standalone-2.42.2.jar"
      
      







NUnitをビルドステップの「エグゼキューター」として使用します(テストをSelenium IDEから.csにエクスポートし、次にdllライブラリにコンパイルします)。したがって、.NET Framework 4もマシンにインストールします(インストールされていない場合は、 ここから取得できます )。

インストール後、次の場所にあるcsc.exeへのパスを探します。
 "C:\Windows\Microsoft.NET\Framework\v4.0.<    >"
      
      



グローバルコールの可能性を考慮して、変数に書き込みます。

接続の設定で使用されるMozilla Firefoxをインストールします。

cscがテストのエクスポートをコンパイルできるようにするには、一定数の追加ライブラリをダウンロードして配置し、「C:\ Selenium」に配置する必要があります(コンパイルプロセスはこのディレクトリから自動的に行われます)。 ここでそれらを取ることができます。

「C:\ Selenium」にダウンロードして解凍します。



これでエージェントのビルドの準備が完了しました。ビルド構成に進んでテストを実行できます。



TeamCityの構成



TimCity管理エリアに移動し、クリックしてプロジェクトを作成し、名前、ID、説明、および「作成」を入力します



画像



新しいプロジェクトのセットアップページに移動し、[ビルド構成の作成]をクリックして、使い慣れた3つのフィールドに入力し、青いボタンをもう一度入力します。



画像



構成ビルドを作成した後、既存のリポジトリを選択するための画面が表示されます。接続されたリポジトリがないため、新しいリポジトリを作成するために、この場合と同様に。 リポジトリの変更を監視し、コードの変更をトリガーする(継続的な統合)ために、ライブプロジェクトでリポジトリを「ピックアップ」して(テストを行ってからコンパイルして実行する)ことをお勧めしますが、ここではデモを示しています、「左」のリポジトリを接続し、チェックアウトしません。 私たちの目標は、テストを実行してレポートを取得することです。



リポジトリを接続し(github / bitbucketでリポジトリを開くオプションとして)、接続をテストし、再度「作成」します。



画像



ビルドリポジトリの設定ウィンドウが表示されます(VCSチェックアウトモードを設定します。不要なリポジトリを監視しないように、ファイルを自動的にチェックアウトしないでください)。



画像



楽しい部分に到達します。 ここでは、2つのステップを実行します。1つ目は、ソース(.cs)からNUnitのライブラリへのテストのコンパイルを実行し、2つ目は、すでにNUnitでテストを実行します。



ビルドステップビルド設定の次のタブに移動し、[ビルドステップの追加]ボタンを使用して最初のステップを完了し、ランナータイプリストでコマンドラインを探して選択します。 ステップの名前を入力し、スクリプトフィールドに次を挿入します。



 csc /t:library /r:WebDriver.Support.dll /r:WebDriver.dll /r:ThoughtWorks.Selenium.Core.dll /r:Selenium.WebDriverBackedSelenium.dll /r:nunit.framework.dll /r:System.Data.dll /r:System.Data.Services.Client.dll /out:"C:\Selenium\compiled_test.dll" "C:\Selenium\reg.cs"
      
      





[保存]をクリックします



スクリプトはコンパイラを起動し、パス「C:\ Selenium \ reg.cs」に沿ってあるSelenium IDEでエクスポートされたテストのコンパイルを開始し、コンパイルされたライブラリをファイル「C:\ Selenium \ compile_test.dll」に入れます。次のステップでNUnitに渡します'y。



画像



既にNUnitを選択しているランナーとしてのみ、もう1つのビルドステップを追加します。

スクリーンショットとRunテストの両方を入力します:コンパイル済みテストが最初のステップ(この場合は「C:\ Selenium \ compiled_test.dll」)を配置するパスを登録し、保存します。



その結果、次の結果が得られます。



画像



おめでとう、最小限の設定は完了です。最初のテストを記述して実行するだけです。



最初のテストを作成する



QAに、Selenium IDEで簡単なテストを実行して、「C#/ NUnit / Remote Control」にエクスポートするよう依頼します。







修正する必要があるのは、Webブラウザーに接続するための設定だけでした。



テストの例を挙げます。



 using System; using System.Text; using System.Text.RegularExpressions; using System.Threading; using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using Selenium; namespace SeleniumTests { [TestFixture] public class open_page { private IWebDriver driver; private ISelenium selenium; private StringBuilder verificationErrors; [SetUp] public void SetupTest() { verificationErrors = new StringBuilder(); //driver = new FirefoxDriver(); -     driver = new FirefoxDriver(new FirefoxBinary(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"), new FirefoxProfile(), TimeSpan.FromMinutes(10)); //     firefox selenium = new WebDriverBackedSelenium(driver, "http://habrahabr.ru/"); selenium.Start(); } [TearDown] public void TeardownTest() { try { driver.Close(); } catch (Exception) { // Ignore errors if unable to close the browser } Assert.AreEqual(string.Empty, verificationErrors.ToString()); } [Test] public void TheOpen_pageTest() { selenium.Open("/"); selenium.Click("link= "); selenium.WaitForPageToLoad("30000"); } } }
      
      







結果を見る



TimCityに移動し、ビルドの反対側で[実行]をクリックし、テストが完了するのを待って、結果を楽しみます。 ビルドグリーン、1つのテストに合格。



画像



PS前述したように、テストを作成し、プロジェクトリポジトリに配置し、コミットごとにプロジェクトアセンブリをトリガーします。ビルド後にテストを実行し、コンパイルして実行し、成功した場合はポストコミットフックをリポジトリにプッシュし、場合によってはステージング環境にデプロイします。 そして、これらはすべて完全に自動化されています。



All Articles