Submit Search
Upload
JenkinsとSeleniumの活用事例
•
9 likes
•
8,531 views
Takeshi Kondo
Follow
2015年Jenkinsユーザカンファレンスの発表資料です。
Read less
Read more
Internet
Report
Share
Report
Share
1 of 47
Download now
Download to read offline
Recommended
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
Kotaro Ogino
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Katib
Katib
Yuji Oshima
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Web Services Japan
Recommended
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
Kotaro Ogino
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
tamtam180
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
Insight Technology, Inc.
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
Takeshi Mikami
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Katib
Katib
Yuji Oshima
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Web Services Japan
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
Sadayuki Furuhashi
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
REST API のコツ
REST API のコツ
pospome
今Serverlessが面白いわけ
今Serverlessが面白いわけ
Yoichi Kawasaki
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
Takeru Maehara
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
Open Source Consulting
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
検索基盤Qass
検索基盤Qass
takahito takabayashi
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
日本マイクロソフト株式会社
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
Shinya Okano
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
Selenium IDE for primer
Selenium IDE for primer
yasukoS
More Related Content
What's hot
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Recruit Lifestyle Co., Ltd.
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
Sadayuki Furuhashi
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
REST API のコツ
REST API のコツ
pospome
今Serverlessが面白いわけ
今Serverlessが面白いわけ
Yoichi Kawasaki
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
Takeru Maehara
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
Open Source Consulting
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
検索基盤Qass
検索基盤Qass
takahito takabayashi
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
View customize1.2.0の紹介
View customize1.2.0の紹介
onozaty
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
日本マイクロソフト株式会社
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Etsuji Nakai
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
Shinya Okano
What's hot
(20)
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
REST API のコツ
REST API のコツ
今Serverlessが面白いわけ
今Serverlessが面白いわけ
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
検索基盤Qass
検索基盤Qass
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
View customize1.2.0の紹介
View customize1.2.0の紹介
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
Similar to JenkinsとSeleniumの活用事例
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
Selenium IDE for primer
Selenium IDE for primer
yasukoS
Selenium
Selenium
takeuchi-tk
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
Tsutomu Chikuba
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
Ja sst東北2013
Ja sst東北2013
勝信 今井
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
finoue
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
Nozomi Ito
20161218 selenium study4
20161218 selenium study4
Naoya Kojima
Electron early 2019
Electron early 2019
Masahiro Kondoh
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
Osamu Monoe
Selenium入門
Selenium入門
onozaty
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017
Toshiya Komoda
Trac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
Takahisa Wada
Selenium勉強会
Selenium勉強会
Tatsunori Nishikori
Selenium入門(2023年版)
Selenium入門(2023年版)
onozaty
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
MaiKaneko4
恋するJenkins
恋するJenkins
Hiroshi Nakao
PHP agile test tips
PHP agile test tips
Tsutomu Chikuba
Similar to JenkinsとSeleniumの活用事例
(20)
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Selenium IDE for primer
Selenium IDE for primer
Selenium
Selenium
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Ja sst東北2013
Ja sst東北2013
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
20161218 selenium study4
20161218 selenium study4
Electron early 2019
Electron early 2019
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
Selenium入門
Selenium入門
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017
Trac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
Selenium勉強会
Selenium勉強会
Selenium入門(2023年版)
Selenium入門(2023年版)
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
恋するJenkins
恋するJenkins
PHP agile test tips
PHP agile test tips
JenkinsとSeleniumの活用事例
1.
JENKINSとSELENIUMの活用事例 - プロジェクトへの試験自動化の導入 - NTTコミュニケーションズ株式会社 近藤
剛 Jenkinsユーザ・カンファレンス 東京2015
2.
自己紹介 名前 近藤 剛 (こんどう
たけし) 仕事 NTTコミュニケーションズ株式会社 技術開発部 クラウド系のサービス・基盤の開発
3.
はじめに • 今日はWebアプリの受入試験を題材に、Seleniumや Jenkinsをどのように導入し、自動化・効率化を進めて いったかという話をします。 • Seleniumをあまり知らない・これから使ってみたい、と いう方に向けて、簡単な解説や実際の設定例を盛り込 んでいます。 •
SeleniumやJenkinsを用いた試験自動化導入の参考に なれば幸いです。
4.
本日の流れ 1. 自動化の背景 2. Seleniumの導入 3.
Jenkinsとの連携 4. まとめ
5.
とある開発プロジェクト 『プラットフォーム開発』 • アジャイル的な開発 • 1〜1.5ヶ月のイテレーション •
自分はWebアプリなどの受入試験を担当 DEV QA STG PROD 単体 結合 受入 開発環 境 試験工程 最終
6.
現場の悩み 試験項目はイテレーション毎に増加する • 約100項目 →
約2000項目 試験期間は開発後半になるほど減少する • 開発・デプロイの遅れと迫り来るリリース さらに、要件変更やパッチ適用で試験頻度も増加…
7.
どうする?! 品質 スコープ リソース 時間
8.
自動化への期待 手動ベースのWEBアプリ試験について、 • 単純作業 • 繰り返し作業 を自動化することで、
効率的な試験の実施 開発後も使えるテスト を実現したい
9.
SELENIUMとは Webブラウザのテストを自動化するツール • http://www.seleniumhq.org/
10.
SELENIUM SUITE • Selenium
1 / Selenium RC • 初期のSelenium • Selenium 2 / Selenium WebDriver • GoogleのWebDriverと統合 • Selenium IDE /Selenium Builder • Firefoxプラグイン
11.
簡単なデモ
12.
どのSELENIUMを使うか? Selenium IDE • Firefoxプラグインで簡単に操作の記録・再生 •
Firefox限定 Selenium 2 / Selenium WebDriver • JavaやRubyでお好みにテストコードを記述 • 複数のブラウザに対応
13.
SELENIUMの記述 Selenium IDE Selenium 2
/ Selenium WebDriver
14.
WEBブラウザ操作 要素 コマンド
15.
要素の指定 • id • ex.)
id=‘username’ • name • ex.) name=‘ok_button’ • CSSセレクタ • ex.) p:nth-last-of-type(2) • Xpath • ex.) /html/body/div[1]/div/div[2]/div[2]/div[2]/ div/div[2]/div[1]/div[2]/span
16.
要素を探すには? • Selenium IDEの操作記録 •
Firebugで要素を調査
17.
コマンドの指定 • Click • クリック(リンク、ボタン、チェックボックス) •
Wait • 特定の文字列が表示されるまで待機 • Verify / Assert • 特定の文字列が存在するかを検証 • Store • 文字列を格納 • Type • 文字列を記述
18.
テストケースの作成(IDE) • 操作の自動記録だけでは安定したケースは作れない • 自動記録をベースにしてテストケースを拡張すること
19.
作成のポイント (IDE) • 初期設定 •
変数(store) • 実行速度(setSpeed) • 要素 • id > name > CSSセレクタ >Xpath の優先順位 • コマンド • ページ読み込み(Pause) • スクリーンショット(captureEntirePageScreenshot) • JavaScript • 入力データの生成や値の加工 • 例) storedVars['order'].substring(9,14)
20.
テストケースの作成(WEBDRIVER) • Selenium IDEはアドオン単体でテストケースの作 成・実行 •
Selenium 2 / WebDriverを利用する場合には、言 語に合わせてテストのフレームワークを組み合わせ て利用する
21.
CUCUMBER • 受入れテストのフレームワーク • Gherkin書式で記述 •
Given: 前提 • When: もし (操作内容) • Then: ならば (期待する結果) • feature fileとstep fileの作成 • feature file : テストケースを記述 • step file : テストコードを記述
22.
FEATURE FILE • login.feature テストケースの概要 Gherkin書式で テストケースの記述
23.
STEP FILE • login_steps.rb featureファイルに 合わせてコードを記述
24.
CUCUMBERの実行 $ cucumber -f
html -o result.html . 緑:Pass 黄:Pending
25.
作成のポイント(WEBDRIVER) • ブラウザ切り替え • @brower
= Selenium::WebDriver.for :firefox • @brower = Selenium::WebDriver.for :chrome • ラッパーの利用 • rubyならcapybaraとか
26.
実行環境 • 最初はローカルPCにテスト環境を構築 • Mac一台(一人)でテストケースを作成し、 Seleniumを実行 •
PJが進むにつれてチームでの試験環境が必要に • 同じテストケースでも実行環境によりFailする • テストケースの修正箇所やバージョンが不明 Webアプリ
27.
VMへの移行 + GITの導入 Git WebアプリCentOS •
VM上で安定して動くテストケースをチームで作成 • gitによりチームメンバの作業が見える化 push pull test
28.
VM移行時のヒント • Selenium用のFirefoxプロファイル作成 • $
firefox –ProfileManger –no-remote • Selenium実行時の画面確認 • 仮想ディスプレイ: Xvfb • VNC: X11VNC • + SSHトンネルでセキュアに接続 • Selenium Serverの利用 java -Dfile.encoding=8859_1 –jar selenium-server-standalone-2.44.0.jar –port 1234 -htmlSuite "*firefox" "https://hoge.portal" ”test_suite.html" "results.html" -firefoxProfileTemplate /home/hoge/.mozilla/firefox/278ftidu.Selenium
29.
JENKINSの導入 • 定期的にテストを実行したい • 実行結果を管理したい ようやく登場…
30.
導入イメージ Git Webアプリ • SeleniumをJobに登録 • JenkinsがJobを定期実行 pus h pull test kick result
31.
ダッシュボード
32.
JOBの登録 • Seleniumhq Plugin •
シェルで実行
33.
実行結果 • Selenium HTML
Report Plugin
34.
便利なプラグイン • Build Pipeline
Plugin • 複数Jobの連携可視化 • Email Extension Plugin • メール通知 • Text Finder Plugin • キーワード検索 • Xvfb Plugin • Xvfbの立ち上げ • Emotional Jenkins Plugin • 安らぎ https://wiki.jenkins-ci.org/display/JENKINS/Emotional+Jenkins+Plugin
35.
BUILD PIPELINE • 複数のJobをパイプラインとして表示 •
Jobの実行順序や状態が見やすくなる
36.
UIの評価 • WEBアプリはUI確認も重要なテスト項目 • 表示のズレ •
文章の変更 • 情報の更新 • 人の目で判断する以外に方法はないか? • 画像比較の自動化
37.
スクリーンショット • Selenium IDE •
captureEntirePageScreenshot • Selenium WebDriver • driver.save_screenshot(‘screenshot.png’) • ウィンドウサイズを固定しておくこと • windowMaximize • manage.window.resize_to(1200,900)
38.
IMAGE MAGICK • 画像処理のOSSツール •
http://www.imagemagick.org • compareコマンド • 2枚の画像を比較して差分を計算 • http://www.imagemagick.org/script/compare.php
39.
• $ compare
–verbose –metric PSNR test1.png test2.png diff.png test1.png test2.png diff.png 画像比較
40.
JOB登録 • compareコマンドを実行するシェルを作成 • テスト実行日と正解画像の比較 •
テスト実行日と前日画像の比較 • JenkinsにJobとして登録 • Seleniumの後工程としてシェルを実行 • 実行結果 • 日付変更など定常的に発生する差分 • 差分値に閾値を設定してアラート • レイアウト変更などで発生する差分 • image too dissimilarエラーを拾いアラート
41.
現在の姿 Git Webアプリ • Jenkinsがテストの実行・レポートを管理 • プラグインやシェルの利用で開発・テストを効率化 pus h pull test kick result chatemail 開発者 fix post
42.
導入成果と課題 基本的な機能は1日で試験できるようになった レポート作成などのペーパーワークが減った
サービスレベルのモニタリングにも流用できた 面白がって自動化に興味を持ってくれる人が増えた • 運用フェーズにおける継続した取り組み • テストケースも保守しなければすぐに陳腐化 • 学習コストが高い?
43.
最後に • SeleniumによるWebアプリ試験以外にも、様々な 開発チームがCIや自動化を導入しています • 最後に少しだけご紹介
44.
例えばサーバのパッチ動作検証 試験対象 SV 試験対象
SV 環境構築-SV ①新規コードpush ②Jobをキック ③新規コードpull ③新規コードpull ④VM起動 ⑤ミドル構築・デプロイ ⑥試験実行 協調 master slave CLIツール (クラウドAPI用) + knife-solo SeleniumServer 開発者 ⑦VM終了 API呼び出し プロビジョニング パッチ適用 UI試験 リグレッション試験 ・・・ 試験-SV Git-SV 試験対象-SV
45.
他にも
46.
開発環境の構成イメージ Provision サーバ Stage(本番擬似環境) Test (インテグレーション) Production (本番環境)Dev(ローカル開発環境) 開発マシン
Pull / Push 運用監視 PM系 Webhook (PRトリガ) 障害通知 内製の簡易 Cloud Formation メール 送信擬似 通知
47.
ご清聴ありがとうございました
Download now