元気玉的 分散テスト 実行システム teststreamer
Post on 30-Nov-2014
1.143 Views
Preview:
DESCRIPTION
TRANSCRIPT
元気玉的分散テスト実行システムTestStreamer
kawasima
tokyo.clj #19
https://github.com/kawasima/test-streamer
Clojure記事で多少炎上させております
従来のグリッドコンピューティング
巨大なデータセンタ
アプリケーションデプロイ/インフラ構築のあくなき自動化追求
大量の設備投資、人的リソース投資
大企業におけるグリッドコンピューティング
オフィス内にあり余っているオフィス内にあり余っているマシンパワーを利用するマシンパワーを利用する
いわば…
みんなオラにCPUパワーを少しずつ分け与えてくれ、な元気玉的システム
これでJUnitのテストを分散実行してしまおう。
最大の特長
No deploy訳: テスト対象アプリ/テストコードを事前にクライアントにデプロイする必要がありません。
WebSocketClassLoader
<dependency> <groupId>net.unit8.wscl</groupId> <artifactId>websocket-classloader</artifactId> <version>0.1.0</version></dependency>
Maven Centralにあります
通常のクラスロード
findResource
file:///hoge/fuga.jar
loadClass
WebSocketClassLoader
findResource
ws://hoge/fuga/piyo.class
loadClass
file:///hoge/fuga.jar
WebSocket
キャッシュから
WebSocketClassLoaderの利点● 大量のJarファイルをデプロイしなくてよい● どのJarにClassが含まれるか知る必要がない● WebSocketClassLoaderを作りなおすだけ
で、クラスファイルの更新ができる。
TestStreamer● WebSocketClassLoaderを使って、テストコード
をクライアントにロードさせJUnitのテストを実行させる仕組み。
● クライアントマシンは依頼されたテストを実行するだけ。
● サーバはサブミットされたテストを順に接続されたクライアントにディスパッチする。
仕組みSubmit Tests
WebSocket待ち受け
クラスロード(別のWebSocket)
テスト実行依頼
テスト結果
ここではじめて 必要なクラス群が転送される
TestStreamerServer
TestStreamerClient
分散クライアントの設定
ここからJNLPダウンロードして実行するだけでクライアントとして作動する。(接続先設定など不要)
サーバでテストをサブミットする
テストクラスを指定して(Glob可)、実行ボタン押すだけ
あとは接続クライアントでテストが実行されていく
TestStreamerのウリ● あり余っているノンプログラマたちのCPUパ
ワーを有効活用できる。● クライアントは、Java Web Start経由でアプ
リケーションを起動しておくだけ。● あとは、勝手にテストが実行されていく。
Very Easy ( ˘ω˘)
https://github.com/kawasima/test-streamer
よろしくお願いします
top related