Thread

Skip Navigation LinksForums > SpiraTest Forums > SpiraTest Issues & Questi... > Unable to retrieve testca...

Unable to retrieve testcase steps via SOAP RSS Feed

Thursday, February 13, 2014
Hi,

i'm trying to create a custom export for our testcases in spiratest 4.0. However, when trying to retrieve the teststeps from a testcase using soap, I get a null value instead of the actual step.
Does anyone have a clue (or even better, a solution) on what's going wrong here?

Thank you!
Johan Laebens


I'm using the following code:


import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;

import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;

import com.inflectra.spirateam.mylyn.core.internal.services.soap.ArrayOfRemoteTestCase;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.IImportExport;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.IImportExportConnectionAuthenticateServiceFaultMessageFaultFaultMessage;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.IImportExportConnectionConnectToProjectServiceFaultMessageFaultFaultMessage;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.IImportExportConnectionDisconnectServiceFaultMessageFaultFaultMessage;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.IImportExportTestCaseRetrieveByFolderServiceFaultMessageFaultFaultMessage;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.ImportExport;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.RemoteTestCase;
import com.inflectra.spirateam.mylyn.core.internal.services.soap.RemoteTestStep;

public class SpiraTest {

    private static final String WEB_SERVICE_SUFFIX = "/Services/v4_0/ImportExport.svc"; //$NON-NLS-1$
    private static final String WEB_SERVICE_NAMESPACE = "{http://www.inflectra.com/SpiraTest/Services/v4.0/}ImportExport"; //$NON-NLS-1$
    private static final String WEB_SERVICE_NAMESPACE_DATA_OBJECTS = "http://schemas.datacontract.org/2004/07/Inflectra.SpiraTest.Web.Services.v4_0.DataObjects"; //$NON-NLS-1$


    /**
     * @param args
     * @throws MalformedURLException
     * @throws IImportExportConnectionAuthenticateServiceFaultMessageFaultFaultMessage
     */
    public static void main(String[] args) throws MalformedURLException, IImportExportConnectionAuthenticateServiceFaultMessageFaultFaultMessage {
        String baseUrl = "THE_CORRECT_URL";
        URL serviceUrl = new URL(baseUrl  + WEB_SERVICE_SUFFIX);
        ImportExport service = new ImportExport(serviceUrl, QName.valueOf(WEB_SERVICE_NAMESPACE));
        IImportExport soap = service.getBasicHttpBindingIImportExport();

        Map<String, Object> requestContext = ((BindingProvider)soap).getRequestContext();
        requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
        boolean success = soap.connectionAuthenticate("CORRECT_USERNAME", "CORRECT_PASSWORD");
       
        System.out.println(success); // returns true
       
        try {
            boolean connectedToProject = soap.connectionConnectToProject(18); // certain project which does exist
            System.out.println(connectedToProject);
           
            ArrayOfRemoteTestCase testcases = new ArrayOfRemoteTestCase();
            testcases = soap.testCaseRetrieveByFolder(8271); // folder exists
            List<RemoteTestCase> remoteTestcases = testcases.getRemoteTestCase();
            for (int i=0;i<remoteTestcases.size();i++)
            {
                System.out.println(i + "-- " + remoteTestcases.get(i).getName().getValue());
                JAXBElement<Integer> getTestCaseId = remoteTestcases.get(i).getTestCaseId();
                System.out.println(getTestCaseId.getValue()); // I can see all the testcasenames >> OK

                // This should work but somehow, the getTestSteps() is null
                List<RemoteTestStep> allesInEen = remoteTestcases.get(i).getTestSteps().getValue().getRemoteTestStep();
                for (int j=0;j<allesInEen.size();j++)
                {
                    System.out.println(">> " + allesInEen.get(j).getDescription());
                    System.out.println(">> " + allesInEen.get(j).getExpectedResult());
                    System.out.println(">> " + allesInEen.get(j).getSampleData());
                }
            }

           
        } catch (IImportExportTestCaseRetrieveByFolderServiceFaultMessageFaultFaultMessage e) {
            e.printStackTrace();
        } // http://spiratest.hq.ebit.be/SpiraTest/18/TestCase/8270.aspx
        catch (IImportExportConnectionConnectToProjectServiceFaultMessageFaultFaultMessage e) {
            e.printStackTrace();
        }
        finally
        {
            try {
                soap.connectionDisconnect();
            } catch (IImportExportConnectionDisconnectServiceFaultMessageFaultFaultMessage e) {
                e.printStackTrace();
            }
        }
    }
}



2 Replies
Sarah T.Sarah T.
re: Johan Laebens on Thursday, February 13, 2014
Thursday, February 13, 2014
Hi Johan

For performance reasons we don't include the test steps when you retrieve a list of test cases by folder.

For each test case, you will need to call the web service again using the TestCase_RetrieveById(...) function to get the test case and its associated test steps.

Regards

Sarah.
Johan LaebensJohan Laebens
re: Sarah T. on Thursday, February 13, 2014
Friday, February 14, 2014
Hello,

Thanks for the info, I'm now indeed able (with the testcase ID) to retrieve it's steps!!

Johan
Tagged
Statistics
  • Started: 2/13/2014
  • Last Reply: 2/14/2014
  • Replies: 2
  • Views: 1226
Powered by KronoDesk v1.1.0.15 | © Copyright Inflectra Corporation 2011-2016 | Licensed to Inflectra Corporation.