Connexion ALM QC-PC avec PowerShell

L’automatisation de tâches de gestion dans ALM QC-PC via Powershell est possible, mais il est convient de respecter la procédure suivante. Pour info, cette procédure n’existe actuellement pas le net. Le programme ci-dessous active un projet ALM si celui-ci n’est pas activé.
Pour autoriser l’éxécution des scripts signés ou pas dans Powershell, il est nécessaire de lancer dans Powershell : set-executionpolicy remotesigned
Lancer le script via invite de commande : powershell -File “ActivateProjet.ps1″
# Chargement des Assembly nécessaires à l’utilisation des classes de connexion
[Reflection.Assembly]::LoadFile(“D:\Sources\\Interop.TDAPIOLELib.dll“) | out-null
[Reflection.Assembly]::LoadFile(“D:\Sources\\Interop.SACLIENTLib.dll“) | out-null
$td = New-Object -ComObject TDApiOle80.TDConnection
$almsa = New-Object SACLIENTLib.SAapiClass
$qualityCenterLink = “http://<SERVER>:8080/qcbin”
$qualityCenterDomain = “DEFAULT”
# Saisie Password et Nom Projet
$qualityCenterProject=Read-Host “quality Center Project”
$qualityCenterUsername = Read-Host “quality Center User”
$qualityCenterPassword=Read-Host “quality Center Password”
# Connexion ALM PC
$td.InitConnectionEx($qualityCenterLink)
$td.Login($qualityCenterUsername, $qualityCenterPassword)
$almsa.Login($qualityCenterLink, $qualityCenterUsername, $qualityCenterPassword)
[System.XML.XMLDocument]$Doc = New-Object System.Xml.XmlDocument
$Doc.LoadXml($almsa.GetDomain($qualityCenterDomain))
#Write-Host “Doc : ” $Doc.OuterXml
#[System.XML.XmlNode]$ProjectList = $Doc.DocumentElement.SelectSingleNode(“PROJECTS_LIST”)
#Write-Host “ProjectList : ” $ProjectList.OuterXml
$node1 = $Doc.SelectNodes(“GetDomain/PROJECTS_LIST/TDXItem”)
#Write-Host $node1.Count
ForEach ($Project in $node1) {
    $Projet = $Project.SelectSingleNode(“PROJECT_NAME”).InnerText
    Write-Host “Projet : ” $Projet
    $ProjetActive = $Project.SelectSingleNode(“PR_IS_ACTIVE”).InnerText
    Write-Host “ProjetActive : ” $ProjetActive
    if ($ProjetActive -eq “N”) {
     $almsa.ActivateProject($qualityCenterDomain, $qualityCenterProject)
     Write-Host “Projet” $qualityCenterProject “activé !”
    } else {
     Write-Host “Projet déjà activé”
    }
}
$td.Disconnect()
$td.Logout()
$almsa.Logout()

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Partagez
Tweetez
Partagez