Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
SODA is an XML based testing framework leveraging Watir. Watir is an open source Ruby library for automating web browser interactions. SODA simplifies the process of creating browser test automation, allowing non-programmers to successfully develop and execute in-depth test suites against web-based applications. SODA will be released under the B…
branch: dev

This branch is 23 commits ahead of master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Docs
fields
sql
tests
utils
DebugPanel.rb
EditPanel.rb
FieldUtils.rb
README
Soda.rb
SodaCSV.rb
SodaElements.xml
SodaFireFox.rb
SodaLogReporter.rb
SodaMachine.rb
SodaMachineInfo.rb
SodaOptions.rb
SodaReportSummery.rb
SodaReporter.rb
SodaSuite.rb
SodaTestCheck.rb
SodaTestChecker.rb
SodaUtils.rb
SodaXML.rb
TreePanel.rb
soda-config.xml
staf-test.rb

README

-- SODA --

(*)Setup:
1.) Install Ruby and Watir: http://www.watir.com
2.) Install libxml: http://libxml.rubyforge.org/
3.) Set up your browser.

--)Browser Setup:

--)Firefox
1.) Install JSSH for the correct Firefox version
   http://wiki.openqa.org/display/WTR/FireWatir+Installation

--)IE
1.) Find autoitx3.dll on your system and run "regsvr32 /s" on it

(*)Example running a Soda test suite:
--) ruby SodaSuite.rb --browser=firefox --test=scripts/sugarcrm_60/test/accounts.xml

(*)Soda command programs: Usage
--) Notes: All Soda programs support the --help option on all platforms.
--) SodaSuite.rb: This is the main user interface to the Soda testing framework.

(*)SodaSuite: Suites
   Soda suites are simply XML files, each of which contains a collection of tests to
   be executed in order.

--) Soda Suite Example: Using only the <script> "file" attiirbute.  This script
will execute tests 1 thru 4 in order.

 <soda>       
    <script file="scripts/tests/test1.xml" />
    <script file="scripts/tests/test2.xml" />
    <script file="scripts/tests/test3.xml" />
    <script file="scripts/tests/test4.xml" />
 </soda>

--) Soda Suite Example: Using only the <script> "fileset" attiirbute.  This 
script will execute all tests in the given directory in random order.

 <soda>       
    <script fileset="scripts/tests" />
 </soda>

--) Soda Suite Example: Using both the <script> "fileset" & "file" attiirbutes.
This script will execute tests 1 thru 2, then all of the tests in the given 
directory, followed by test 3 thru 4 in order.

 <soda>
    <script file="scripts/tests/test1.xml" />
    <script file="scripts/tests/test2.xml" />
    <script fileset="scripts/tests" />
    <script file="scripts/tests/test3.xml" />
    <script file="scripts/tests/test4.xml" />
 </soda>

(*)SodaLog2HTML.rb: This program takes a raw soda <log-name>.log file and
generates an HTML report from it.

(*)SodaSyntaxChecker.rb: This is a simple program that checks the syntax of a 
Soda XML test file.

(*)SodaSuite.rb: Test Results:
All test results are stored in a directory that is created every time 
SodaSuite.rb is executed. The directory name is formatted as follows:

  <datetime stamp>-results

(*)Soda Logging:
The basic format of the raw log looks like this:
   "[<datetime stamp>](<message type>)Message.\n"

Each log message is on it's own line, so the log is newline separated.
Aka: However your current OS handles "\n".

--) Raw log file example:
 [02/01/2010-10:11:08](*)Retrieving Field @browser.send(:text_field ,:id=>'last_name')
 [02/01/2010-10:11:08](*)eventFieldAction: Started.
 [02/01/2010-10:11:08](*)Setting value to qauser
 [02/01/2010-10:11:08](*)eventFieldAction: Finished.
 [02/01/2010-10:11:08](*)Retrieving Value For "SugarInit.pass"
 [02/01/2010-10:11:08](*)Value for "SugarInit" => "qauser".
 [02/01/2010-10:11:08](*)Retrieving Field @browser.send(:text_field ,:id=>'new_password')
 [02/01/2010-10:11:08](*)eventFieldAction: Started.
 [02/01/2010-10:11:08](*)Setting value to qauser
 [02/01/2010-10:11:08](*)eventFieldAction: Finished.

--) SodaSuite.rb: STDOUT running output:
 (*)Retrieving Field @browser.send(:button ,:value=>'Search')
 (*)eventFieldAction: Started.
 (*)eventFieldAction: Finished.
 (*)eventLink: Starting,
 (*)Retrieving Value For "opp_record_0043.team_name"
 (*)Value for "opp_record_0043" => "Administrator".
 (*)Retrieving Field @browser.send(:link ,:text=>'Administrator')
 (*)eventLink: Finished.
 (*)eventFieldAction: Started.
 (*)eventFieldAction: Finished.
 (*)Retrieving Field @browser.send(:button ,:id=>'Opportunities_subpanel_save_button')

Something went wrong with that request. Please try again.