ブログ内検索

micro:bitページ
とにかく速いブログサイトを目指す

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

SOY CMSマニュアルページ作成中

SOY CMSの開発秘話を投稿しました。→SOY CMSの開発秘話
 

Selenium + php-webdriverでElementNotInteractableExceptionのエラーにハマった時の対処

Selenium + php-webdriver + Chromeで両方のバージョンを上げたら、PHP Fatal error: Uncaught Facebook\WebDriver\Exception\ElementNotInteractableException: element not interactable(Session info: chrome=117.0.5938.92) in /var/lib/jenkins/workspace/*****/vendor/php...

 

Selenium + php-webdriverでWebDriverCurlExceptionのエラーにハマった時の対処

Selenium + php-webdriverで両方のバージョンを上げたら、PHP Fatal error: Uncaught Facebook\WebDriver\Exception\Internal\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"capabilities":{"firstMatch":[{"browserName":"chrome","platfor...

 

php-webdriverでAceのコードエディタに文字を入力する

Ace - The High Performance Code Editor for the WebWebアプリ内でAceというJavaScript製のコードエディタを設置した箇所があって、Selenium + php-webdriverでテストコードを作成することになった。Aceエディタを設置した箇所は単純なHTMLのtextareaタグではなかったのでコードの作成は工夫がいる。なんとか対応できたので、対応方法を記載する。今回の内容は下記のページを参考にした。 ...

 

php-webdriverでcontent-visibility:auto;を利用しているページのリンクをクリックする

本題に入る前に先にやりたいことを整理しておくと、ブログを投稿した後に任意の記事ページを開き、次の記事へのリンクを押して、ブログ内の全記事を巡回するという事を自動化したかった。巡回したい理由は、アクセスが少ない時間帯に記事投稿後に巡回することで、全記事のHTMLキャッシュを生成して、その後のアクセスの負荷を減らしておきたかった。【SEO対策】最終産物のHTMLのキャッシュで高速化この対応はSelenium + php-webdriverを組み合わせれ...

 

php-webdriverでelement click interceptedのエラーに対して

Selenium + Jenkins + phpwebdriver + Chromiumのヘッドレスでテストの自動化を行っている。Jenkins + ヘッドレスChromeでテスト自動化の省力化先日、SOY CMSとSOY Shopに常に画面左下に設置されるメモウィジェットを設置して、テストにかけてみたら、PHP Fatal error: Uncaught Facebook\WebDriver\Exception\UnrecognizedExceptio...

 

Jenkins + ヘッドレスChromeでテスト自動化の省力化

SOY CMS / Shopの開発で、Jenkinsを利用してテストの自動化を行っている。※詳しい構成は下記のリンク先の記事に記載がある。さくらVPSにJenkinsを入れて、Selenium + php-webdriverを動かせるようにする機能を追加する度に負荷の高いテストコードを追加し続け、気がついたら、一回のビルドの所要時間が5時間を超えていた。1日3回ぐらいJenkinsがテストを行ってくれるので、1日15時間とテスト要因で人を雇ったらブ...

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

さくら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を動かせるよう...

 

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...

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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


Powered by SOY CMS  ↑トップへ