Litmus:Web Services: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 7: Line 7:


=== Submission ===
=== Submission ===
Testing clients will open an http connection to 'http://litmus.mozilla.org/process_test.cgi'. Clients must send via HTTP POST an XML document containing test results and metadata for submission. Results are formatted as described in the [[Litmus:Test_Result_Format_DTD | Test Result Format DTD]].
Testing clients will open an http connection to 'http://litmus.mozilla.org/process_test.cgi'. Clients must send via HTTP POST an XML document containing test results and metadata for submission. Results are formatted as described in the [[Litmus:Test_Result_Format_DTD | Test Result Format DTD]]. The parameter name will be 'data'.
 
In the future, the Test::Litmus perl module will automate the process of formatting results and sending them to the server.
 
The following example (Perl) shows how to send your results to the server:
 
<pre>
# $results contains the proper xml result data to send
use LWP::UserAgent;
my $ua = new LWP::UserAgent;
my $req = HTTP::Request->new(POST => 'http://litmus.mozilla.org/process_test.cgi');
$req->content_type('application/x-www-form-urlencoded');
$req->content('data='.$results);
my $res = $ua->request($req);
 
if (!$res->is_success) {
    # an error occurred in the submission
}
 
my $content = $res->content;
 
if ($content =~ /^Fatal error/) {
    # a fatal error occurred
} elsif ($content =~ /^Error processing result for test (\d+)/) {
    # result $1 contained an error
}
</pre>


Upon receipt, the server will process the test results. If a fatal error occurs, then no results will be added to the database. If some results are formatted properly, those results will be added even though other results may have errors.  
Upon receipt, the server will process the test results. If a fatal error occurs, then no results will be added to the database. If some results are formatted properly, those results will be added even though other results may have errors.  
Line 18: Line 44:
* An error string beginning with the words 'Fatal error' if the result data cannot not be parsed or lacks required information.  
* An error string beginning with the words 'Fatal error' if the result data cannot not be parsed or lacks required information.  


* An error string beginning with the words 'Error processing result for test n' where n is the id of the test that resulted in the error.
* An error string beginning with the words 'Error processing result for test n' where n is the id of the test that resulted in the error. This line will be repeated for each result that contained an error.

Revision as of 21:09, 13 June 2006

Litmus Web Services Specification

Sending testcases to the client

TBA

Sending results to the server

Submission

Testing clients will open an http connection to 'http://litmus.mozilla.org/process_test.cgi'. Clients must send via HTTP POST an XML document containing test results and metadata for submission. Results are formatted as described in the Test Result Format DTD. The parameter name will be 'data'.

In the future, the Test::Litmus perl module will automate the process of formatting results and sending them to the server.

The following example (Perl) shows how to send your results to the server:

# $results contains the proper xml result data to send
use LWP::UserAgent;
my $ua = new LWP::UserAgent;
my $req = HTTP::Request->new(POST => 'http://litmus.mozilla.org/process_test.cgi');
$req->content_type('application/x-www-form-urlencoded');
$req->content('data='.$results);
my $res = $ua->request($req);

if (!$res->is_success) {
    # an error occurred in the submission 
}

my $content = $res->content;

if ($content =~ /^Fatal error/) {
    # a fatal error occurred
} elsif ($content =~ /^Error processing result for test (\d+)/) {
    # result $1 contained an error
}

Upon receipt, the server will process the test results. If a fatal error occurs, then no results will be added to the database. If some results are formatted properly, those results will be added even though other results may have errors.

Response

In the interest of simplicity, full XML responses will not be sent. After processing the results, the server will return:

  • The string 'ok' if all results were added to the database successfully.
  • An error string beginning with the words 'Fatal error' if the result data cannot not be parsed or lacks required information.
  • An error string beginning with the words 'Error processing result for test n' where n is the id of the test that resulted in the error. This line will be repeated for each result that contained an error.