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 operations by another 60% with Selenium
Search
Yu Kawanami
December 12, 2017
Technology
0
17
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
開発チームの自走力を育む「イテレーションマネージャー」という取り組み / iteration manager
kawanamiyuu
1
1.1k
スタートアップで 1 度は崩壊しかけたチームがこれからチームになっていくための第一歩 / re-startup team
kawanamiyuu
2
730
PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaigi 2021
kawanamiyuu
6
3.7k
3 つの “はじめて” から始まった OSS 活動。のその先で / OSS LT会 #osscontributelt / turning point of joy as a developer
kawanamiyuu
0
700
腕力と瞬発力(新年の抱負 超LT会- vol.2 #ultral)/ New Year’s Resolution 2021
kawanamiyuu
2
350
ArchUnit で始める Java アプリケーションアーキテクチャの自動テスト / 自動化大好きエンジニアLT会 / LT for Engineers who love Automation
kawanamiyuu
0
770
マイクロサービスアーキテクチャをあきらめないための、モノリスで始めるアーキテクチャテスト / #jjug_ccc_b #ccc_b8 / JJUG CCC 2020 Fall
kawanamiyuu
5
3.2k
Contribution to OSS
kawanamiyuu
0
85
Introduction to OSS
kawanamiyuu
1
140
Other Decks in Technology
See All in Technology
複雑な構成要素を持つUIとの向き合い方 〜新・支出グラフでの実例〜 / B43 TECH TALK
nakamuuu
0
110
20240416_devopsdaystokyo
kzkmaeda
1
190
AWS を使う上で知っておきたいオンプレミス知識/aws-on-premise-essentials
emiki
1
4.2k
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
DevOpsDays History and my DevOps story
kawaguti
PRO
8
1.6k
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
380
転移学習とドメイン適応の基礎
kmatsui
2
570
プロデザ! BY リクルート vol.18_リクルートのリサーチ実践組織「リサーチブーストコミュニティ」
recruitengineers
PRO
3
240
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
WebアプリケーションにおけるPDOの使い方入門 / phpcon odawara 2024
meihei3
2
430
なぜ NOT A HOTEL が Web3 に取り組むのか - NOT A HOTEL TECH TALK
ynunokawa
0
160
o11y入門_外形監視を利用したWebアプリケーションへの最適なモニタリング_TechBrew
k5k
3
100
Featured
See All Featured
KATA
mclloyd
14
12k
Design by the Numbers
sachag
274
18k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
Music & Morning Musume
bryan
41
5.6k
Designing Experiences People Love
moore
136
23k
Building Your Own Lightsaber
phodgson
98
5.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
220
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
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