カテゴリー : テスト自動化

SOY CMSマニュアルページ作成中
SOY CMS、SOY ShopとSOY Appの操作に関する質問を下記のページで受け付けています。

SOY CMS/Shopで標準機能だけでは実装が難しい時はお気軽にご相談下さい。

SOY CMSの開発秘話を投稿しました。→ SOY CMSの開発秘話
ブログ内検索
 

Go言語 + Selenium + Agoutiでテスト自動化

Go言語 + Selenium + AgoutiでSOY CMSにログイン出来なかった時に適切にエラーを表示するかを確認してみる。 package main import ( "log" "strings" "github.com/sclevine/agouti" ) //SOY CMSにログインできなかた時に適切にエラーを表示するか?テスト func main() { driver := agouti.ChromeDriver() err := dri...

Read More…

 

Go言語 + Selenium + Agoutiで自動でGoogle検索

前回の続きで、seleniumでグーグル検索した後、検索フォームにseleniumuと入力してボタンを押してみる。 下記のコードを入力する。 package main import ( "log" "github.com/sclevine/agouti" ) func main() { driver := agouti.ChromeDriver() err := driver.Start() if err != nil { log.Fatal(er...

Read More…

 

Go言語 + Selenium + Agoutiでブラウザ操作の自動化

Selenium - Web Browser Automation https://agouti.org/ Go言語でSeleniumとAgoutiを介してChromeブラウザを自動で操作してみる。 SeleniumはJava上でなければ動作しないため、はじめにJavaをインストールする。 Javaは下記のページからダウンロードして、画面の指示に従ってインストールする。 無料Javaソフトウェアをダウンロード 続いて、seleniumu-serverをhttps:...

Read More…

 

php-webdriverでセレクトボックスの値を選択する2

select name="Customer[area]" id="" class="input-pref" option value=""都道府県名/option option value="1"北海道/option option value="2"青森県/option option value="3"岩手県/option !-- 他の県は省略 -- /select 以前、上記のコードがあった時に php-webdriverでどのように京都府の値を選択するか? と...

Read More…

 

php-webdriverでiframe内のリダイレクトに対応する

SOY CMSでは、ラベルブロックの設定あたりでiframeを開いて、 iframe内でリダイレクトしながら設定を進める画面がある。 iframeは以前にTinyMCEのところで操作方法を調べたので、 iframe一ページ分であればなんとかなったけれども、 php-webdriverでTinyMCEに値を挿入する iframe内でリダイレクトがあると、2枚目のページで指定した要素が見つからないというエラーに遭遇する。 なんでだろうと試行錯誤試し...

Read More…

 

php-webdriverで現在開いているページのURLを取得する

php-webdriverで現在開いているページのURLを取得する必要が出てきた。 SOY CMSの管理画面では、 記事やラベルの詳細ページを開くとURLの末尾に各々のIDが付与されているため、 URLから指定の記事、もしくはラベルのIDを取得するためにはURLを取得しなければならない。 SOY CMSで標準ページでも任意のブログページのb_blockを使用できるようにした というわけで、php-webdriverの公式Wikiを調べてみたところ、 WebDriverクラスの...

Read More…

 

php-webdriverでTinyMCEに値を挿入する

php-webdriverでSOY CMSの記事作成画面のテストコードを作成する時に苦戦した。 php-webdriverでconfirmダイアログをクリックする どこで苦戦したか?というと、 記事作成画面の本文に値を入力するところで、 SOY CMSの記事作成画面ではTinyMCEというWYSIWYGエディタを利用していて、 SOY CMSの記事投稿画面でYouTubeの動画の挿入ボタンを追加しました TinyMCE | The Most Advanced WYSI...

Read More…

 

レバテックキャリアさんの技術ブログで当ブログのGo言語の記事が紹介されました

IT・Webの転職・求人のレバテックさんが運営するレバテックキャリアさんのブログの Go言語を勉強中という方に読んでほしい記事まとめの企画で当ブログのGo言語の記事が紹介されました。 Go言語を勉強中という方に読んでほしい記事まとめ - レバテックキャリア 紹介された記事はGo言語の標準機能のユニットテストを試してみた記事で、 実際に自分がテストコードを作成した時のフローを紹介が良かったみたいです。 golangでテストを書いてみたのでメモ 企画内のちょっとした紹介ではありま...

Read More…

 

Jenkinsらをバージョンアップした後、エラーで動かなくなった時の対処

Jenkins Jenkinsを開いたら新しいバージョンが公開されたということでアップグレードの通知が表示されていた。 Jenkinsをインストールしているサーバにリモートアクセスして、 Jenkinsのバージョンアップをしたら突然動かなくなった。 エラーメッセージを見たら下記の通り。 PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnknownServerException: unknown error: cal...

Read More…

 

Jenkinsの動作が遅くなった時の対処

さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにするでVPSサーバを借りてJenkins用のサーバを組み立ててみた。 継続的インテグレーションに従い、細かい機能追加の度にGitでコミットを行うことで、 機能追加により以前の機能が動作しないといった致命的な不具合の心配がなくなった。 継続的インテグレーション - Wikipedia 一人で開発している身として、Jenkinsが相棒のように感じられるようになったわけだけど、 ビル...

Read More…

 

php-webdriverでconfirmダイアログをクリックする

php-webdriverでセレクトボックスの値を選択するから引き続きメモ ブラウザ上で何らかのボタンをクリックすると、 上の画像のように確認用のダイアログが表示されて、このダイアログ上のボタンをクリックすることがあります。 このダイアログのボタンをphp-webdriverでクリックするためには下記のようなコードを書けば良い。 ※今回は「退会する」リンクをクリックした時にconfirmのダイアログが表示される $driver-findElement(WebDriver...

Read More…

 

php-webdriverでセレクトボックスの値を選択する

php-webdriverでtarget="_blank"付きのアンカータグ対策から引き続きメモ 今回はセレクトボックスの値を選択してみる。 セレクトボックスは今までのinputタグと異なり、 セレクトボックスの場所を指定して、キーボード操作で値を選択するという形で、 値の指定の際の操作が増える。 該当する箇所のHTMLは select name="Customer[area]" id="" class="input-pref" option value=""都道...

Read More…

 

さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにする

さくらVPS上でSeleniumとphp-webdriverを利用する 前回、さくらのVPSにSeleniumとphp-webdriverを実行するための環境を設けた。 あとはJenkinsを入れるだけだ。 環境 さくらVPS 512 Ubuntu 16.04 Java 1.8.0_151 Jenkins 2.76 Selenium 3.7.1 Xvfb バージョンの調べ方わからず Chromeドライバ 2.33.506092 Chromium 62.0.3...

Read More…

 

さくらVPS上でSeleniumとphp-webdriverを利用する

Selenium - Web Browser Automation 最近の記事でSOY CMS / ShopのUIテストをSeleniumのGUI(Firefoxのアドオン)からFacebook製のphp-webdriverへと作り変えた。 facebook/php-webdriver: A php client for webdriver. テストを作ったのは良いけれど、ローカル環境だとテスト中に他の作業ができなくなるので、 さくらのVPSを借りてSeleniumを動かせるよう...

Read More…

 

php-webdriverでtarget="_blank"付きのアンカータグ対策

php-webdriverで任意のラジオボタンをチェックする 前回より引き続き、Seleniumとphp-webdriverのメモ 例えば、 a href="sample.html" id="link"リンク/a というコードがあったとします。 このリンクをクリックして他のページに遷移したい場合は、 php-webdriverでは、 $driver-getElement(WebDriverBy::linkText("リンク"))-click(); $driver-ge...

Read More…

 

php-webdriverで任意のラジオボタンをチェックする

php-webdriverでSOY CMSにログインしてみる 前回、任意の入力フォームを選んで値を入力して、 任意のボタンを押すという動作をSeleniumとphp-webdriverで自動化してみた。 UIテストの大体の動作は前々回のフォームの内容を取得すると合わせれば対応できるが、 これでは対応できないものがあった。 それは、 性別などで使われるラジオボタンです。 ラジオボタンのHTMLを抜き出してみると、 input type="radio" id=...

Read More…

 

php-webdriverでSOY CMSにログインしてみる

php-webdriverで指定のフォームに値を入力してみる 前回、Selenium + php-webdriverでSOY CMSのログイン画面でログインIDのフォームに値を入れ、 フォームの値を取り出して端末上に書き出す という処理を書いてみた。 今回はログインIDとパスワードを入力して、 ログインボタンを押してログインを試してみる。 実際のコードは下記の通り、 ※管理画面へログインできるアカウントをID、Pw共に「soycms」とします ?php requ...

Read More…

 

php-webdriverで指定のフォームに値を入力してみる

Seleniumとphp-webdriverでUIテストの自動化で Selenium、Chromeドライバとphp-webdriverをインストールした。 今回は基本的な動作分を確認 ワークスペースが~/workspace/soycms/で、 テストコードはsoycmsディレクトリ以下にtestというディレクトリを作成して、 テストコードを~/workspace/soycms/test/test.phpにしてファイルを作成してみる。 ※soycmsディレクトリ内にSOY CMSを...

Read More…

 

Seleniumとphp-webdriverでUIテストの自動化

アプリ開発において自動化しておきたいものにテストの自動化がある。 今までSOY CMS / ShopはSeleniumのFirefoxプラグインでGUIで一つずつ動作を登録しながらUIのテストコードを作成していたけれども、 Selenium - Web Browser Automation Jenkinsさんのお力を借りて、 JenkinsさんにSeleniumを実行してもらうべく、 PHPのコードでSeleniumのUIテストのコードを書き直すことにした。 Jenk...

Read More…

 

golangでテストを書いてみたのでメモ

golang(Go言語)ではテストが標準で用意されており、 テストコードを書くのが簡単ということで書いてみた。 まずはgoというフォルダを作成して、 sample.goというファイルを作成してみた。 go └── sample.go ディレクトリ構造はこんな感じ。 sample.goに下記の様な ランダムな文字列を作成して、 作成した文字列をMD5でハッシュ化して表示する というコードを用意した。 package main import ( "...

Read More…