Is it possible to use OTA to update a Test Plan Field in ALM/QC?
Since writing my posts “How to Update a Defect using OTA” and “How to Update a Test Set Field Using OTA”
I’ve received a few emails inquiring if it’s possible to also update
information for an ALM Test Plan using HP’s Open Test Architecture
(OTA).
The quick answer is “Yes” but rather than answer each one individual, I thought it would be better to frame my replay in the form of a quick post.
The quick answer is “Yes” but rather than answer each one individual, I thought it would be better to frame my replay in the form of a quick post.
How to get the QC/ALM field name
In order to update a field in ALM
using OTA you will need to know the backend name that ALM assigns to the
field. This name is normally different than the label name that you
might see in the ALM Test Lab section.
If you don’t know what the actual field names are, you can easily find them by going into QC’s Tools>Customize.
In the Project Customization section and go into the “Project Entities” section.
Under the Project Entities Tree
view click expand Defect and click on your System Folder or User Fields.
Clicking on a field will reveal the field name that you will need to
use.
For this example I want to find the System Field > Status and get the name value for it (TS_STATUS)
QTP OTA Code to Update a Test Plan Field in an ALM/QC Test Lab
The following example updates the ‘Test Plan’ that has the ‘Test Set ID’ of 6 and changes the ‘Status’ field to Ready.
The code is pretty straight forward and uses the OTA’s TestFactory object to accomplish our goal.
- Creating an instance of the TestFactory object allows us to access all the services needed to manage tests.
- Next you set the Filter property to set the ID for the test set that you want to update.
- Finally use the TestFactory’s NewList method to create a list of object that matches your specified filter.
- Make sure to use the Post method to actually write the changed values to your ALM database
'========================================= set tdc = createobject("TDApiOle80.TDConnection") tdc.InitConnectionEx "http://yourURL/qcbin" tdc.Login "yourName","yourPassword" tdc.Connect "yourDomain","yourProject" '========================================= testPlanID = 6 Set TestList = tdc.TestFactory Set TestPlanFilter = TestList.Filter TestPlanFilter.Filter("TS_STATUS") = testPlanID Set TestPlanList = TestList.NewList("") Set myTestPlan = TestPlanList.Item(testPlanID) myTestPlan.Field("TS_STATUS") = "Ready" myTestPlan.Post Set TestPlanFilter = Nothing Set myTestPlan = Nothing Set TestList = Nothing Set TestPlanFilter = Nothing
How Update All Tests
There might be times when you need to update the same field for all the tests in your test plan. To update the same field for all your tests you could create code that loops thru all the tests:
'========================================= set tdc = createobject("TDApiOle80.TDConnection") tdc.InitConnectionEx "http://yourURL/qcbin" tdc.Login "yourName","yourPassword" tdc.Connect "yourDomain","yourProject" '========================================= Set TestList = tdc.TestFactory Set TestPlanFilter = TestList.Filter Set TestPlanList = TestList.NewList("") For each tpTest in TestPlanList Set myTestPlan = TestPlanList.Item(tpTest.ID) myTestPlan.Field("TS_STATUS") = "Ready" myTestPlan.Post Next Set TestPlanFilter = Nothing Set myTestPlan = Nothing Set TestList = Nothing Set TestPlanFilter = Nothing
How to run the code
To run the defect code you can either place it in QTP and run as a script or place the code in a text file and save as a .VBS vbscript file.
No comments:
Post a Comment