Aller au contenu
tests-performanceRechercherCtrl K
Performance Center1 min de lecture

Connexion ALM QC-PC avec PowerShell

Comment automatiser des tâches de gestion dans ALM QC et Performance Center avec PowerShell : un script active un projet ALM s'il ne l'est pas, avec la procédure à respecter.

L’essentiel

  • Le script active un projet ALM s'il n'est pas déjà activé.
  • Autoriser l'exécution des scripts avec set-executionpolicy remotesigned, puis lancer le script par l'invite de commande.
  • Les bibliothèques de connexion d'ALM (TDAPIOLELib) sont chargées au début du script.

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()

Dans la même catégorie.

↑ ↓ choisirEntrée ouvrirÉchap fermer