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
37
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
91
数字で表すシリーズ 〜開発規模(工数⇔期間)の見積もり編①〜 / practice of estimate part1
kawanamiyuu
0
120
開発チームの自走力を育む「イテレーションマネージャー」という取り組み / iteration manager
kawanamiyuu
1
1.5k
スタートアップで 1 度は崩壊しかけたチームがこれからチームになっていくための第一歩 / re-startup team
kawanamiyuu
2
910
PHP でもアーキテクチャテストしたい! / #phperkaigi / PHPerKaigi 2021
kawanamiyuu
6
4.8k
3 つの “はじめて” から始まった OSS 活動。のその先で / OSS LT会 #osscontributelt / turning point of joy as a developer
kawanamiyuu
0
760
腕力と瞬発力(新年の抱負 超LT会- vol.2 #ultral)/ New Year’s Resolution 2021
kawanamiyuu
2
420
ArchUnit で始める Java アプリケーションアーキテクチャの自動テスト / 自動化大好きエンジニアLT会 / LT for Engineers who love Automation
kawanamiyuu
0
880
マイクロサービスアーキテクチャをあきらめないための、モノリスで始めるアーキテクチャテスト / #jjug_ccc_b #ccc_b8 / JJUG CCC 2020 Fall
kawanamiyuu
5
3.7k
Other Decks in Technology
See All in Technology
7月のガバクラ利用料が高かったので調べてみた
techniczna
3
780
Goss: Faiss向けの新しい本番環境対応 Goバインディング #coefl_go_jp
bengo4com
1
1.4k
新規案件の立ち上げ専門チームから見たAI駆動開発の始め方
shuyakinjo
0
590
AIエージェントの活用に重要な「MCP (Model Context Protocol)」とは何か
masayamoriofficial
0
230
まだ間に合う! StrandsとBedrock AgentCoreでAIエージェント構築に入門しよう
minorun365
PRO
10
530
知られざるprops命名の慣習 アクション編
uhyo
11
2.8k
実践アプリケーション設計 ①データモデルとドメインモデル
recruitengineers
PRO
5
1.3k
シークレット管理だけじゃない!HashiCorp Vault でデータ暗号化をしよう / Beyond Secret Management! Let's Encrypt Data with HashiCorp Vault
nnstt1
2
130
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
0
100
自社製CMSからmicroCMSへのリプレースがプロダクトグロースを加速させた話
nextbeatdev
0
360
事業価値と Engineering
recruitengineers
PRO
6
5k
AWSで推進するデータマネジメント
kawanago
0
310
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Art of Programming - Codeland 2020
erikaheidi
55
13k
The Cult of Friendly URLs
andyhume
79
6.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
How to Think Like a Performance Engineer
csswizardry
26
1.8k
A better future with KSS
kneath
239
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
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