Android WebDriverブラウザ自動テストツールの紹介

5621 ワード

Selenium WebDriverはブラウザの自動テストツールであり、Webアプリケーションをテストするための軽量レベルと優雅な方法を提供しています.Selenium WebDriverはAndroid SDK extraとして、Android 2.3(Gb)および前向きバージョンをサポートしています.
WebDriverはエンドツーエンドのテストであり、ユーザーの行動を実際にテストすることができ、ユーザーのインタラクション、例えばタッチ、指のスクロール、長押しなど、HTML 5のいくつかの特性をサポートし、例えばローカルストレージ、sessionストレージ、アプリケーションキャッシュなどである.これらのテストは、Junitに基づくAndroid tests projectの一部として使用される.Eclipseからロードまたはコマンドラインを介して実行できます.WebDriverは、携帯電話、タブレット、タブレットシミュレータ、または実際のデバイスで動作します.起動すると、WebDriverはAndroidブラウザのようなWebView構成を開き、テストを実行します.
 
WebDriverはAndroid SDK extraで、これらの指導でインストールできます.Sleniumサイトにもユーザーガイドがあります.
以下に簡単な例を添付します.
Androidプロジェクトを作成し、レイアウトのない空のActivityを含む.
  1 public   class   SimpleAppActivity  extends   Activity { 2      @Override 3      public   void   onCreate(Bundle savedInstanceState) { 4          super .onCreate(savedInstanceState); 5      } 6 }
 
 
Androidテストプロジェクトを作成します.WebDriverはWebViewを作成し、メインActivityでレイアウトを自動的に設定します.次はAndroidでGoogleのトップページを開き、「ロサンゼルスの天気」を調べます.Googleが検索結果を返し、最初の結果が答えを返すことをテストします.
  01 public   class   SimpleGoogleTest  extends ActivityInstrumentationTestCase2<SimpleAppActivity> { 02
  03      public   void   testGoogleShouldWork() { 04        // Create a WebDriver instance with the activity in which we want the test to run 05        WebDriver driver =  new   AndroidDriver(getActivity()); 06        // Let’s open a web page 07        driver.get( "http://www.google.com" ); 08
  09        // Lookup for the search box by its name 10        WebElement searchBox = driver.findElement(By.name( "q" )); 11
  12        // Enter a search query and submit 13        searchBox.sendKeys( "weather in san francisco" ); 14        searchBox.submit(); 15
  16        // Making sure that Google shows 11 results 17        WebElement resultSection = driver.findElement(By.id( "ires" )); 18        List<WebElement> searchResults = resultSection.findElements(By.tagName( "li" )); 19        assertEquals( 11 , searchResults.size()); 20
  21        // Let’s ensure that the first result shown is the weather widget 22        WebElement weatherWidget = searchResults.get( 0 ); 23        assertTrue(weatherWidget.getText().contains( "Weather for San Francisco, CA" )); 24      } 25 }
 
このActivityは画面にWebViewを表示し、テストコードが実行されるとWebアプリケーションを見ることができます.
次はインタラクティブテストです.
WebDriverは、水平軽弾で1枚の画像を捨て、ライブラリ内の次の画像の表示を保証する高度なジェスチャーを作成してデバイスと対話することをサポートします.
  1 WebElement toFlick = driver.findElement(By.id( "image" )); 2 // 400 pixels left at normal speed 3 Action flick = getBuilder(driver).flick(toFlick,  0 , - 400 , FlickAction.SPEED_NORMAL) 4          .build(); 5 flick.perform(); 6 WebElement secondImage = driver.findElement(“secondImage”); 7 assertTrue(secondImage.isDisplayed());
 
画面を回転させ、画面に表示される画像のサイズを調整します.
  1 assertEquals(landscapeSize, secondImage.getSize()) 2 ((Rotatable) driver).rotate(ScreenOrientation.PORTRAIT); 3 assertEquals(portraitSize, secondImage.getSize());
 
バグを見つけて、簡単にスクリーンを切って、デバッグを助けることができます.
  1 File tempFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);