Meliora Testlab can be integrated to Atlassian JIRA issue tracker with an integration module which works in realtime with two-way synchronization strategy.
Using a two-way synchronization strategy requires plugin installation to your JIRA so it is only available if your JIRA server is installed on your own servers. Testlab also offers a simpler integration strategy to push issues from JIRA to your Testlab project which requires no plugin installations and therefore can be also used with both JIRA On-demand and with JIRA installed on your own servers.
When an issue is created in JIRA it is immediately added to Testlab and vice versa. If issues are edited, the changes are propagated between systems in real time. In addition to this a 15 minute synchronization job is scheduled to synchronize any changes missed for example in situations where network downtime occurs. In addition to this the JIRA side plugin adds an “Open in Testlab” menu item for all issues synchronized to Testlab which enabled to you easily open up the issue in your Testlab.
The module is implemented as a plugin at JIRA side and as an integration interface for the plugin at Testlab side. The following diagram describes the synchronization principle at high level.
Both peers have an event listener which publishes the changes in issues in real time. This means that when an issue is updated, commented or a file is attached to it in JIRA the change is immediately pushed to Testlab and vice versa. As said, we currently sync issue details, comments and attached files.
In addition to real time push a scheduled (every 15 minutes) synchronization job is triggered. This means that JIRA pushes all issue updates from the last synchronization point of time to Testlab. Testlab processes the data and replies with a push of it’s issue changes in similar fashion. This allows us to synchronize the issues between the systems even if the real time push fails for some reason for example due to network problems. We allow you to choose a conflict resolution strategy when overlapping updates occur to always honor the latest data, the JIRA data or Testlab’s data.
The actual data between JIRA and Testlab is pushed through a secured and key authenticated network channel. Just make sure your JIRA allows secured HTTPS to make the push from Testlab to JIRA secure.
To control which issues from JIRA are synchronized you can configure the plugin to synchronize only specific issue types from specific projects.
To get started with integration follow the steps described below. If you have questions about these instructions or any problems with the set up please feel free to open up a support ticket in Testlab. We are happy to help you in your setup!
“Testlab” field stores the human readable issue ID Testlab assigns the issue with. You can show this field on which JIRA screen you prefer. Above, we suggest you bind this item to the Default Screen to make this ID visible to your users. “TestlabLink” field stores the internal synchronization data for issues and should be hidden from all screens by default. Note that the actual configuration of these fields might vary a bit depending on your JIRA version.
As the synchronization works in two-way manner setting up the integration requires some configuration at Testlab side by Meliora. A support ticket to Meliora should be created by selecting Contact support… from the Help-menu of your Testlab. Make sure to include the following information to the ticket:
As the synchronization works in two-way manner setting up the integration requires some configuration at Testlab side. To set up a connection from Testlab server to your JIRA server you need to:
That’s it! When you get the confirmation from Meliora that the integration is set up you can continue on and configure the Testlab plugin to synchronize the projects’ issues. Please see the next section below.
The configuration of the JIRA plugin can be found in Administration > Plugins (or) Add-ons > Integrations: Meliora Testlab. To configure the plugin the following settings can be set:
Connection setup file
To set up a connection from Testlab server to your JIRA server a jira.properties configuration file should be placed in DOMAIN_HOME/lib/classes directory of your Testlab server. The format of the configuration file is as follows:
# if set as false, testlab does not fire any events TO jira or receive any events FROM your JIRA enabled=true # address and credentials of your JIRA server Testlab will use for calls jira.url=http://ourjira:8080/jira/rest/testlab/1.0 email@example.com jira.password=testlabuserapitoken_or_passwordifapplicable
For jira.url, please enter a full url of your JIRA server with /jira/rest/testlab/1.0 appended. If you are using HTTPS/SSL, make sure that you have a valid SSL certificate set up to your JIRA server so connection confidentiality can be ensured. For jira.username and jira.password use the credentials you’ve set up for your JIRA’s technical user account as explained in 1. Preliminary configuration at JIRA side chapter above.
Testlab – JIRA data mappings file (optional)
Testlab uses a default set of mappings between information in Testlab and JIRA as follows:
|Field||Testlab value||JIRA value|
|New Feature||New Feature|
|Won’t Fix||Won’t Fix|
|More Info Needed||Incomplete|
|Cannot Repeat||Cannot Reproduce|
|Status||Open||Open, To Do|
The default mappings, as explained above, match to the default values in a Classic JIRA project.
If you need to customize the data mappings, create a new file DOMAIN_HOME/lib/classes/jira-datamappings.properties as follows:
#### #### two-way data mappings between testlab - jira ####
## Basic data mappings for testlab’s constant fields
# In Jira: Bug, New Feature, Task, Improvement, Sub-task
# Testlab Defect (1) = Jira Bug
# Testlab New Feature (2) = Jira New Feature
# Testlab Enhancement (3) = Jira Improvement
# Testlab Other (4) = Jira Task, Jira Sub-task
# In Jira: Blocker, Critical, Major, Minor, Trivial
# Testlab Trivial (1) = Jira Trivial
# Testlab Low (2) = Jira Minor
# Testlab Normal (3) = Jira Major
# Testlab High (4) = Jira Critical
# Testlab Critical (5) = Jira Blocker
# In Jira: Fixed, Won’t Fix, Duplicate, Incomplete, Cannot reproduce
# Testlab Open (1) = no value in JIRA
# Testlab Fixed (2) = Jira Fixed
# Testlab Won’t Fix (3) = Jira Won’t Fix
# Testlab Duplicate (4) = Jira Duplicate
# Testlab More Info Needed (5) = Jira Incomplete
# Testlab Cannot Repeat (6) = Jira Cannot Reproduce
## Mappings for workflow dependant fields
# in JIRA default workflow: Open, In Progress, Reopened, Resolved, Closed
# in JIRA Agile (formerly GreenHopper): To Do, In Progress, Done
# Note: In Testlab, default workflows use key mappings in format testlab.status.STATUS
# to help localization. For this reason, the workflow statuses are should
# be mapped also to these values. If you have customized your Testlab workflows
# with new statuses please make sure to map them also.
# Testlab Open = JIRA Open, To Do
# Testlab Assigned = JIRA In Progress
# Testlab Resolved = JIRA Resolved
# Testlab Closed = JIRA Closed, Done
# Testlab Reopened = JIRA Reopened
The example file above defines the default mappings displayed in the table above.
As an example, if you are using Simple Issue Tracking projects in your JIRA (To Do -> In Progress -> Done) something like this should do (make sure to create a matching (To Do -> In Progress -> Done) workflow to your Testlab):
#### #### default two-way data mappings between testlab - jira ####
# PRIORITY_TRIVIAL = Jira Trivial
# PRIORITY_LOW = Jira Minor
# PRIORITY_NORMAL = Jira Major
# PRIORITY_HIGH = Jira Critical
# PRIORITY_CRITICAL = Jira Blocker
# RESOLUTION_OPEN = null
# RESOLUTION_FIXED = Jira Fixed
# RESOLUTION_WONTFIX = Jira Won’t Fix
# RESOLUTION_DUPLICATE = Jira Duplicate
# RESOLUTION_MOREINFONEEDED = Jira Incomplete
# RESOLUTION_CANNOTREPEAT = Jira Cannot reproduce
# workflow statuses
map.status.To_\ Do=To Do
map.status.In_\ Progress=In Progress
To make sure the changes take effect please restart Testlab if these configuration files are modified.