継続的な統合への道。 セレン+ 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前述したように、テストを作成し、プロジェクトリポジトリに配置し、コミットごとにプロジェクトアセンブリをトリガーします。ビルド後にテストを実行し、コンパイルして実行し、成功した場合はポストコミットフックをリポジトリにプッシュし、場合によってはステージング環境にデプロイします。 そして、これらはすべて完全に自動化されています。

Source: https://habr.com/ru/post/J230519/


All Articles