Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Selenium でさらに 60% の作業効率化した話 / How to reduce ope...
Search
Yu Kawanami
December 12, 2017
Technology
0
42
Selenium でさらに 60% の作業効率化した話 / How to reduce operations by another 60% with Selenium
社内ビアバッシュでの発表資料
Yu Kawanami
December 12, 2017
Tweet
Share
More Decks by Yu Kawanami
See All by Yu Kawanami
数字で表すシリーズ 〜開発規模(工数⇔期間)の見積もり編③〜 / practice of estimate part3
kawanamiyuu
0
11
数字で表すシリーズ 〜開発規模(工数⇔期間)の見積もり編②〜 / practice of estimate part2
kawanamiyuu
0
140
数字で表すシリーズ 〜開発規模(工数⇔期間)の見積もり編①〜 / practice of estimate part1
kawanamiyuu
0
160
開発チームの自走力を育む「イテレーションマネージャー」という取り組み / iteration manager
kawanamiyuu
1
1.5k
スタートアップで 1 度は崩壊しかけたチームがこれからチームになっていくための第一歩 / re-startup team
kawanamiyuu
2
960
PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaigi 2021
kawanamiyuu
6
5.3k
3 つの “はじめて” から始まった OSS 活動。のその先で / OSS LT会 #osscontributelt / turning point of joy as a developer
kawanamiyuu
0
800
腕力と瞬発力(新年の抱負 超LT会- vol.2 #ultral)/ New Year’s Resolution 2021
kawanamiyuu
2
440
ArchUnit で始める Java アプリケーションアーキテクチャの自動テスト / 自動化大好きエンジニアLT会 / LT for Engineers who love Automation
kawanamiyuu
0
930
Other Decks in Technology
See All in Technology
JAWS FESTA 2025でリリースしたほぼリアルタイム文字起こし/翻訳機能の構成について
naoki8408
1
410
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
280
Security Diaries of an Open Source IAM
ahus1
0
210
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
620
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
10
1.8k
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
560
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
4
500
8万デプロイ
iwamot
PRO
2
230
AI は "道具" から "同僚" へ 自律型 AI エージェントの最前線と、AI 時代の人材の在り方 / Colleague in the AI Era - Autonomous AI Seminar 2026 at Niigata
gawa
0
180
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
13
7.2k
Go標準パッケージのI/O処理をながめる
matumoto
0
160
SRE NEXT 2026 CfP レビュアーが語る聞きたくなるプロポーザルとは?
yutakawasaki0911
1
270
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
The SEO Collaboration Effect
kristinabergwall1
0
390
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
150
The Cult of Friendly URLs
andyhume
79
6.8k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
140
Everyday Curiosity
cassininazir
0
160
Music & Morning Musume
bryan
47
7.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Transcript
Selenium でさらに 60% の作業効率化した話 ビアバッシュなにわ at 2017.12.12 カワナミユウ@FC2
None
None
None
None
Advent Calendar に書きました! • https://qiita.com/advent-calendar/2017/rakus
新しい課題
その後も増え続けるクラスタ (15→30)
リリース作業の概要 : : : : ①インフラエンジニアが対象サーバ群に リリースモジュールをデプロイ (並列) ②開発エンジニアが対象サーバ群に 動作確認テストを実行
(直列) デプロイ完了 を連絡 確認完了 を連絡 ③もう片系にも同じ 作業を実施する 直列なのでサーバ数に 比例して実行時間が増 加する
動作確認テストを 並列実行したい
どうやって実現する? • テストコード(JUnit)で頑張る? • テストランナー(Gradle)で頑張る? • Any other ideas?
それ xargs でできるよ
xargs • 標準入力を読み込み、それを引数として指定したコマンドを実行する ◦ http://itpro.nikkeibp.co.jp/article/COLUMN/20140331/547143/ 例:レビュー済みのブランチを削除する 例:連番を振ったファイルを作成する $ seq 1
5 | xargs -Ino touch server_list.no.csv $ ls servers/ server_list.1.csv server_list.2.csv server_list.3.csv $ git branch | grep REVIEW/ | xargs git branch -D
xargs で並列処理 • 「-P {MAXPROCS}」「--max-procs={MAXPROCS}」オプションで指定したプロセス数 まで同時実行する # 最大3並列で処理する $ cat
target_list | xargs -P 3 -Itarget ./heavey_process.sh target # すべて成功:0、1つでも失敗:1 $ echo $?
結果
実行コマンド • Before(直列) • After(並列) $ ./gradlew clean releaseCheck -Plist=/tmp/server_list.all.csv
# テスト対象のサーバ一覧ファイルを分割して用意する $ ls servers/ server_list.1.csv server_list.2.csv server_list.3.csv # 3並列で実行する $ find servers/ -type f | \ xargs -P 3 -Ifile ./gradlew clean releaseCheck -Plist=file テスト対象のサーバ一覧 ファイルのパス
実行時間 • 直列の場合と比べて、実行時間を3分の1程度まで短縮できた • 並列数を増やすとクライアントPC(ブラウザが起動するPC)のCPU負荷がボトル ネックになり、実行時間の減少はゆるやかに
ジョブ化してさらに実行がかんたんに!
(おまけ)Advent Calendar に書きます! • https://qiita.com/advent-calendar/2017/selenium