KEMBAR78
Daftar
Login
Selenium WebDriver + python で E2Eテスト自動化 | PPTX
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
JustSystems Corporation
PPTX, PDF
7,580 views
Selenium WebDriver + python で E2Eテスト自動化
JustTechTalk#08 Webフロントエンドでやってみた2017の資料2本目です。
Engineering
◦
Read more
6
Save
Share
Embed
Download
Downloaded 27 times
1
/ 17
2
/ 17
3
/ 17
4
/ 17
5
/ 17
6
/ 17
7
/ 17
8
/ 17
9
/ 17
10
/ 17
11
/ 17
12
/ 17
13
/ 17
14
/ 17
15
/ 17
16
/ 17
17
/ 17
More Related Content
PDF
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
PDF
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PPTX
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
by
Tomoki Kuriyama
PDF
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
by
whywaita
PDF
App013 ここはあえて紙と
by
Tech Summit 2016
PPTX
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
PDF
「顧客の声を聞かない」とはどういうことか
by
Yoshiki Hayama
なぜ「マイクロサービス“化”」が必要なのか
by
Yusuke Suzuki
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
by
JustSystems Corporation
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
緊急Ques - コードのメトリクスに基づくリファクタリング戦略
by
Tomoki Kuriyama
CyberAgent における OSS の CI/CD 基盤開発 myshoes #CICD2021
by
whywaita
App013 ここはあえて紙と
by
Tech Summit 2016
はじめてのElasticsearchクラスタ
by
Satoyuki Tsukano
「顧客の声を聞かない」とはどういうことか
by
Yoshiki Hayama
What's hot
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
PDF
JIRAを使った簡単リリースプランニング
by
Narichika Kajihara
PDF
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
PDF
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
PDF
TDD のこころ
by
Takuto Wada
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
PDF
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
by
Rakuten Group, Inc.
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PDF
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
PDF
UXデザインの資格ってどんなの? HCD-Net認定 人間中心設計スペシャリスト・人間中心設計専門家
by
Yoshiki Hayama
PDF
マイクロサービスにおけるテスト自動化 with Karate
by
Takanori Suzuki
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
by
NTT DATA Technology & Innovation
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
PDF
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
PDF
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
PDF
ドメイン駆動設計という仕事の流儀
by
増田 亨
PDF
モデリングもしないでアジャイルとは何事だ
by
Iwao Harada
PDF
Riverpodでテストを書こう
by
Shinnosuke Tokuda
ドメイン駆動設計 ( DDD ) をやってみよう
by
増田 亨
JIRAを使った簡単リリースプランニング
by
Narichika Kajihara
Infrastructure as Code (IaC) 談義 2022
by
Amazon Web Services Japan
マイクロにしすぎた結果がこれだよ!
by
mosa siru
ドメイン駆動設計のための Spring の上手な使い方
by
増田 亨
TDD のこころ
by
Takuto Wada
マイクロサービスに至る歴史とこれから - XP祭り2021
by
Yusuke Suzuki
Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり
by
Rakuten Group, Inc.
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
ドメイン駆動設計に15年取り組んでわかったこと
by
増田 亨
UXデザインの資格ってどんなの? HCD-Net認定 人間中心設計スペシャリスト・人間中心設計専門家
by
Yoshiki Hayama
マイクロサービスにおけるテスト自動化 with Karate
by
Takanori Suzuki
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
by
NTT DATA Technology & Innovation
RESTful Web アプリの設計レビューの話
by
Takuto Wada
開発速度が速い #とは(LayerX社内資料)
by
mosa siru
アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ
by
Yusuke Suzuki
ドメイン駆動設計という仕事の流儀
by
増田 亨
モデリングもしないでアジャイルとは何事だ
by
Iwao Harada
Riverpodでテストを書こう
by
Shinnosuke Tokuda
Viewers also liked
PPTX
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
PDF
UX実現に向けた社内の取り組みについて-訴求ファーストによる商品開発-
by
JustSystems Corporation
PDF
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
by
JustSystems Corporation
PPTX
TypeScriptの大規模開発への適用
by
JustSystems Corporation
PDF
JustTechTalk#10 React開発における自動テスト実践
by
JustSystems Corporation
PDF
JustTechTalk#10windowsアプリでのテスト自動化事例
by
JustSystems Corporation
PDF
AWS運用における最適パターンの徹底活用
by
JustSystems Corporation
#nds47 WebのテストをPythonでやってエビデンス取得作業から開放?
by
civicpg
UX実現に向けた社内の取り組みについて-訴求ファーストによる商品開発-
by
JustSystems Corporation
インパス! あのこれダメッス! ~Javaコードレビューの指摘ポイント10選~
by
JustSystems Corporation
TypeScriptの大規模開発への適用
by
JustSystems Corporation
JustTechTalk#10 React開発における自動テスト実践
by
JustSystems Corporation
JustTechTalk#10windowsアプリでのテスト自動化事例
by
JustSystems Corporation
AWS運用における最適パターンの徹底活用
by
JustSystems Corporation
Similar to Selenium WebDriver + python で E2Eテスト自動化
PDF
Selenium with pixiv
by
Kohki Yamagiwa
PPTX
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
PDF
ブラウザのUIテストをしてみた話
by
Mitsushige Ishiguro
PDF
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
PPTX
Selenium2でつくるテストケースの構成について
by
yufu yufu
PDF
end to end testing(jscafe15)
by
Ryuma Tsukano
PDF
ApiとE2Eテスト #entapihack
by
nihon buson
PDF
E2E Test Tools
by
KeepAlive1
PPTX
Selenium2(web driver)
by
Tetsuya Hasegawa
PPT
テスト自動化ツール[Selenium]を検討してみて
by
裕史 川松
PDF
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
PDF
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
PPTX
Selenium IDE for primer
by
yasukoS
PDF
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
PDF
201605 FA勉強会 seleniumスライド
by
秀平 高橋
PDF
テストゼロからイチに進むための戦略と戦術
by
Y Watanabe
PDF
PHP Application E2E with Capybara
by
Yoshiaki Yoshida
PDF
201605 fa勉強会スライド
by
秀平 高橋
PDF
1時間で分かるSTA (Software Test Automation) #stac2014
by
Kazuhiro Suzuki
PPT
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
Selenium with pixiv
by
Kohki Yamagiwa
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
by
Taichi Watanabe
ブラウザのUIテストをしてみた話
by
Mitsushige Ishiguro
「Selenium実践入門」で学ぶテスト自動化の世界
by
Nozomi Ito
Selenium2でつくるテストケースの構成について
by
yufu yufu
end to end testing(jscafe15)
by
Ryuma Tsukano
ApiとE2Eテスト #entapihack
by
nihon buson
E2E Test Tools
by
KeepAlive1
Selenium2(web driver)
by
Tetsuya Hasegawa
テスト自動化ツール[Selenium]を検討してみて
by
裕史 川松
4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
実践で学ぶ、効率的な自動テストスクリプトのメンテナンス
by
Nozomi Ito
Selenium IDE for primer
by
yasukoS
海外のSeleniumカンファレンスではどんな発表がされているのか2014
by
Nozomi Ito
201605 FA勉強会 seleniumスライド
by
秀平 高橋
テストゼロからイチに進むための戦略と戦術
by
Y Watanabe
PHP Application E2E with Capybara
by
Yoshiaki Yoshida
201605 fa勉強会スライド
by
秀平 高橋
1時間で分かるSTA (Software Test Automation) #stac2014
by
Kazuhiro Suzuki
ビジネス的に高価値なアジャイルテスト
by
Tsutomu Chikuba
More from JustSystems Corporation
PDF
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
by
JustSystems Corporation
PDF
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
by
JustSystems Corporation
PDF
現役23名のPM:タイプ別マネジメントパターン
by
JustSystems Corporation
PPTX
JavaでインメモリSQLエンジンを作ってみた
by
JustSystems Corporation
PDF
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
by
JustSystems Corporation
PDF
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
by
JustSystems Corporation
PDF
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
by
JustSystems Corporation
PDF
最新のJava言語仕様で見るモジュールシステム #jjug
by
JustSystems Corporation
PPTX
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
PPTX
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
PDF
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
PPTX
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
PDF
CSSレイアウトでなぜ失敗するか?
by
JustSystems Corporation
PDF
「訴求ファースト」と「こだわり駆動開発」~教育、医療、もの書き市場で戦うプロダクトマネージャーの考え方~
by
JustSystems Corporation
PDF
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
PDF
ArrayListをじっくり読んでみた - JavaコアSDKを読む会を社内でやって気づいたこと -
by
JustSystems Corporation
PDF
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
PPTX
ATOK Spark のご紹介とJavaによるプラグイン開発について
by
JustSystems Corporation
PPTX
スマイルゼミの裏側(db編)
by
JustSystems Corporation
PDF
Groonga meetup20151129
by
JustSystems Corporation
「技術内閣制度」〜2年間やってきて得られた事とこれから〜 #devsumi
by
JustSystems Corporation
事業に貢献する商品開発と その成長の仕組み作り ~これからのエンジニアに必要とされるスキルとは~
by
JustSystems Corporation
現役23名のPM:タイプ別マネジメントパターン
by
JustSystems Corporation
JavaでインメモリSQLエンジンを作ってみた
by
JustSystems Corporation
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
by
JustSystems Corporation
JustTechTalk#11_スマイルゼミ顧客満足度への貢献
by
JustSystems Corporation
ピュアJavaだと思った?残念androidでした~いつからAndroidをJavaだと錯覚していた?~
by
JustSystems Corporation
最新のJava言語仕様で見るモジュールシステム #jjug
by
JustSystems Corporation
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
by
JustSystems Corporation
ジャストシステムのDevOps実例 今後の取り組み
by
JustSystems Corporation
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
by
JustSystems Corporation
Kotlin is charming; The reasons Java engineers should start Kotlin.
by
JustSystems Corporation
CSSレイアウトでなぜ失敗するか?
by
JustSystems Corporation
「訴求ファースト」と「こだわり駆動開発」~教育、医療、もの書き市場で戦うプロダクトマネージャーの考え方~
by
JustSystems Corporation
メンバーのスキルアップ、どうしてる? − Java 100本ノックで新加入メンバーを鍛えてみた −
by
JustSystems Corporation
ArrayListをじっくり読んでみた - JavaコアSDKを読む会を社内でやって気づいたこと -
by
JustSystems Corporation
ジャストシステムJava100本ノックのご紹介
by
JustSystems Corporation
ATOK Spark のご紹介とJavaによるプラグイン開発について
by
JustSystems Corporation
スマイルゼミの裏側(db編)
by
JustSystems Corporation
Groonga meetup20151129
by
JustSystems Corporation
Selenium WebDriver + python で E2Eテスト自動化
1.
Selenium WebDriver +
Python で E2Eテスト自動化 2017年3月24日 株式会社ジャストシステム EPS事業部商品開発部 小池恵理
2.
背景 1 自己紹介 BtoB向けWebアプリケーションの開発担当(主にフロント)。 JUST.SFAの品質保証担当。一環としてテスト自動化の検討~実施。 JUST.SFA 営業管理システム(クラウドサービス) ユーザー企業の業務に直結。品質重要。 多機能で用途に合わせてカスタマイズできる。組み合わせが膨大。 機能拡張・追加したい。リリース頻度上げたい。 E2E(End to
End)テストを自動で実行~検証することで、 外部仕様どおりの動作を保証しながら開発を進めたい。
3.
2 E2Eテスト自動化の難しさ① 操作を「実装する」 • 「手動テストをそのまま繰り返し実行できる」わけではない • よくある誤解 •
「記録・再生するだけ」という認識の人への説得が必要 • 「どの要素」を「どう操作するか」の実装 • 例:「保存ボタン」を「クリックする」 • 画面上からの要素取得(CSS Selector、XPath) • タイミング問題(waitの設定) • バグではなくてもテストが失敗する場合はある
4.
3 E2Eテスト自動化の難しさ② 何を正解とするか?どう検証するか? • 正解データとする画像との比較 → 安定しない •
要素から取得される値の比較 検証したい内容について、どの要素の値がどうなっていれば 正解とするかを検討し実装する必要がある。
5.
4 方針 「操作」「検証」の内容を限定することが重要。 同じ「操作」「検証」を実装し、入力値を変えることで、手 動テストでは困難な多くの組み合わせについての自動検証を 可能とする。(データ駆動テスト) login(username,password) open_panel(panel_id) assert_panel_name() シナリオ データ # username
password panel_id 001 user0001 11111111 1 002 user0002 22222222 2 ・ ・ ・ ・ ・ ・ ・ ・ 入力
6.
5 本発表のタイトル Selenium WebDriver +
Python で E2Eテスト自動化
7.
Selenium WebDriver ブラウザ上の操作を実現するライブラリ。 ブラウザ自動テストツールとして最もメジャーで、フリーで使える。 主要言語で提供されている。 Java /
C# / Ruby / Python / Javascript 6
8.
7 Python テストスクリプトはプロダクトとは完全に切り離して実装するため、プ ロダクトと同一言語である必要はない。 テストフレームワークを利用する。 • 標準のunittestは使いづらいのでpytestを採用。 • 結果をJUnit形式で出力してくれる。 •
Jenkinsと連携して結果表示できる。
9.
フォルダ構成 8 rootdir/ ├test_runner.py ├data/ │ ├case_A001.yaml │ ├case_A002.yaml │
└… ├senario/ │ ├base.py │ ├senarioA.py │ ├senarioB.py │ └… └page/ ├login.py ├main.py └… テストランナー テストケースA001のデータ(yaml) シナリオの継承元。シナリオ間共通処理。 シナリオA(「操作」「検証」のフロー) ログイン画面のページオブジェクト メイン画面のページオブジェクト PageObjectパターンの適用
10.
テストランナー 9 test_runner.yaml
11.
データ 10 data/case_A001.yaml data/case_A002.yaml
12.
シナリオ 11 senario/senairoA.py senario/senairoB.py
13.
シナリオ(継承元) 12 senario/base.py
14.
ページ 13 page/main.py
15.
14 実行~結果の確認 以下のコマンドでテストを実行。 Jenkins上で結果表示までできる。
16.
CIに組み込む 自動テストを形骸化させないために、重要。 15 検証対象環境 自動テスト実行環境担当者 ①データの初期化、最新版への更新 ②テスト実行 ③テスト結果 レポート ④NGあれば アラート
17.
E2Eテスト自動化 ポイント 16 特徴 「操作」「検証」の実装が必要。 バグではなくてもテストNGとなる場合はある。 方針 自動検証の範囲を限定する。 スクリーンショットで検証しない。(エビデンスとして利用) 保守性を考慮した設計にする。(データ駆動テスト、PageObject パターン) CIに組み込み、テストNGを放置せずに解決する。(NGケースを再 実行できる設計、担当者のアサイン)
Editor's Notes
#2
それでは、Selenium WebDriverとPythonでE2Eテスト自動化のお話しをさせていただきます。小池です。よろしくお願いします。
#3
まず簡単に自己紹介ですが、私自身はBtoB向けのWebアプリケーションの開発を行っていました。 直近1年ほどは営業管理システムのJUST.SFAの品質保証担当になり、その一環としてテスト自動化の検討から実施までを行っています。 ・ JUST.SFAですが、不具合によってはユーザーの業務が止まってしまうこともあるので、品質は非常に重要です。 また、様々な機能が使えてかつ用途に合わせたカスタマイズができる、という商品性のため、設定できる組み合わせが膨大となっています。 さらに、昨年7月にリリースした商品であることもあり、今後機能追加をどんどん行うため、リリース頻度を上げたいという要件もあります。 ・ そのため、テストの自動化が望まれますが、多機能で組み合わせ多数ということもあり、単体テストだけではカバーが難しいため、 E2Eテストの自動化を行うことになりました。 E2Eテストとは、画面上の操作から画面上のアウトプットでの検証のことで、外部仕様を満たすことを確認するものになります。
#4
E2Eテストの自動化ですが、難しいものです。 ・ まず、操作を「実装する」必要があると言うことが上げられます。 よくある誤解として、ブラウザ上での操作を記録・再生するだけではないのか?という考えを持っている人がいますが、実際は 「どの要素」を「どう操作するか」の実装をしていく必要があります。 ・ たとえば、保存ボタンをクリックするためには、保存ボタンをCSS SelectorやXpathで取得し、その要素に対してクリックを実行する というのをスクリプトで書いていくことになります。 また、操作は1つの操作で完結することはなく、基本的にはステップを踏むものになります。 たとえば、編集画面を表示して、フォームの入力値を変更して、保存ボタンを押して、閲覧画面が表示される、といった形です。 このときに、タイミング問題として、次の操作をするときにまだ描画が完了していない、ということが発生することがあります。 編集画面を表示した後、まだ表示されていない入力フォームにキー入力しようとすると、要素が見つからずにテストが失敗してしまいます。 これは操作と操作の間にwaitを入れることで回避しますが、このような問題でテストが失敗する場合がある、というのは 前提として考えておく必要があります。
#5
また、何を正解とするか?どう検証するか?を検討して実装する必要がある、というのも難しさの1つです。 よく出てくる話として画像比較がありますが、これは肉眼では全く同じに見える場合でもピクセル単位のずれが多く発生してしまう場合が多々あり、安定しません。 そのため、要素から取得される値を比較する必要がありますが、このためには操作と同様の実装に加えて、その値がどうなっていればテストOKとするか、というのを検討する必要があります。
#6
これらを踏まえると、方針としては「操作」「検証」の内容を限定することが重要になります。 この中で効果を出すために、データのパターンに対して同じ操作手順を繰り返し行う必要があるようなテストに限定します。 操作手順をシナリオとしてスクリプトで実装し、そこにデータを食わせていくことで、手動では困難な膨大なパターンに対するテストを自動で行える様になります。
#7
ここからはタイトルの内容について、実装部分を説明します。
#8
まず、Selenium WebDriverですが、これは自動化ツールとして最もメジャーなものですが、ブラウザ上の操作を実現するライブラリと考えると良いと思います。 主要言語で提供されています。
#9
テストスクリプトはブラウザとは完全に切り離して実装するため、好きな言語を使えます。 今回の場合、Pythonを選択しました。 それと、自動テストなのでテストフレームワークを利用すると良いです。 今回はpytestを利用します。 pytestはテスト結果をjUnit形式で出力してくれるので、CIと連携して結果の表示もできます。
#10
フォルダ構成としてはこのようになっています。 テストランナーで、テストケースを表すデータを読み込み、対象のシナリオで実行します。 また、Seleniumの王道のデザインパターンであるPageObjectパターンも利用します。 画面をオブジェクトと扱うことで、特定の要素に対する操作を一元管理できます。 今回、テストケースに関してはyamlで記述します。 シナリオはそれぞれスクリプトで書いていきますが、共通処理をかいたClassを全シナリオに継承させる、ということをしています。
#11
具体的なスクリプトも紹介したいのですが、時間の都合上省略します。発表資料は後程公開しますので、詳細はそちらでご確認ください。
#16
このように実装したものを、以下のコマンドで実行できます。 JUnit形式の結果出力をオプションで指定しています。 Jenkinsではこのように結果を一覧で見ることができます。
#17
これをCIに組み込むことですが、自動テストを形骸化させないために、非常に重要になります。 1日1回自動実行させるようにして、テストNGがあれば担当者に通知します。 テストNGを必ず解決することも重要です。
#18
最後に、E2Eテストのポイントをまとめておきます。 以上です。ありがとうございました。
Download