Schnittstelle createExecutionDefinitions

Über die Schnittstelle createExecutionDefinitions werden neue Testsuiten erstellt. Die HTTP-Antwort des Aufrufs enthält die XML-Struktur der geänderten Testsuiten. Sie können die Kennungen der neuen Knoten der aktualisierten XML-Testsuitestruktur entnehmen.

Die folgende Tabelle enthält die Parameter der Schnittstelle createExecutionDefinitions.

Schnittstellen-URL Parameter Beschreibung

http://<front-end URL>/servicesExchange?hid=createExecutionDefinitions

sid Webdienst-Token oder Sitzungs-ID für die Benutzerauthentifizierung. Sie können das Webdienst-Token auf der Einstellungsseite der Silk Central-Benutzeroberfläche generieren. Um auf diese Seite zuzugreifen, zeigen Sie mit dem Mauszeiger auf den Benutzernamen im Menü Silk Central und wählen Sie Benutzereinstellungen. Sie können die Sitzungs-ID abrufen, indem Sie die Methode logonUser für einen der verfügbaren Webdienste aufrufen.
  parentNodeID ID des Knotens, dem die neue Testsuite in der Testsuitehierarchie hinzugefügt wird.

Beispiel: http://<front-end URL>/servicesExchange?hid=createExecutionDefinitions&parentNodeID=<id>&sid=<webServiceToken>

Die Definitionsdatei für das XML-Schema, mit der überprüft wird, ob Testsuiten über den URL des Front-End-Servers http://<Host>/silkroot/xsl/executionplan.xsd heruntergeladen oder aus dem Installationsordner <Silk Central-Installationsordner>/wwwroot/silkroot/xsl/executionplan.xsd des Front-End-Servers kopiert werden können.

Beispiel für den Webdienst createExecutionDefinitions

Im folgenden Quelltext werden die Testsuiten mithilfe von Apache HttpClient erstellt.

import org.apache.commons.httpclient.*; // Apache HttpClient

String webServiceToken = "e39a0b5b-45db-42db-84b2-b85028d954d5";

URL service = new URL("http", mWebServiceHelper.getHost(),
  mWebServiceHelper.getPort(), 
  String.format("/servicesExchange?hid=%s&sid=%s&parentNodeID=%d",
  "createExecutionDefinitions", webServiceToken,
  PARENT_NODE_ID));
	
HttpClient client = new HttpClient();
PostMethod filePost = new PostMethod(service.toExternalForm());
String xmlFile = loadExecutionDefinitionsUtf8("executionplan.xml");
StringPart xmlFileItem = new StringPart("executionplan", xmlFile,
  "UTF-8");
xmlFileItem.setContentType("text/xml");
Part[] parts = {xmlFileItem};

filePost.setRequestEntity(new MultipartRequestEntity(parts,
  filePost.getParams()));
client.getHttpConnectionManager().getParams().setConnectionTimeout(60000);
int status = client.executeMethod(filePost);
System.out.println(filePost.getStatusLine());

Pro Anfrage kann nur ein Anhang hochgeladen werden. Apache HttpComponents können Sie von http://hc.apache.org/downloads.cgi herunterladen. Die erforderlichen Bibliotheken entnehmen Sie der Dokumentation der Komponente.

Testsuite – Beispiel

Der folgende Code zeigt ein Beispiel eines Ausführungsplans, der mithilfe des Diensts Silk Central undcreateExecutionDefinitions in updateExecutionDefinitions hochgeladen werden kann. In diesem Fall wird ein benutzerdefinierter Ausführungstermin für eine der Testsuiten erstellt, und einer Testsuite werden Tests zugeordnet, sowohl manuell als auch mittels Filter. Im Beispiel wird zudem eine Konfigurationssuite mit Konfigurationen erstellt.

<?xml version="1.0" encoding="UTF-8"?>
<ExecutionPlan xmlns="http://www.borland.com/ExecPlanSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://<front-end URL>/silkroot/xsl/executionplan.xsd">

  <Folder name="Folder1"> 
    <Description>Description of the folder</Description>
    <ExecDef name="ExecutionDefinition1" TestContainerId="1">
      <Description>Description1</Description>
      <CustomSchedule>
        <start>2009-11-26T21:32:52</start>
        <end>
          <forever>true</forever>
        </end>
        <Interval day="1" hour="2" minute="3"></Interval>
        <adjustDaylightSaving>false</adjustDaylightSaving>
        <exclusions>
          <days>Monday</days>
          <days>Wednesday</days>
          <from>21:32:52</from>
          <to>22:32:52</to>
        </exclusions>
        <definiteRun>2009-11-27T21:35:12</definiteRun>
      </CustomSchedule>            
      <ReadFromBuildInfoFile>true</ReadFromBuildInfoFile>
      <Priority>High</Priority>
      <SetupTestDefinition>73</SetupTestDefinition>
      <CleanupTestDefinition>65</CleanupTestDefinition>
      <AssignedTestDefinitions>
        <ManualAssignment useTestPlanOrder="true">
          <TestId>6</TestId>
          <TestId>5</TestId>
        </ManualAssignment>
      </AssignedTestDefinitions>
    </ExecDef>
    <ExecDef name="ExecutionDefinition2" TestContainerId="1">
      <Description>Description2</Description>
      <Build>1</Build>
      <Version>1</Version>
      <Priority>Low</Priority>
      <SourceControlLabel>Label1</SourceControlLabel>
      <DependentExecDef id="65">
        <Condition>Passed</Condition>
        <Deployment>
          <Specific>
            <Execution type="Server" id="1"/>
            <Execution type="Tester" id="0"/>
          </Specific>
        </Deployment>
      </DependentExecDef>
      <DependentExecDef id="70">
        <Condition>Failed</Condition>
        <Deployment>
          <Specific>
            <Execution type="Tester" id="0"/>
          </Specific>
        </Deployment>
      </DependentExecDef>
      <DependentExecDef id="68">
        <Condition>Any</Condition>
        <Deployment>
          <UseFromCurrentExedDef>true</UseFromCurrentExedDef>
        </Deployment>
      </DependentExecDef>
    </ExecDef>

    <ConfigSuite name="ConfigSuite1" TestContainerId="1">
      <Description>ConfigSuite1 desc</Description>
      <CustomSchedule>
        <start>2009-11-26T21:32:52</start>
        <end>
          <times>1</times>
        </end>
        <Interval day="1" hour="2" minute="3"/>
        <adjustDaylightSaving>false</adjustDaylightSaving>
        <exclusions>
          <days>Monday</days>
          <days>Wednesday</days>
          <from>21:32:52</from>
          <to>22:32:52</to>
        </exclusions>
        <definiteRun>2009-11-27T21:35:12</definiteRun>
      </CustomSchedule>

      <ConfigExecDef name="Config1">
        <Description>Config1 desc</Description>
        <Priority>Medium</Priority>
      </ConfigExecDef>

      <ConfigExecDef name="Config2">
        <Priority>Medium</Priority>
        <DependentExecDef id="69">
          <Condition>Any</Condition>
          <Deployment>
            <UseFromCurrentExedDef>true</UseFromCurrentExedDef>
          </Deployment>
        </DependentExecDef>
      </ConfigExecDef>

      <Build>8</Build>
      <Version>2</Version>
      <SourceControlLabel>ConfigSuite1 label</SourceControlLabel>
      <SetupTestDefinition>73</SetupTestDefinition>
      <CleanupTestDefinition>65</CleanupTestDefinition>
      <AssignedTestDefinitions>
        <ManualAssignment useTestPlanOrder="true">
          <TestId>6</TestId>
          <TestId>5</TestId>
        </ManualAssignment>
      </AssignedTestDefinitions>
    </ConfigSuite>    
  </Folder>
</ExecutionPlan>