Warning: We are moving Exalate for HP QC/ALM into basic maintenance mode. This transition period will last until November 2024, after which support will be halted completely. For more information, please see https://exalate.com/blog/end-of-support-hp/.
This article shows how to synchronize defects and test cases in HP ALM/QC.
Introduction
Exalate allows you to synchronize the following entities in HP ALM/QC:
- Defects
- Test case (Test Lab module)
You can add sync rules to every entity type separately.
Note: Check the reference of supported fields and entities that you can synchronize from HP ALM/QC instance.
Configuration
To synchronize multiple entity types, you need to adapt the sync rules using if blocks. This helps Exalate distinguish sync rules for different entity types. Check the examples below:
Source Side
Outgoing sync
To send defects and testCases use the code below:
if(entityType == 'defect') {
replica.key = defect.key
replica.owner = defect.owner
replica.reporter = defect.detectedBy
replica.summary = defect.summary
replica.description = defect.description
replica.comments = commentHelper.getSingleCommentFromCommentsArea(defect)
replica.status = defect.status
replica.attachments = defect.attachments
///other fields supported by the defect entity
}
if(entityType == 'testCase') {
replica.key = testCase.key
replica.owner = testCase.owner
replica.summary = testCase.summary
replica.description = testCase.description
replica.comments = commentHelper.getSingleCommentFromCommentsArea(testCase)
replica.status = testCase.status
replica.attachments = testCase.attachments
///other fields supported by the test case entity
}Destination Side HP ALM/QC
You need to map the incoming entities. For example:
- Jira issue of type bug to the HP ALM/QC defect
- Jira issue of type story to the HP ALM/QC test case
Below you can find some examples of mapping multiple issue types from Jira to different entities in the HP ALM/QC.
Incoming sync
Note: If you want to sync multiple entities in one connection, add the following code at the beginning of your Incoming sync rules.
def defaultEntityType = 'defect' //Please change the defaultEntityType to 'testCase' to create test cases by default
if(firstSync) entityType = defaultEntityType else entityType
Note: If you want to sync multiple entities in one connection, add the following code at the beginning of your Incoming sync rules.
def defaultEntityType = 'defect' //Please change the defaultEntityType to 'testCase' to create test cases by default if(firstSync) entityType = defaultEntityType else entityType
To create defects with the received information on your side, add the code below:
def defaultEntityType = 'defect' //Please change the defaultEntityType to 'testCase' to sync into test cases by default.
if(firstSync) entityType = defaultEntityType else entityType
if(entityType == 'defect') {
defect.summary = replica.summary
defect.severity = "1-Low"
defect.description = replica.description
defect.attachments += replica.addedAttachments
defect.attachments -= replica.removedAttachments
defect.commentsArea = commentHelper.mergeCommentsIntoCommentsArea(testCase, replica)
}To create test cases with the received information on your side, add the code below:
def defaultEntityType = 'testCase' //Please change the defaultEntityType to 'Defect' to sync into defects cases by default.
if(firstSync) entityType = defaultEntityType else entityType
if(entityType == 'testCase') {
testCase.parentId = qcHelper.getTestPlan("TEST").id
testCase.typeName = qcHelper.getTestType("VuGen-Script").id
testCase.summary = replica.summary
testCase.description = replica.description
testCase.attachments += replica.addedAttachments
testCase.attachments -= replica.removedAttachments
testCase.commentsArea = commentHelper.mergeCommentsIntoCommentsArea(testCase, replica)
}Note: To start the synchronization, create a trigger for every entity type separately.
Have more questions? Ask the community