Quantcast
Channel: Quality Center / ALM Practitioners Forum topics
Viewing all articles
Browse latest Browse all 5491

ALM 11.52 - OTA api - Check In/Out test cases with VB script.

$
0
0

I am using OTA to upload test cases from excel to ALM.

 

I have used the excel add-in and have found it to be quite cumbersome for my project needs, so I am writing a custom script to accomplish the task.

 

I have version control on, therefore, I need to check out the created test case before I can add steps. Preferably, I'd like to be able to check in the test case again when I am complete. Is there a way to do this with the OTA api?


This is the script that I am using:

 

Sub UploadTC()

Dim QCConnection
Dim qcUserName, qcPassword, qcDomain, qcProj
Dim tsf, trmgr
Dim trfolder, trtest
Dim dsf, dstep, steplist
Dim TCR As Range
Dim cache As Range
Dim scount As Range
'Fields
Dim TCName As Range
Dim TCStep As Range
Dim TCDesc As Range
Dim TCExRe As Range
Dim TCComm As Range
Dim TCType As Range



'~~~These need to come from a user form. Temporary.
qcUserName = "ssoong01"
qcPassword = "*********"
qcDomain = "HUB"
qcProj = "*********"
	
Set QCConnection = CreateObject("TDApiOle80.TDConnection")
'MsgBox ("Connect to QC Server")

QCConnection.InitConnectionEx "http://hpalm-qc.*****.net:8080/qcbin/"
'MsgBox ("Connection Established.")

QCConnection.Login qcUserName, qcPassword
'MsgBox ("Login Authenticated.")

QCConnection.Connect qcDomain, qcProj
'MsgBox ("Connected to Project.")

Set tsf = QCConnection.TestFactory
Set trmgr = QCConnection.TreeManager

With ThisWorkbook.Sheets("Test Cases")

 'Create Project Folder
Set trfolder = trmgr.NodebyPath("Subject").AddNode(.Cells(3, 2))
trfolder.Post
'Loop through each row in sheet from A4
Set cache = ThisWorkbook.Sheets("Values").Range("$A$3")
For Each TCR In .Range(.Cells(4, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
	Set TCName = .Range(TCR.Offset(0, 1).Address)
	Set TCType = .Range(TCR.Offset(0, 7).Address)
	
	'If Folder Then
		If TCType.Value = "Folder" Then
			Set trfolder = trmgr.NodebyPath("Subject" & TCR.Value).AddNode(TCName.Value)
			trfolder.Post
	'If Test Case Then
		ElseIf TCType.Value = "MANUAL" Then
			'If cached TC name = current row TC name then skip
			If TCName = cache.Value Then
			'Add Test Case
			ElseIf TCName <> cache.Value Then
				Set trfolder = trmgr.NodebyPath("Subject" & TCR.Value)
				Set trtest = trfolder.TestFactory.AddItem(TCName.Value)
					' set values
					trtest.Field("TS_NAME") = TCName
					trtest.Field("TS_RESPONSIBLE") = qcUserName ' Designer
					trtest.Field("TS_TYPE") = "MANUAL"
					trtest.Post
			'Steps
			Set dsf = trtest.DesignStepFactory
			Set steplist = dsf.Newlist("[empty]")
			' loop through all the steps
			Set scount = .Range(TCName.Address)
			Do
				Set TCStep = .Range(scount.Offset(0, 1).Address)
				Set TCDesc = .Range(scount.Offset(0, 2).Address)
				Set TCExRe = .Range(scount.Offset(0, 3).Address)
				Set TCComm = .Range(scount.Offset(0, 4).Address)
				Set dstep = dsf.AddItem(Null)
					dstep.Field("DS_STEP_NAME") = TCStep.Value
					dstep.Field("DS_DESCRIPTION") = TCDesc.Value
					dstep.Field("DS_EXPECTED") = TCExRe.Value
					Set scount = .Range(scount.Offset(1).Address)
			Loop Until scount.Value <> scount.Offset(-1).Value
			dstep.Post
				'cache TC name
				cache.Value = TCName.Value
			End If
		Else:
			MsgBox ("Invalid type at cell: " & TCR.Address)
		End If
Next TCR

 

 

Any help is appreciated. Thanks.


Viewing all articles
Browse latest Browse all 5491

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>