SlideShare a Scribd company logo
テンプレートエンジンに
Mixer2を使うと
Seleniumでのテストも
ラクになるかもねという話
Selenium勉強会@サイボウズ
2015-10-20
自己紹介
● わたなべ
● Javaエンジニア
● (株)ビズリーチ
- 選ばれた人だけの、会員制転職サイト -
● Project Mixer2主宰(コミッタ少ないけど)
● twitter: @nabedge
● https://github.com/nabedge
エンジニア絶賛募集中!
● Java書きたい人
● Scala書きたい人
● Android/Swiftな人
● なんか知らんけど渋谷のビーチで
ピザとビールくらいなら食いに行っても
いいぜという人
● See http://www.bizreach.co.jp/recruit/
○ あるいは @nabedge までメンション
とりあえず勉強会に顔出してみるとか
キーワード
「勉強会 d-cube」
「渋谷java」
Mixer2は、Javaのテンプレートエンジンです
● 今日はSeleniumの勉強会なのでテ
ストからのアプローチ。
● Java限定です。
このJSPをSeleniumでテストする?
こんにちは
<% if (name == null) { %>
ゲストさん
<% } else { %>
<%= name %>さん
<% } %>
こうしておいてほしいですよね
こんにちは<span id=”name”>
<% if (name == null) { %>
ゲストさん
<% } else { %>
<%= name %>さん
<% } %></span>
Seleniumあるある
このタグにidかclassを
つけておいてくれれば、
ややこしいxpathを
書かずに済むのになあ
さっきのをMixer2で作っていたら
テンプレート(HTML, CSS)
こんにちは<span id=“name”>ゲスト</span>さん
ビュークラス(Java)
Span span = html.getById(“name”, Span.class);
span.replaceInner(“ヤマダ”);
// これで <span id=“name”>ヤマダ</span>さん
// が出力される
Seleniumでテスト
String name = driver
.findElement(By.id(“name”))
.getText();
assertEquals(name, is(“ヤマダ”));
Mixer2のメリットその1
Mixer2を使ったViewは
id,class属性がついたタグが自
然と多くなるので
Seleniumでのテストコードも書
きやすくなる
Mixer2
Mixer2の動作原理
XHTML Java Object
loadHtmlTemplate(
)
saveToString()
Html
Head Body
<html>
<head>
……..
</head>
<body>
……..
</body>
</html>
Mixer2は双方向型のXHTML/Objectマッパー
さっきのをもう一度よーく見ると
Span span = html.getById(“name”, Span.class);
span.replaceInner(“ヤマダ”);
String name = driver
.findElement(By.id(“name”))
.getText();
assertEquals(name, is(“ヤマダ”));
似たようなコードで
似たようなことをやってる!
だったらこうしてしまうのもアリ
Span span = html.getById(“name”, Span.class);
span.replaceInner(“ヤマダ”);
String src = driver.getPageSource()
Html html = mixer2Engine.loadHtmlTemplate(src)
Span span = html.getById(“name”,Span.class)
String name = span.getContent().get(0).toString()
assertEquals(name, is(“ヤマダ”))
つまり?
● テスト対象のコード(View)
● Seleniumによるテストコード
両方で同じテクノロジー(Mixer2)を使って
学習コストを削減できる
おしまい。ありがとうございました!
www.bizreach.co.jp/recruit/
来週!

More Related Content

PPTX
kintoneチームを支えるSeleniumテスト
PDF
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
PDF
脱・独自改造! GebでWebDriverをもっとシンプルに
PDF
ハイパフォーマンスSeleniumテスト@サイボウズ
PDF
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
PDF
20121019 jenkins勉強会lt資料
PDF
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園
kintoneチームを支えるSeleniumテスト
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
脱・独自改造! GebでWebDriverをもっとシンプルに
ハイパフォーマンスSeleniumテスト@サイボウズ
2013-09 テンプレートエンジンMixer2紹介 HTML5J&JJUG合同勉強会LT
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
20121019 jenkins勉強会lt資料
201311 webデザイナとエンジニアのチームワークを加速させるテンプレートエンジンmixer2 devlove現場甲子園

What's hot (20)

PDF
Selenium Antipatterns
PDF
Awsで実現するseleniumテスト高速術
PPTX
ノンプログラマのためのSelenium de DDTはじめの一歩
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
PDF
退屈なブラウザ作業をpuppeteerにやらせたいお話
PDF
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
PPT
テスト自動化ツール[Selenium]を検討してみて
PDF
JenkinsとSeleniumの活用事例
PDF
Java web application testing
PDF
Azureを使って手軽にブラウザテストの自動化をはじめよう
PDF
テスト自動化の様々な道具を使ってみた四方山話
PDF
20161218 selenium study4
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
PDF
20141018 selenium appium_cookpad
PDF
今すぐブラウザでES6を使おう
PDF
プログラミング言語Clojureのニャンパスでの活用事例
PDF
エンタープライズ開発でのSelenium活用事例
PPTX
Selenium2(web driver) ide編
PDF
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
PPTX
第9回Jenkins勉強会 超簡単Pipeline講座
Selenium Antipatterns
Awsで実現するseleniumテスト高速術
ノンプログラマのためのSelenium de DDTはじめの一歩
「Selenium実践入門」で学ぶテスト自動化の世界
退屈なブラウザ作業をpuppeteerにやらせたいお話
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
テスト自動化ツール[Selenium]を検討してみて
JenkinsとSeleniumの活用事例
Java web application testing
Azureを使って手軽にブラウザテストの自動化をはじめよう
テスト自動化の様々な道具を使ってみた四方山話
20161218 selenium study4
海外のSeleniumカンファレンスではどんな発表がされているのか2014
20141018 selenium appium_cookpad
今すぐブラウザでES6を使おう
プログラミング言語Clojureのニャンパスでの活用事例
エンタープライズ開発でのSelenium活用事例
Selenium2(web driver) ide編
SeleniumE2Eテストフレームワークを使用したテスト自動化事例 #Seleniumjp
第9回Jenkins勉強会 超簡単Pipeline講座
Ad

Viewers also liked (20)

PPTX
Selenium Conference 2015 参加報告
PPTX
Sikuli x 知っていますか?
PDF
Jenkins 再入門
PDF
サイボウズのフロントエンド開発 現在とこれからの挑戦
PDF
テストエンジニアと組織構造 @Cybozu
PDF
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
PDF
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
PDF
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
PDF
Mixer2によるdynamic css sprite 201309第三回渋谷java
PDF
The cost of learning - advantage of mixer2
PDF
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
PDF
日本語によるJUnitの拡張について
PDF
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
PDF
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
PPTX
Java Puzzlers JJUG CCC 2016
PDF
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
PDF
properties, yaml, and me
PDF
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
PDF
テストゼロからイチに進むための戦略と戦術
PDF
ゲーム情報設計における「霧」との戦い
Selenium Conference 2015 参加報告
Sikuli x 知っていますか?
Jenkins 再入門
サイボウズのフロントエンド開発 現在とこれからの挑戦
テストエンジニアと組織構造 @Cybozu
受入試験を自動化したらDevとQAのフィードバックループがまわりはじめた話
Mixer2 で作るカスタムテンプレートエンジン #渋谷java
20130511 jjug ccc講演 さらばjsp JAXBとmixer2
Mixer2によるdynamic css sprite 201309第三回渋谷java
The cost of learning - advantage of mixer2
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
日本語によるJUnitの拡張について
俺のコードがどこでつかわれているのかわからない問題 あるいはマイナーOSSの生存戦略
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Java Puzzlers JJUG CCC 2016
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
properties, yaml, and me
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
テストゼロからイチに進むための戦略と戦術
ゲーム情報設計における「霧」との戦い
Ad

Similar to テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話 (20)

PDF
Nodeにしましょう
PDF
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
PDF
2013 08-19 jjug
PDF
Rails templateで開発の初速を上げよう
PDF
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
PDF
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
KEY
capybara で快適なテスト生活を
PPTX
burikaigi2023
KEY
Beginners scala 20121113
PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
PDF
関西 Java エンジニアの会 2012年6月度 JavaOne 報告会!
PDF
Nseg第32回勉強会
PPTX
Vue template-parserを作っている話
PDF
mod_perlプログラマーがYAPCで語るレガシー開発論
PDF
Svgアニメーションを実装してみよう 20150207
PDF
Infrastrucure as a CodeにおけるJenkinsの役割
ODP
PySide/QtWebkitで楽々 slideshare Hack
PDF
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
PDF
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
PPTX
Stack2017 自動化困難な状況での活動方法
Nodeにしましょう
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
2013 08-19 jjug
Rails templateで開発の初速を上げよう
Webプログラマのための Scala 入門勉強会 @ 渋谷 12/7
2010/11/2 WebプログラマのためのScala入門勉強会@渋谷
capybara で快適なテスト生活を
burikaigi2023
Beginners scala 20121113
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
関西 Java エンジニアの会 2012年6月度 JavaOne 報告会!
Nseg第32回勉強会
Vue template-parserを作っている話
mod_perlプログラマーがYAPCで語るレガシー開発論
Svgアニメーションを実装してみよう 20150207
Infrastrucure as a CodeにおけるJenkinsの役割
PySide/QtWebkitで楽々 slideshare Hack
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Stack2017 自動化困難な状況での活動方法

テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話