自動テストツール⑥ Badboy

Badboyとは

ブラウザでの操作を記録、再現できるテストツール
記録した操作をJMeterのシナリオとして出力できる

設定

ダウンロード

公式サイトからインストーラをダウンロード

インストール

ダウンロードしたインストーラを実行

実行

記録


1) 画面上部のURL入力欄にURLを入力
2) 画面右のブラウザを操作
  記録は始まっている
3) 記録の停止/再開は画面上部のまたは■

再生

Step1を右クリック > Play All

Jmeterシナリオ出力

File > Export to Jmeter

自動テストツール⑤ JMeter

JMeterとは

ブラウザでの操作を記録、再現できるテストツール
複数スレッドから複数回繰り返す事で負荷テストを実施するのに便利

設定

JDK

Java実行環境が必要なのでJDKをインストール
JDK」参照

JMeterダウンロード

JMeterのバイナリファイルをApacheの公式サイトからダウンロード
Windowsの場合
apache-jmeter-X.X.zip

インストール

不要
ダウンロードしたファイルを解凍し、
ApacheJMeter.jar
を実行

実行

スレッドグループ

テスト計画 > 追加 > Threads(Users) > スレッドグループ

設定項目 機能
スレッド数 同時実行数
Ramp-Up期間 スレッド数分の処理を実行する時間
ループ回数 繰り返し回数
記録

Badboyで記録 → Jmeterシナリオを出力
自動テストツール⑥ Badboy」参照

再生

ファイル > 開く > (出力したJmeterシナリオ)


再生結果はリスナーに表示される

リスナー

テスト計画 > スレッドグループ > 追加 > リスナー > 結果をツリーで表示

変数の利用

①変数:testに正規表現で抽出した値を設定

追加 > 後処理 > 正規表現抽出
参照名:test
正規表現:<input type="hidden" name="TOKEN" value="(.*)">
②から取得して編集
テンプレート:$1$
初期値:is_not_Exit

②前ページの応答画面(html)

値が応答されている箇所を抽出

<input type="hidden" name="TOKEN" value="ABCDEFG">

③リクエスト設定

リクエストパラメータ:値欄に変数:testを設定
${test}

自動テストツール④ JUnit

設定

http://www.junit.org/
junit-X.XX.jarをダウンロード

テストクラスのビルドパスに追加
新しいEclipseには最初から追加されている

junit2

junit3

テストクラス作成

※テスト対象クラス
package myPack;
public class MyClass {
 public String outMsg(){
  return "test";
 }
}

※テスト実行クラス
package myPack;
import static org.junit.Assert.*;
import org.junit.Test;
public class DoTest {
 @Test
 public void doTest(){
  String s = new MyClass().outMsg();
  assertEquals("期待値と違う","test", s);
 }
}

実行

junit

前後処理

package myPack;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class DoTest {
 @BeforeClass
 public static void test1(){
  System.out.println("@BeforeClass");
 }
 @Before
 public void test2(){
  System.out.println("@Before");
 }
 @After
 public void test3(){
  System.out.println("@After");
 }
 @AfterClass
 public static void test4(){
  System.out.println("@AfterClass");
 }
 @Test
 public void doTest1(){
  System.out.println("doTest1:@Test");
 }
 @Test
 public void doTest2(){
  System.out.println("doTest2:@Test");
 }
}
※実行結果
@BeforeClass
@Before
doTest1:@Test
@After
@Before
doTest2:@Test
@After
@AfterClass

自動テストツール③ Selenium2 5/5

ブラウザ

Firefox

using OpenQA.Selenium.Firefox;
IWebDriver driver = new FirefoxDriver();
driver.Url = “http://google.com”;

InternetExplorer

using OpenQA.Selenium.IE;

//IE用WebDriver(実行ファイル:IEDriverServer.exe)をダウンロード&パス指定
IWebDriver driver = new InternetExplorerDriver(@”保存パス”);
例:「D:\MyProject\Library」に保存した場合(↓フォルダまで)
IWebDriver driver = new InternetExplorerDriver(@”D:\MyProject\Library\”);
driver.Navigate().GoToUrl(@”http://google.com”);

Firefox

Imports OpenQA.Selenium.Firefox
Dim driver As IWebDriver = New FirefoxDriver
driver.Url = “http://google.com”

Internet

Imports OpenQA.Selenium.IE
Dim driver As IWebDriver = new InternetExplorerDriver(“保存パス”)
例:「D:\MyProject\Library」に保存した場合(↓フォルダまで)
Dim driver As IWebDriver = new InternetExplorerDriver(“D:\MyProject\Library\”)
driver.Url = “http://google.com”


自動テストツール③ Selenium2 4/5

wait処理

wait.Until

//指定のタイトルになるまで10秒待つ。
//ならなかったらNUnitでエラー表示
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 10));
wait.Until(ExpectedConditions.TitleIs(“TEST”));

//指定の要素があるかチェック
wait.Until(ExpectedConditions.ElementExists(By.Id(“myText”)));

//指定の要素が可視かチェック
wait.Until(ExpectedConditions.ElementIsVisible(By.Id(“myText”)));

メソッド

Clear()

//要素のクリア
IWebElement element = driver.FindElement(By.Id(“myText”));
element.Clear();
//こういう書き方も可(メソッドチェーン)
driver.FindElement(By.Name(“myText”)).Clear();

SendKeys()

//要素への入力(追記)
element.SendKeys(“yahoo”);
//こういう書き方も可(メソッドチェーン)
driver.FindElement(By.Name(“myText”)).SendKeys(“yahoo”);

Submit()

element.Submit();

Click()

//ボタン・リンクのクリック
driver.FindElement(By.Name(“btnK”)).Click();
driver.FindElement(By.LinkText(“Selenium – Web Browser Automation”)).Click();

GetAttribute()

//指定要素のvalue属性値取得
Assert.AreEqual(“aaayahoo”, element.GetAttribute(“value”));

GetCssValue()

GetScreenshot()

//スクリーンショットを保存(bin内)
Screenshot shot = ((ITakesScreenshot)driver).GetScreenshot();
byte[] screenshotAsByteArray = shot.AsByteArray;
shot.SaveAsFile(“firefox.png”, ImageFormat.Png);

プロパティ

Displayed

Enabled

Location

Selected

CheckBox、Select等

Size

TagName

Text

タグ間テキスト