画面テストの自動化にSelenium Webdriver

テストの自動化はモジュールのユニットテストまではできても、画面の自動化まで手が回っていないことが多いだろう。

画面のテスト自動化といえばSeleniumが有名だが、しばらく触れないうちにバージョン2になっており、進化していた。

WebDriverと組み合わせるとブラウザを外部から操作することができるので、人間の実機操作に近い挙動でテストができる。

とりあえず、適当な画面にアクセスして内部の要素を表示させるサンプル。
IDで見つけられればXpathは不要。

import java.io.File;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Wait;
import org.openqa.selenium.support.ui.WebDriverWait;


public class SeleniuimTest {

	public static void main(String[] args) throws InterruptedException {
		WebDriver driver = new FirefoxDriver();
		driver.get("http://www.example.com/");
		// 30秒待つ設定
		Wait<WebDriver> wait = new WebDriverWait(driver, 30);
		// sideMenuという要素がクリックできるようになるまでまつ(ただし30秒)
		WebElement button = wait.until(ExpectedConditions
				.elementToBeClickable(By.className("sideMenu")));
		// firebugのxpathをそのままでOK
		System.out.println(driver.findElement(By.xpath("/html/body/div/div/div[2]/div[2]/div[1]/ul/li[1]/a")).getText());
		// 複数処理する場合
		List<WebElement> elements = driver.findElements(By.xpath("/html/body/div/div/div[2]/div[2]/div[1]/ul/li"));
		for (WebElement webElement : elements) {
			System.out.println(webElement.getText());
		}
		// スクリーンショットも取れる。
		try {
			FileUtils.copyFile(
					((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE),
					new File("d:/screen.jpg"));
		} catch (Exception e) {
		}
		Thread.sleep(10000);
		driver.quit();
	}
}
カテゴリー: Selenium, Test | タグ: , , | コメントする

Intel SSD ならクローンにIntel Data Migration Software(Acronis)

最近はクレードルでクローンすることが多いので、以前ほど以降ツールのお世話になることはなくなったが、それでも無料で使えるのであれば取り上げる価値はある。

今回紹介するのはIntelのSSDであれば利用可能な「Intel Data Migration Software」
実は一度も使ったことはないけど、画面を見た瞬間にAcronis Trueimageの機能制限版だとわかった。

ということはこれまで散々紹介してきたSeagate DickWizardやAcronis True Image WD Edition Softwareと操作は一緒。
クローン先かクローン元がどちらか該当メーカーであればよいので、ほぼすべてのメーカーで同じソフトが使えるってわけだ。

カテゴリー: 未分類 | タグ: , | コメントする

SSH公開鍵認証をputtyで行う手順

昨日久しぶりにSSH鍵交換方式による設定を行ったので作業メモ

SSH鍵交換方式はパスワードログインと違い秘密鍵とパスフレーズ併用でログインする。その為秘密鍵がなければそもそもパスワードを試す画面にすらたどり着けないので、外部に公開するサーバーであれば必須のセキュリティ対策となるであろう。

作業の大まかな流れとしては

      クライアント側で秘密鍵と公開鍵の生成
      公開鍵のみログインしたいサーバーの/home/公開鍵ログインさせるユーザー名/.ssh/authorized_keysに追加する。
      秘密鍵を用いてログイン

秘密鍵の生成にはputtyシリーズのputtygen.exeを利用する。鍵の種類はデフォルトでOKだが、暗号化ビットは1024以上でもよい。
マウスを動かすと乱数が生成され、その乱数をもとに画面に出ている公開鍵を/home/公開鍵ログインさせるユーザー名/.ssh/authorized_keysに一行でコピー(途中に改行が入らぬように!)
authorized_keysのパーミッションを600にする(これをしないと無効)

秘密鍵をローカルに保存した後、puttyの設定→接続→SSH→認証メニューまで辿り
「認証のための使うプライベートキーファイル」に先ほどの秘密鍵を指定する。

うまくログインできたら、パスワード認証は一切無効にしてしまおう。

実はあまりに久々すぎて公開鍵をauthorized_keysではなく、knowns_hostに追加していてうまくいかないと30分ほど頭をひねっていたことは内緒である。

カテゴリー: Linux | タグ: | コメントする

お手軽ローカルproxy Doormanのeclipse pluguin

以前ローカルproxyとしてDoormanの紹介をした(5年前だが)

Doormanはインストールが不要、バッチファイルで起動でき、リクエストの中身を見たり、改変できたりするのでセキュリティテストに使えるツールである。

このDoormanがEclipseプラグインとして登場しているのでインストールしてみた。

Eclipseマーケットプレイスでdoormanと検索して、doormanをインストール後、eclipse再起動。

あとはDoormanのパースペクティブを開いてポートを決めて、DoormanメニューからStart Proxyでスタート。

カテゴリー: 未分類 | タグ: , | コメントする

Windows7 ブルースクリーン エラー0x0000007Eが発生

一月から使い始めた職場のPCだが、これでブルースクリーンエラーは二回目。

すぐ再起動してしまうので、ブルースクリーンに記載された情報が消えてしまう。
かろうじて読めたのはエラーコード7Eの部分。

設定で勝手に再起動しないようにシステムの設定を変えておく。

マイコンピューター右クリック→プロパティ→詳細設定タブ→起動と回復→システムエラーの自動的に再起動するのチェックを外す。

マイコンピュータのプロパティを直接コマンドラインから開くには、

Windowsキー+Rで「ファイル名を指定して実行」を立ち上げ

control sysdm.cpl

と入れればよい。

これでブルースクリーン情報が見えるようになったので、次は原因となっているドライバーなどの特定だ。
(イベントビューアーでもエラーのコードは確認できるが、ブルースクリーンほどの情報が出てこない)

カテゴリー: Windows | タグ: | 1件のコメント

IIJMioでのリモートホストはvmobile.jp

移動先でネットを使うようになったが、外から無防備にさらすわけにはいかないページもある。

そういう場合はリモートホスト名でアクセス制限をかけるのだが、IIJMioのミニマムスタートプランの場合は、vmobile.jpがリモートホスト名となる。

ただ、IIJmioは好調で利用者も多いだろうし、ほかのMVNOにおろしているので実際の利用者はかなりの数に上ってしまうだろう。

外向けにアクセス制限をかけるならば、リモートホスト名+Digest認証が必須である。

カテゴリー: MVNO | コメントする

MovableTypeからのブログ移行

まだWordpressとMovableTypeがシェアを二分していたころに、MovableTypeを利用していたブログがあった。

このブログの記事に今でもかなりのアクセスがあるため、なかなか捨てられないのである。
しかしさすがにWordpressに一本化したいので、アクセスの多いURL単位でApacheのRewrite設定を入れた。

アクセスが0になったら、旧ブログは閉鎖する予定。

カテゴリー: Blog運用 | コメントする

TomcatのバージョンとJDKの対応表 (J2EE Servlet API,JSP)

Tomcatのバージョンと動かすのに必要なJDKのバージョン情報。

バージョン Servlet API JSP JDK 登場年
4.x 2.3 1.2 1.3 2001
5.x 2.4 2.0 1.4 2003
5.5.x 2.4 2.0 5.0 2006
6.x 2.5 2.1 5.0 2007
7.x 3.0 2.2 6.0 2010
8.x 3.1 2.3 7.0 2014
カテゴリー: Tomcat | タグ: , , | コメントする

EaseUS Todo Backup Free 8.0 250GSSDから64GSSD クローン実行 その2 起動失敗

EaseUS Todo Backup 8.0を利用して、250GのSSDから64GBのSSDへ縮小コピーするという作戦。

以前と違ってディスク全体のクローンではなかったので、クローン終了後に起動しても、起動可能なシステムが見つからない状況になってしまった。

これはやり直しか無理なのか?と思ったけど、Windowsのインストールディスクを入れて、システムの修復を試みたらパーティションテーブルが壊れてたらしく、無事復元できた。

再起動すると無事以前のOSが立ち上がったとさ

カテゴリー: 未分類 | タグ: | コメントする

EaseUS Todo Backup Free 8.0 250GSSDから64GSSD クローン実行

Windowsのシステムイメージの復元では復元先のディスクが小さすぎて失敗。
(55GB必要で59G空いていたから大丈夫かと思ったけどだめ!)

結局ツールに頼ることにした。

以前2.5 SSDから同じ容量のmsata SSDのクローンに使ったけど、今回も利用。

ただしコピー元のパーティションの容量はコピー先より小さくしておく必要がある。

コピー容量は55G程度だが、クローンの所要時間は約70分かかった。

カテゴリー: 未分類 | タグ: | コメントする