Expecco RPC Interface/en

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Introduction[Bearbeiten]

This document describes how expecco itself can be controlled by other programs, not how expecco can interact with the SUT. However, all of the interfaces described below can also be used by an expecco test suite to do so.

Many of the operations of expecco can be remote-controlled via RPC interfaces. These interfaces allow for external programs to invoke functions of an expecco running in "slave-mode", thereby allowing for expecco to be integrated into an existing QMinfrastructure.

Currently, interfaces are available for:

XML-RPC[Bearbeiten]

XML-RPC is a lightweight XML-based RPC mechanism, as documented in http://www.xmlrpc.com/spec. XML-RPC uses HTTP as a transport mechanism. Implementations for XML-RPC are very lightweight and available for many programming languages and systems - in contrast to SOAP, which by many is no longer considered to be "simple". The XML-RPC protocol is simple enough, to be even used by humans; for example, to invoke the system.versionInfo call as described below, send the following HTTP-POST-request to the service:

  <?xml version="1.0"?>
  <methodCall>
    <methodName>system.versionInfo</methodName>
    <params></params>
  </methodCall>

or, to get the list of supported rpc-calls, use:

  <?xml version="1.0"?>
  <methodCall>
    <methodName>system.listMethods</methodName>
    <params></params>
  </methodCall>

and get the response:

  <?xml version="1.0"?>
    <methodResponse>
      <params>
        <param>
          <value>
            <array>
              <data>
                <value>system.getCapabilities</value>
                <value>system.listMethods</value>
                <value>system.methodHelp</value>
                ...
              </data>
            </array>
          </value>
        </param>
      </params>
    </methodResponse>

Introspection[Bearbeiten]

The XML-RPC implementation supports the introspection interface:


  • struct system.getCapabilities( )
    returns a structure containing info about supported RPC-interfaces and protocols


  • struct system.versionInfo( )
    returns a structure containing version info about the RPC-service itself


  • array system.listMethods()
    returns a vector of strings, comprising the names of supported RPC-entries.


  • array system.methodSignature( string )
    returns a vector of strings, comprising the return-type and argument types names of the given RPC-entry.


  • string system.methodHelp( string )
    returns an informative string, describing the functionality of the given RPC-entry.


use system.getCapabilities to get up-to-date information on the supported interfaces.

 

JSON-RPC[Bearbeiten]

JSON-RPC a lightweight JSON-based RPC mechanism, documented in http://json-rpc.org/wiki/specification and http://groups.google.com/group/json-rpc/web/json-rpc-2-0. JSON is a very simple encoding, which is common among JavaScript based browser applications. JSON can therefore be used to control a running expecco from an interactive web-page.

SOAP[Bearbeiten]

SOAP is a not so lightweight XML-based RPC mechanism, which is well-documented and well-supported, especially in Java enterprise and SOA environments. Specs are found in http://www.w3.org/TR/soap. Operations are described by a standard notation (WSDL), which can be parsed and used for automatic generation of service call interfaces. See http://www.w3.org/TR/wsdl for details.

The SOAP interface is also used by expecco ALM to control the execution of its remote testHosts.

Telnet[Bearbeiten]

The Telnet protocol is a very simple, line-oriented ascii-command interface, which can also easily be entered by a human operator. Its simplicity enables even batch-files or shell scripts to communicate with expecco slaves. The telnet protocol is specified in RFC854 (http://www.ietf.org/rfc/rfc854.txt). For more information, see "Scripting Example" and "Scripting API Overview"|.

HTTP[Bearbeiten]

It is also possible to talk to expecco directly via HTTP. Thus, any web browser can be used to control an expecco slave.



Back to Online Documentation



Copyright © 2014-2024 eXept Software AG