blob: 927d37795bcab7acadff748f9e37765ee1725e43 [file] [log] [blame]
andresp@webrtc.org468516c2014-09-02 10:52:54 +00001=== RTCBot ===
2RTCBot is a framework to write tests that need to spawn multiple webrtc
3endpoints.
4
5== Description ==
6RTCBot is a framework that allows to write tests where logic runs on a single
7host that controls multiple endpoints ("bots"). It allows creating complex
8scenarios that would otherwise require non-trival signalling between multiple
9parties.
10
11The host runs in node.js, but the test code is run in an isolated context with
12no access to node.js specifics other than the exposed api via a test variable.
13
14Part of the exposed api (test.spawnBot) allows a test to spawn a bot and
houssainy@google.comc77e4d62014-09-08 10:36:11 +000015access its exposed API. Details are in botmanager.js.
andresp@webrtc.org468516c2014-09-02 10:52:54 +000016
17== How to run the test ==
18 $ cd trunk/webrtc/tool/rtcbot
19 $ npm install express browserify ws websocket-stream dnode
houssainy@google.comc77e4d62014-09-08 10:36:11 +000020 $ node test.js <bot_type> <test_file_path>
21
22 <bot_type> the type of the running bot. For example:
23 - chrome: chrome on host machine.
24 - android: android device. Details in "Android" Section.
andresp@webrtc.org468516c2014-09-02 10:52:54 +000025
26== Example on how to install nodejs ==
27 $ cd /work/tools/
28 $ git clone https://github.com/creationix/nvm.git
29 $ export NVM_DIR=/work/tools/nvm; source $NVM_DIR/nvm.sh
30 $ nvm install 0.10
31 $ nvm use 0.10
houssainy@google.comc77e4d62014-09-08 10:36:11 +000032
33== Android ==
34Before running test with Android one MUST forward the device port 8080 to the
35host machine. That is easy to achieve with chrome port forwarding tools.
36 - Visit chrome://inspect/devices on the host machine.
37 - Configure and enable port forwarding 8080 -> localhost:8080
38 - Leave chrome running in the background on your Android device till
39 the test is done.