More

    HP ALM REST API – Get ALM Projects

    Tutorial on how to get projects from HP ALM using REST API. Includes the browser method, VB.NET and C# functions to get domains.

    Contents of this post.

    Web Browser Method

    1. Open your favorite browser.
    2. Enter HP ALM REST API URL: http://youralmserver:port/qcbin/api/authentication/sign-in
    3. Enter your ALM User Name and Password in the prompt that you get on navigating to the above URL.
    4. Once successful authentication has occurred you will get a blank page.
    5. Now enter the URL to get domains in the same browser window: http://youralmserver:port/qcbin/api/domains/domainName/projects (domainName is the name of the domain whose projects you want to view. A domain name is case sensitive. Use the name as displayed in ALM.)
    6. Once you enter this URL and press enter you will get the list of projects you have access to under the domain in XML format.

    For ALM Versions prior to 12.53
    In URLs, replace api with rest
    e.g. http://youralmserver:port/qcbin/rest/domains/domainName/projects

    Refer HP ALM REST API – Authentication for details on how to sign-in in older versions of ALM.

    Sample Output

    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
    <Projects>
     <Project UID="172a-321-543-1" Name="Project1" /> 
     <Project UID="172a-321-543-2" Name="Project2" /> 
     <Project UID="172a-321-543-3" Name="Project3" /> 
     <Project UID="172a-321-543-4" Name="Project4" /> 
     <Project UID="172a-321-543-5" Name="Project5" /> 
    </Projects>

    Code Method

    Required Inputs

    PrameterExample / Comments
    HP ALM Base URLhttp://youralmurl:port/qcbin
    HP ALM Domain NameEnter the name of the domain from which you want the list of projects.
    Refer HP ALM REST API – Get ALM Domains for details on how to get domains from ALM.
    Authentication CookieContainerPass the authentication cookie container obtained while you authenticated. Refer HP ALM REST API – Authentication for details.

    For ALM Versions prior to 12.53
    In the code replace /api/domains with /rest/domains

    VB.NET Code

    VB.NET Code to get ALM Projects

    Private Function GetProjects(almBaseUrl As String, domainName As String, authenticationCookieContainer As CookieContainer) As IEnumerable(Of String)
     Dim projectList = New List(Of String)()
     Dim projectRestApiUrl = $"{almBaseUrl}/api/domains/{domainName}/projects"
     Dim projectRequest = CType(WebRequest.Create(projectRestApiUrl), HttpWebRequest)
     projectRequest.CookieContainer = authenticationCookieContainer
     Dim projectRequestResponse = projectRequest.GetResponse()
     Dim projectRequestResponseStream = projectRequestResponse.GetResponseStream()
     If projectRequestResponseStream Is Nothing Then
      Return projectList
     End If
     Using responseReader = New StreamReader(projectRequestResponseStream)
      Dim responseString = responseReader.ReadToEnd()
      Dim responseXml = XElement.Parse(responseString)
      Dim projectQuery = From project In responseXml.Elements() Select New With {.projectName = project.Attribute("Name").Value}
      projectList.AddRange(projectQuery.[Select](Function(project) project.projectName))
     End Using
     Return projectList
    End Function

    Usage

    Dim almProjects = GetProjects("http://youralmurl:port/qcbin", "Domain1", AuthenticationCookieContainer)
    Console.WriteLine(almProjects.Aggregate(Function(a, b) a + vbLf + b))

    C# Code

    C# Code to get ALM Projects

    private static IEnumerable GetProjects(string almBaseUrl, string domainName, CookieContainer authenticationCookieContainer)
    {
     var projectList = new List();
     var projectRestApiUrl = $"{almBaseUrl}/api/domains/{domainName}/projects";
     var projectRequest = (HttpWebRequest)WebRequest.Create(projectRestApiUrl);
     projectRequest.CookieContainer = authenticationCookieContainer;
     var projectRequestResponse = projectRequest.GetResponse();
     var projectRequestResponseStream = projectRequestResponse.GetResponseStream();
     if (projectRequestResponseStream == null) return projectList;
     using (var responseReader = new StreamReader(projectRequestResponseStream))
     {
      var responseString = responseReader.ReadToEnd();
      var responseXml = XElement.Parse(responseString);
      var projectQuery = from project in responseXml.Elements()
             select new { projectName = project.Attribute("Name").Value };
      projectList.AddRange(projectQuery.Select(project => project.projectName));
     }
     return projectList;
    }

    Usage

    var almProjects = GetProjects("http://youralmurl:port/qcbin", "Domain1", authenticationCookieContainer);
    Console.WriteLine(almProjects.Aggregate((a, b) => a + "\n" + b));

    Sample Output

    Project1
    Project2
    Project3
    Project4
    Project5

    Related Articles

    Recent Articles

    How to fix Date Time data type issue in Blue Prism?

    Know more about the date time issue while using the code stage in Blue Prism and understand how to fix it by dealing with the UTC offset.

    How to deserialize JSON in UiPath?

    Tutorial on how to properly deserialize JSON with UiPath Web Activities. Explains the concept of JSON Array and JSON Object.

    Dynamic or Variable Selectors in UiPath

    Tutorial on how to use dynamic selectors in UiPath. Explains how to use variables in UiPath selectors.

    Change Case Excel Add-In

    Change Case Excel Add-In is a powerful Excel Add-In that can change the case of selected cells. With easy to use Keyboard shortcuts, perform case conversion in style.

    Blue Prism Video Tutorial

    A well-structured video tutorial on Blue Prism, which is the right starting point for your RPA career. #rpa #blueprism

    Leave a Reply

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Stay on top - Get latest articles in your inbox