May 18, 2013

Ratchetのユニットテストを実行してみる(AutobahnTestsuite側)

以下の続きです。

Ratchetのユニットテストを実行してみる(とりあえずPHPUnit側)
http://madroom-project.blogspot.jp/2013/05/ratchetphpunit.html

AutobahnTestsuiteのテストケースをMacで実行してみました。AutobahnTestsuiteはPython製です。解決できていないエラーも結構ありますが、情報も少ないですし、とりあえずの実行結果メモということでm(_ _)m


AutobahnTestsuite
http://autobahn.ws/testsuite
https://github.com/tavendo/AutobahnTestSuite


1.
AutobahnTestsuiteをインストールします。easy_installでインストールしてみました。
$ sudo easy_install autobahntestsuite
# 略
Finished processing dependencies for autobahntestsuite
$ wstest --help
# ヘルプが表示されること
GitHubからのインストール方法は以下を参考にして下さい。
https://github.com/tavendo/AutobahnTestSuite#installation


2.
次に、Twistedというものをインストールしました。(これがないとエラー(ワーニング?)が出ました。)
$ wget http://twistedmatrix.com/Releases/Twisted/13.0/Twisted-13.0.0.tar.bz2
$ tar zxvf Twisted-13.0.0.tar.bz2
$ cd Twisted-13.0.0
$ sudo python setup.py install
Linuxもたぶんこの方法でいけるんだと思います。
Mac用のインストーラは http://twistedmatrix.com/trac/wiki/Downloads にありますが、バージョンが古いようです。Windowsのは、そのまま使えそうです。


3.
AutobahnTestsuiteのテスト(とりあえず"abtest")を実行してみます。尚、Makefileとtests/AutobahnTestSuiteの各jsonファイルに書かれているポート番号を、全て9000番台に変更しています。(いろいろぶつかるので。。。)
$ make abtest
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-stream.php 9000 &
wstest -m fuzzingclient -s tests/AutobahnTestSuite/fuzzingclient-quick.json
Using Twisted reactor class 
Autobahn WebSockets 0.5.3/0.5.14 Fuzzing Client
Ok, will run 263 test cases against 1 servers
# Running test case ID x.x.x for agent Ratchet from peer 127.0.0.1:9000 のようなメッセージがずらずらと出ました。
# 結構時間がかかります。
killall php
$ /bin/sh: line 1:  4766 Terminated: 15          php tests/AutobahnTestSuite/bin/fuzzingserver-stream.php 9000
(終了したけどこれで良いのだろうか。)


4.
"abtests"を実行してみます。
$ make abtests
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-libevent.php 9002 &
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-stream.php 9001 &
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-libev.php 9004 &
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-libuv.php 9005 &
ulimit -n 2048 && php tests/AutobahnTestSuite/bin/fuzzingserver-noutf8.php 9003 &
wstest -m testeeserver -w ws://localhost:9000 &
wstest -m fuzzingclient -s tests/AutobahnTestSuite/fuzzingclient-all.json
# 以下のエラーが出ました。
# Fatal error: Class 'libev\EventLoop' not found
# Fatal error: Call to undefined function React\EventLoop\event_base_new()
# Fatal error: Class 'libev\EventLoop' not found
# でも進んでいるので、気長に様子を見てみます。(かなり時間がかかります。)
killall php wstest
macbook:Ratchet admin$ /bin/sh: line 1:  4980 Terminated: 15          php tests/AutobahnTestSuite/bin/fuzzingserver-noutf8.php 9003
/bin/sh: line 1:  4972 Terminated: 15          php tests/AutobahnTestSuite/bin/fuzzingserver-stream.php 9001
(プロセス殺し切れてる?)


5.
"profile"を実行してみます。
$ make profile
php -d 'xdebug.profiler_enable=1' tests/AutobahnTestSuite/bin/fuzzingserver-libevent.php 9000 &
wstest -m fuzzingclient -s tests/AutobahnTestSuite/fuzzingclient-profile.json
# 以下のエラーが出ました。
# Fatal error: Call to undefined function React\EventLoop\event_base_new()
Connection to ws://localhost:9000 failed (Connection was refused by other side: 61: Connection refused.)
killall php
No matching processes belonging to you were found
make: *** [profile] Error 1
(コケた。)



P.S.
各エラーは、解決次第、追記しようと思います。。。

No comments:

Post a Comment