The updateTestPlan interface is used to update tests with existing root nodes from XML files. The HTTP response of the call contains the XML structure of the changed tests. You can obtain the identifiers of the new nodes from the updated XML test structure.
The following table shows the parameters of the updateTestPlan interface.
Interface URL | Parameter | Descriptions |
---|---|---|
http://<front-end URL>/servicesExchange?hid=updateTestPlan |
sid | Web-service token or session identifier for user authentication. You can generate the web-service token in the Settings Page of the Silk Central UI. To access this page, hover the mouse cursor over the user name in the Silk Central menu and select User Settings. You can retrieve the session identifier by invoking the logonUser method of one of the Available Web Services. |
Example: http://<front-end URL>/servicesExchange?hid=updateTestPlan&sid=<webServiceToken>
The XML schema definition file that is used to validate test plans can be downloaded by using the front-end server URL http://<front-end URL>/silkroot/xsl/testplan.xsd or copied from the front-end server installation folder <Silk Central installation folder>/wwwroot/silkroot/xsl/testplan.xsd.
The following code uses Apache HttpClient to update tests.
import org.apache.commons.httpclient.*; // Apache HttpClient String webServiceToken = "e39a0b5b-45db-42db-84b2-b85028d954d5"; String xml = loadTestPlanUtf8(DEMO_TEST_PLAN_XML); HttpClient client = new HttpClient(); URL webServiceUrl = new URL("http", mWebServiceHelper.getHost(), mWebServiceHelper.getPort(), String.format("/servicesExchange?hid=%s&sid=%s", "updateTestPlan", webServiceToken)); StringPart testPlanXml = new StringPart(DEMO_TEST_PLAN_XML, xml, "UTF-8"); testPlanXml.setContentType("text/xml"); Part[] parts = {testPlanXml}; PostMethod filePost = new PostMethod(webServiceUrl.toExternalForm()); filePost.setRequestEntity(new MultipartRequestEntity(parts, filePost.getParams())); client.getHttpConnectionManager().getParams().setConnectionTimeout(60000); int status = client.executeMethod(filePost); System.out.println(filePost.getStatusLine()); String responseXml = filePost.getResponseBodyAsString();
Only one attachment can be uploaded per request. To download Apache HttpComponents, visit http://hc.apache.org/downloads.cgi. Refer to the documentation of the component for the required libraries.
The following code shows an example test that can be uploaded to Silk Central by using the createTestPlan and updateTestPlan service.
<?xml version="1.0" encoding="UTF-8"?> <TestPlan xmlns="http://www.borland.com/TestPlanSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://<front-end URL>/silkroot/xsl/testplan.xsd"> <Folder name="Folder1" id="5438"> <Description>Description of the folder</Description> <Property name="property1"> <propertyValue>value1</propertyValue> </Property> <Test name="TestDef1" type="plugin.SilkTest"> <Description>Description of the test</Description> <Property name="property2"> <propertyValue>value2</propertyValue> </Property> <Property name="property3"> <propertyValue>value3</propertyValue> <propertyValue>value4</propertyValue> </Property> <Parameter name="param1" type="string">string1</Parameter> <Parameter name="param2" type="boolean">true</Parameter> <Parameter name="paramDate" type="date">01.01.2001</Parameter> <Parameter name="paramInherited" type="string" inherited="true"> inheritedValue1 </Parameter> <Step id="1" name="StepA"> <ActionDescription>do it</ActionDescription> <ExpectedResult>everything</ExpectedResult> </Step> <Step id="2" name="StepB"> <ActionDescription>and</ActionDescription> <ExpectedResult>everything should come</ExpectedResult> </Step> </Test> <Test name="ManualTest1" id="5441" type="_ManualTestType" plannedTime="03:45"> <Description>Description of the manual test</Description> <Step id="1" name="StepA"> <ActionDescription>do it</ActionDescription> <ExpectedResult>everything</ExpectedResult> </Step> <Step id="2" name="StepB"> <ActionDescription>and</ActionDescription> <ExpectedResult>everything should come</ExpectedResult> </Step> <Step id="3" name="StepC"> <ActionDescription>do it now"</ActionDescription> <ExpectedResult> everything should come as you wish </ExpectedResult> </Step> </Test> <Folder name="Folder2" id="5439"> <Description>Description of the folder</Description> <Property name="property4"> <propertyValue>value5</propertyValue> </Property> <Parameter name="param3" type="number">123</Parameter> <Folder name="Folder2_1" id="5442"> <Description>Description of the folder</Description> <Test name="TestDef2" type="plugin.SilkPerformer"> <Description>Description of the test</Description> <Property name="_sp_Project File"> <propertyValue>ApplicationAccess.ltp</propertyValue> </Property> <Property name="_sp_Workload"> <propertyValue>Workload1</propertyValue> </Property> </Test> <Test name="TestDef3" type="JUnitTestType" externalId="com.borland.MyTest"> <Description>Description of the test</Description> <Property name="_junit_ClassFile"> <propertyValue>com.borland.MyTest</propertyValue> </Property> <Property name="_junit_TestMethod"> <propertyValue>testMethod</propertyValue> </Property> <Step id="1" name="StepA"> <ActionDescription>do it</ActionDescription> <ExpectedResult>everything</ExpectedResult> </Step> <Step id="2" name="StepB"> <ActionDescription>and</ActionDescription> <ExpectedResult>everything should come</ExpectedResult> </Step> </Test> </Folder> </Folder> </Folder> </TestPlan>