210 likes | 295 Views
Studio Fx on Rails 5.0. Demonstrating the Studio Fx API. Requirements. Software Ruby >= 1.8.6 Rails >= 2.3.2 gem install rails MySQL >= 5 Other Ruby Gems to install x ml/ libxml n et/https json Hardware (tested) Mac OS X Linux. MySQL. Install and configure MySQL
E N D
Studio Fx on Rails 5.0 Demonstrating the Studio Fx API
Requirements • Software • Ruby >= 1.8.6 • Rails >= 2.3.2 • gem install rails • MySQL >= 5 • Other Ruby Gems to install • xml/libxml • net/https • json • Hardware (tested) • Mac OS X • Linux
MySQL Install and configure MySQL • Linux example • yum install mysql • yum install mysql-devel • yum install mysql-server • chgrp -R mysql /var/lib/mysql • chmod -R 770 /var/lib/mysql • service mysqld start • set the passwords for your root account: • /usr/bin/mysqladmin -u root password 'new-password’ • Open MySQL and create the database • mysql –u root –p • create databasefx_development;
Studio Fx On Rails • Check out the source from mu-labs google_code: • http://code.google.com/p/mu-labs/source/browse/trunk/analyzer/automation/Studio_Fx_On_Rails_5.0
Create the Database Tables • Edit <root_dir>/config/database.yml • set the name of the MySQL database • set the MySQL root password • Create the database tables • From <root_dir>: • rake db:migrate • This will create the tables that are defined in the <root_dir>db/migrate directory (‘runs’ and ‘results’)
Run Rails • Start the Rails server. From <root_dir>, run: • ruby script/server • Open the browser to Rails • http://<host>:3000 • You should see the Rails Home Page • (next slide) • Continue on to the Studio Fx Home Page • http://<host>:3000/runs
Load templates from a Mu • From the ‘Runs’ page: • Enter the IP address of the Mu • Click the 'Get Templates/Set IP' button • Loads all of the Mu’s templates for • Scenarios • Test Suites • Hosts and Interfaces
Create a New Test Run: 1 • Click on the ‘New Run’ link and see:
Create a New Test Run: 4 • Select a Scenario and Test Suite, and click on the ‘Create’ button. Click on the ‘Back’ link to see the new Run
Set Hosts • Click on the Edit link to set the Hosts
Run the Testsuite • Click on the ‘Execute’ link to run the test suite • The browser will be busy until the test is completed • When the test is done, click on the ‘Results’ link to view the test results
View Results Details • Click on the ‘Show’ link to view more details, including the options and their values
Filter the Results • The results can be filtered by test name, run_id or both, and, in all cases, to see only the 'latest' results • /results?name=testname&run_id=1 • /results?name=testname&run_id=1&latest • /results?run_id=1 • /results?run_id=1&latest • /results?name=testname • /results?name=testname&latest
Sample Code • Most of the interesting code is found here: • <root_dir>/app/models/run.rb • This code executes the Rails back-end commands, creating the DdtApi object and invoking its methods • <root_dir>/lib/ddt_api.rb • The DdtApi class is where all of the Mu Studio Fx API code is invoked
Mu Template fetching • When we collected the templates from the Mu, we used a Mu REST Api • https://<MU_IP>/rai/rest/mu/findUsing?type= • Where types are Scenario and DDTSuite • The test tool collected the responses and parsed them into hash maps, using the template names as keys and the uuid’s as values
Test Execution • Executing the tests (run.rb:run_test) invoked the following sequence of calls from the DdtApi class: • new_session • load_scenario(uuid) • set_hosts • setup_test • run_test_suite
Collecting Results • After the test completes, the tool: • calls the DdtApi.collect_results method • parses the results • adds them to the MySQL database (results table)
Other DdtApi methods • Studio Fx on Rails does not use all of the DdtApi methods. Other available methods include • Methods that manage csv files (import, export and run to verify the scenario) • post_template (to send a scenario or other xml template to the Mu) • teardown_test(invoked when you are finished using the Mu)