SlideShare a Scribd company logo
1 of 47
Download to read offline
JENKINSとSELENIUMの活用事例
- プロジェクトへの試験自動化の導入 -
NTTコミュニケーションズ株式会社
近藤 剛
Jenkinsユーザ・カンファレンス
東京2015
自己紹介
名前
近藤 剛 (こんどう たけし)
仕事
NTTコミュニケーションズ株式会社
技術開発部 クラウド系のサービス・基盤の開発
はじめに
• 今日はWebアプリの受入試験を題材に、Seleniumや
Jenkinsをどのように導入し、自動化・効率化を進めて
いったかという話をします。
• Seleniumをあまり知らない・これから使ってみたい、と
いう方に向けて、簡単な解説や実際の設定例を盛り込
んでいます。
• SeleniumやJenkinsを用いた試験自動化導入の参考に
なれば幸いです。
本日の流れ
1. 自動化の背景
2. Seleniumの導入
3. Jenkinsとの連携
4. まとめ
とある開発プロジェクト
『プラットフォーム開発』
• アジャイル的な開発
• 1〜1.5ヶ月のイテレーション
• 自分はWebアプリなどの受入試験を担当
DEV QA STG PROD
単体 結合 受入
開発環
境
試験工程 最終
現場の悩み
試験項目はイテレーション毎に増加する
• 約100項目 → 約2000項目
試験期間は開発後半になるほど減少する
• 開発・デプロイの遅れと迫り来るリリース
さらに、要件変更やパッチ適用で試験頻度も増加…
どうする?!
品質
スコープ
リソース 時間
自動化への期待
手動ベースのWEBアプリ試験について、
• 単純作業
• 繰り返し作業
を自動化することで、
 効率的な試験の実施
 開発後も使えるテスト
を実現したい
SELENIUMとは
Webブラウザのテストを自動化するツール
• http://www.seleniumhq.org/
SELENIUM SUITE
• Selenium 1 / Selenium RC
• 初期のSelenium
• Selenium 2 / Selenium WebDriver
• GoogleのWebDriverと統合
• Selenium IDE /Selenium Builder
• Firefoxプラグイン
簡単なデモ
どのSELENIUMを使うか?
Selenium IDE
• Firefoxプラグインで簡単に操作の記録・再生
• Firefox限定
Selenium 2 / Selenium WebDriver
• JavaやRubyでお好みにテストコードを記述
• 複数のブラウザに対応
SELENIUMの記述
Selenium IDE
Selenium 2 / Selenium WebDriver
WEBブラウザ操作
要素 コマンド
要素の指定
• 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
要素を探すには?
• Selenium IDEの操作記録
• Firebugで要素を調査
コマンドの指定
• Click
• クリック(リンク、ボタン、チェックボックス)
• Wait
• 特定の文字列が表示されるまで待機
• Verify / Assert
• 特定の文字列が存在するかを検証
• Store
• 文字列を格納
• Type
• 文字列を記述
テストケースの作成(IDE)
• 操作の自動記録だけでは安定したケースは作れない
• 自動記録をベースにしてテストケースを拡張すること
作成のポイント (IDE)
• 初期設定
• 変数(store)
• 実行速度(setSpeed)
• 要素
• id > name > CSSセレクタ >Xpath の優先順位
• コマンド
• ページ読み込み(Pause)
• スクリーンショット(captureEntirePageScreenshot)
• JavaScript
• 入力データの生成や値の加工
• 例) storedVars['order'].substring(9,14)
テストケースの作成(WEBDRIVER)
• Selenium IDEはアドオン単体でテストケースの作
成・実行
• Selenium 2 / WebDriverを利用する場合には、言
語に合わせてテストのフレームワークを組み合わせ
て利用する
CUCUMBER
• 受入れテストのフレームワーク
• Gherkin書式で記述
• Given: 前提
• When: もし (操作内容)
• Then: ならば (期待する結果)
• feature fileとstep fileの作成
• feature file : テストケースを記述
• step file : テストコードを記述
FEATURE FILE
• login.feature
テストケースの概要
Gherkin書式で
テストケースの記述
STEP FILE
• login_steps.rb
featureファイルに
合わせてコードを記述
CUCUMBERの実行
$ cucumber -f html -o result.html .
緑:Pass
黄:Pending
作成のポイント(WEBDRIVER)
• ブラウザ切り替え
• @brower = Selenium::WebDriver.for :firefox
• @brower = Selenium::WebDriver.for :chrome
• ラッパーの利用
• rubyならcapybaraとか
実行環境
• 最初はローカルPCにテスト環境を構築
• Mac一台(一人)でテストケースを作成し、
Seleniumを実行
• PJが進むにつれてチームでの試験環境が必要に
• 同じテストケースでも実行環境によりFailする
• テストケースの修正箇所やバージョンが不明
Webアプリ
VMへの移行 + GITの導入
Git
WebアプリCentOS
• VM上で安定して動くテストケースをチームで作成
• gitによりチームメンバの作業が見える化
push pull
test
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
JENKINSの導入
• 定期的にテストを実行したい
• 実行結果を管理したい
ようやく登場…
導入イメージ
Git
Webアプリ
• SeleniumをJobに登録
• JenkinsがJobを定期実行
pus
h
pull
test
kick
result
ダッシュボード
JOBの登録
• Seleniumhq Plugin
• シェルで実行
実行結果
• Selenium HTML Report Plugin
便利なプラグイン
• 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
BUILD PIPELINE
• 複数のJobをパイプラインとして表示
• Jobの実行順序や状態が見やすくなる
UIの評価
• WEBアプリはUI確認も重要なテスト項目
• 表示のズレ
• 文章の変更
• 情報の更新
• 人の目で判断する以外に方法はないか?
• 画像比較の自動化
スクリーンショット
• Selenium IDE
• captureEntirePageScreenshot
• Selenium WebDriver
• driver.save_screenshot(‘screenshot.png’)
• ウィンドウサイズを固定しておくこと
• windowMaximize
• manage.window.resize_to(1200,900)
IMAGE MAGICK
• 画像処理のOSSツール
• http://www.imagemagick.org
• compareコマンド
• 2枚の画像を比較して差分を計算
• http://www.imagemagick.org/script/compare.php
• $ compare –verbose –metric PSNR test1.png test2.png diff.png
test1.png test2.png
diff.png
画像比較
JOB登録
• compareコマンドを実行するシェルを作成
• テスト実行日と正解画像の比較
• テスト実行日と前日画像の比較
• JenkinsにJobとして登録
• Seleniumの後工程としてシェルを実行
• 実行結果
• 日付変更など定常的に発生する差分
• 差分値に閾値を設定してアラート
• レイアウト変更などで発生する差分
• image too dissimilarエラーを拾いアラート
現在の姿
Git
Webアプリ
• Jenkinsがテストの実行・レポートを管理
• プラグインやシェルの利用で開発・テストを効率化
pus
h
pull
test
kick
result
chatemail
開発者
fix
post
導入成果と課題
 基本的な機能は1日で試験できるようになった
 レポート作成などのペーパーワークが減った
 サービスレベルのモニタリングにも流用できた
 面白がって自動化に興味を持ってくれる人が増えた
• 運用フェーズにおける継続した取り組み
• テストケースも保守しなければすぐに陳腐化
• 学習コストが高い?
最後に
• SeleniumによるWebアプリ試験以外にも、様々な
開発チームがCIや自動化を導入しています
• 最後に少しだけご紹介
例えばサーバのパッチ動作検証
試験対象 SV 試験対象 SV
環境構築-SV
①新規コードpush
②Jobをキック
③新規コードpull ③新規コードpull
④VM起動
⑤ミドル構築・デプロイ
⑥試験実行
協調
master slave
CLIツール
(クラウドAPI用)
+ knife-solo SeleniumServer
開発者
⑦VM終了
API呼び出し プロビジョニング
パッチ適用
UI試験
リグレッション試験
・・・
試験-SV
Git-SV
試験対象-SV
他にも
開発環境の構成イメージ
Provision
サーバ
Stage(本番擬似環境)
Test (インテグレーション)
Production (本番環境)Dev(ローカル開発環境)
開発マシン Pull / Push
運用監視
PM系
Webhook
(PRトリガ)
障害通知
内製の簡易
Cloud
Formation
メール
送信擬似
通知
ご清聴ありがとうございました

More Related Content

What's hot

コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話Yuta Shimada
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方Recruit Lifestyle Co., Ltd.
 
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダEmbulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダSadayuki Furuhashi
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
今Serverlessが面白いわけ
今Serverlessが面白いわけ今Serverlessが面白いわけ
今Serverlessが面白いわけYoichi Kawasaki
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るTakeru Maehara
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법Open Source Consulting
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Hiro H.
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編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 PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAmazon Web Services Japan
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話Takuto Wada
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
View customize1.2.0の紹介
View customize1.2.0の紹介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) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践日本マイクロソフト株式会社
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Shinya Okano
 

What's hot (20)

コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
 
分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方分散トレーシングAWS:X-Rayとの上手い付き合い方
分散トレーシングAWS:X-Rayとの上手い付き合い方
 
Embulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダEmbulk - 進化するバルクデータローダ
Embulk - 進化するバルクデータローダ
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
今Serverlessが面白いわけ
今Serverlessが面白いわけ今Serverlessが面白いわけ
今Serverlessが面白いわけ
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교  및 구축 방법
[오픈소스컨설팅] 쿠버네티스와 쿠버네티스 on 오픈스택 비교 및 구축 방법
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS 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 アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
 
検索基盤Qass
検索基盤Qass検索基盤Qass
検索基盤Qass
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介
 
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
【de:code 2020】 Azure Red hat OpenShift (ARO) によるシステムアーキテクチャ構築の実践
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証Djangoフレームワークのユーザーモデルと認証
Djangoフレームワークのユーザーモデルと認証
 

Similar to JenkinsとSeleniumの活用事例

メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Serviceメルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes ServiceTadashi Nemoto
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primeryasukoS
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストTsutomu Chikuba
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014Nozomi Ito
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界Nozomi Ito
 
20161218 selenium study4
20161218 selenium study420161218 selenium study4
20161218 selenium study4Naoya Kojima
 
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業Osamu Monoe
 
Selenium入門
Selenium入門Selenium入門
Selenium入門onozaty
 
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 20175分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017Toshiya Komoda
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTakahisa Wada
 
Selenium入門(2023年版)
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)onozaty
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストOhishi Mikage
 
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみましたSelenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみましたMaiKaneko4
 

Similar to JenkinsとSeleniumの活用事例 (20)

メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Serviceメルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
 
Selenium IDE for primer
Selenium IDE for primerSelenium IDE for primer
Selenium IDE for primer
 
Selenium
SeleniumSelenium
Selenium
 
ビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテストビジネス的に高価値なアジャイルテスト
ビジネス的に高価値なアジャイルテスト
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
 
Ja sst東北2013
Ja sst東北2013Ja sst東北2013
Ja sst東北2013
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界「Selenium実践入門」で学ぶテスト自動化の世界
「Selenium実践入門」で学ぶテスト自動化の世界
 
20161218 selenium study4
20161218 selenium study420161218 selenium study4
20161218 selenium study4
 
Electron early 2019
Electron early 2019Electron early 2019
Electron early 2019
 
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業テストツールで効率化 Internet Explorerバージョンアップに伴うWebコンテンツの移行作業
テストツールで効率化 Internet Explorerバージョンアップに伴う Webコンテンツの移行作業
 
Selenium入門
Selenium入門Selenium入門
Selenium入門
 
5分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 20175分で分かるselenium conference berlin 2017
5分で分かるselenium conference berlin 2017
 
Trac Plugin Developement with Jenkins
Trac Plugin Developement with JenkinsTrac Plugin Developement with Jenkins
Trac Plugin Developement with Jenkins
 
Selenium勉強会
Selenium勉強会Selenium勉強会
Selenium勉強会
 
Selenium入門(2023年版)
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみましたSelenium WebDriver,Cypress,TestCafeの違いを調べてみました
Selenium WebDriver,Cypress,TestCafeの違いを調べてみました
 
恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 
PHP agile test tips
PHP agile test tipsPHP agile test tips
PHP agile test tips
 

JenkinsとSeleniumの活用事例