0
元気玉的
分散テスト
実行システム
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>
<versio...
通常のクラスロード
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)
テスト実行依頼
テスト結果
ここではじめて 必要なクラス群
が転送される
TestStreamer
Server
TestStreamer
Cl...
分散クライアントの設定
ここからJNLPダウンロードして実行するだけで
クライアントとして作動する。
(接続先設定など不要)
サーバでテストをサブミットする
テストクラスを指定して(Glob可)、実行ボタン押すだけ
あとは接続クライアントで
テストが実行されていく
TestStreamerのウリ
●
あり余っているノンプログラマたちのCPUパ
ワーを有効活用できる。
●
クライアントは、Java Web Start経由でアプ
リケーションを起動しておくだけ。
●
あとは、勝手にテストが実行されていく。
V...
https://github.com/kawasima/test-streamer
よろしくお願いします
Upcoming SlideShare
Loading in...5
×

元気玉的 分散テスト 実行システム TestStreamer

1,339

Published on

JUnitのテストを分散実行するための仕組みです。

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,339
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Transcript of "元気玉的 分散テスト 実行システム TestStreamer"

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

    Clipping is a handy way to collect important slides you want to go back to later.

×