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
23
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 part2
kawanamiyuu
0
24
数字で表すシリーズ 〜開発規模(工数⇔期間)の見積もり編①〜 / practice of estimate part1
kawanamiyuu
0
59
開発チームの自走力を育む「イテレーションマネージャー」という取り組み / iteration manager
kawanamiyuu
1
1.3k
スタートアップで 1 度は崩壊しかけたチームがこれからチームになっていくための第一歩 / re-startup team
kawanamiyuu
2
810
PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaigi 2021
kawanamiyuu
6
4.2k
3 つの “はじめて” から始まった OSS 活動。のその先で / OSS LT会 #osscontributelt / turning point of joy as a developer
kawanamiyuu
0
720
腕力と瞬発力(新年の抱負 超LT会- vol.2 #ultral)/ New Year’s Resolution 2021
kawanamiyuu
2
380
ArchUnit で始める Java アプリケーションアーキテクチャの自動テスト / 自動化大好きエンジニアLT会 / LT for Engineers who love Automation
kawanamiyuu
0
810
マイクロサービスアーキテクチャをあきらめないための、モノリスで始めるアーキテクチャテスト / #jjug_ccc_b #ccc_b8 / JJUG CCC 2020 Fall
kawanamiyuu
5
3.4k
Other Decks in Technology
See All in Technology
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
750
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
Lambdaと地方とコミュニティ
miu_crescent
2
370
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
180
いざ、BSC討伐の旅
nikinusu
2
780
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
300
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
A designer walks into a library…
pauljervisheath
203
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Cult of Friendly URLs
andyhume
78
6k
Side Projects
sachag
452
42k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Facilitating Awesome Meetings
lara
50
6.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Unsuck your backbone
ammeep
668
57k
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