| Name | Testplan Plugins |
|---|---|
| Version | 1.1 |
| Product Versions | Confluence 2.2.2 and above |
| Author(s) | Brian Sensale |
| Homepage | N/A |
| Price | Free |
| License | BSD |
| JavaDocs | N/A |
| IssueTracking | N/A |
| Download JAR | testplan-plugins-1.1-conf.jar |
| Download Source | testplan-plugins-1.1-src.zip |
Description/Features
These plugins allow the user to write and maintain testplans within Confluence.
There are two macros:
The first plugin is the Testplan Plugin.
Any good Quality Assurance organization needs to write and maintain testplans as part of their daily tasks. I was finding that the tasklist Macro was inadequate, since it only held two states, and most testplans need three (pass, fail and not run). Additionally, I found it helpful to have testplans actually link to the bug numbers if a step fails. Rather than editing the source of the page and maintaining a table of steps and status, we needed something that was easier to maintain.
What I've done is, using the tasklist as reference, implemented a sort of super tasklist. Similar to the tasklist, you put each step of the testplan on seperate lines, and the macro will render a testplan. Each step will have a state, a description of the step, and 3 links to mark that step as passed, failed, or not run (reset). Clicking that link will flag the step appropriately. Furthermore, if you flag a step as failed, the testplan will prompt you for a comma-seperated list of Jira Numbers, and will construct links to the Jiras for you. Finally, a list of all Jira in this plan is given to the JiraIssues Macro, which will call the multi-issue key searcher to display a table of the currently tracked Jiras. The features to link to Jira are optional, and can be turned off using Macro Parameters.
The second plugin is the Testplan Summary Plugin
This plugin takes advantage of the Metadata Plugin to store status in the page metadata. You can then use the macros in that plugin to collate information on your testplans. As of Version 1.1, a supporting JAR containing the Metadata plugin is included, taking advantage of the ability in Confluence 2.2 to load supporting files from with the plugin jar. No further downloads are necessary.
Usage
testplan macro
This Macro allows you to write an easily maintained testplan. Each step should be placed on its own line. If you want to add a header to give a subsection of a testplan, use the ^ character at the front of the line. If you want to add a comment that isn't part of the plan, add // to the front.
For example:
{testplan:My Testplan}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
will render as:

Clicking the Pass/Fail/Reset link will take the appropriate action. If you click the fail link, you are prompted for a comma seperated list of bug numbers (or a single number). For example, if I click Pass for Step 1, fail for Step 2 and enter in 1, and fail step 2, entering 4,5 I get the following:

Clicking Reset All will only reset those steps that passed; I found it easier to preserve the failure Jira links when I rerun the tests; I can always click reset on an individual step to clear the status.
The full list of options available to the testplan macro are:
| Option | Possible values | Default Value | Description |
|---|---|---|---|
| allowAnon | Y y Yes yes true | true | Specifies whether to allow anonymous access to this testplan. If true, then any user can use the links to flag testplan steps. Note you will still have to set page level security to prevent users from editing the source; this option is solely about being able to alter testplan step statuses. |
| restrictTo | a comma-seperated list of groups | null | Allows you to define which groups in Jira have "write" access to this testplan. Note you will still have to set page level security to prevent users from editing the source; this option is solely about being able to alter testplan step statuses. |
| useFailMacro | Y y Yes yes true | true | Specifies whether to prompt the user for Jira numbers. Note that if this is false, includeJiraLinks will be false. |
| includeJiraLinks | Y y Yes yes true | true | Specifies whether to generate a jiraIssues link at the end |
| headerLevel | 0 1 2 3 4 5 | 4 | Specified if you want a a header rendered before the jiraIssues link at the end. The number specified the level; 0 means suppress the header |
| jiraUrl | the base Url of your Jira server | null | Allows you to control which Jira server will monitor the failures in this testplan. Will override the User Macro jiraUrl if it is defined. Note that either this or the user macro jiraurl must be defined in order to be able to provide links to the bugs associated with this testplan. |
| jiraKey | your Jira project key | null | Defines a default Jira key for bugs logged against a step for failures for this testplan. Will override the user macro jirakey, if it is defined. Defining a jira key will prefix all bug numbers entered into the failure dialog with "KEY-" where KEY is your project key. If neither this nor the user macro is defined, the default behavior now (provided jiraurl exists), is to allow the user to enter bugs against multiple projects in one failure step by explicilty giving each project key in the failure dialog (i.e. JRA-2,CON-4,JRA-3). |
| jiraIssuesUrl | the base URL for jiraissues | null | Will override the user macro jiraissuesurl in the event you have multiple Jira Servers. |
Optional User Macros
To take full advantage of the features of the testplan Macro, you should define the following Macros:
| Macro | Description | Sample |
|---|---|---|
| pass | Denotes a step has passed. If none is defined, |
<img align="absmiddle" src="/images/icons/emoticons/check.gif" alt="Pass" title="Pass"/> |
| notrun | Denotes a step has not run. If none is defined, |
<img align="absmiddle" src="/images/icons/emoticons/warning.gif" alt="Not Run" title="Not Run"/> |
| jiraurl | Required for includeJiraLinks and useFailMacro options. Base URL for your Jira System. Is overridden by the option jiraUrl on the testplan itself. | http://bugs:8080 |
| jirakey | Required for includeJiraLinks and useFailMacro options. Used to define a systemwide Jira Project key, useful if you only have one project. Is overriden by the jiraKey option on the testplan macro. Leaving both this and the testplan option null allows the user to enter multiple projects in one testplan. This option replaces jiraissueskey. | JRA |
| jiraissuesurl | Required for includeJiraLinks option. Specifies the base URL to use for the jiraissues link. Note that you MUST have the Multi-Issue Key Searcher Custom Field installed in your Jira system. Also note that you need to know the ID of the field (Go to the Custom Fields section of the Admin console in Jira and hover your mouse over the options for the Field to see the ID). Is overriden by the testplan option jiraIssuesUrl | http://bugs:8080/secure/IssueNavigator.jspa?decorator=none&view=rss&reset=true&mode=show&customfield_10054= |
The following options can be set on the testplansummary macro:
| Option | Possible values | Default Value | Description |
|---|---|---|---|
| allowAnon | Y y Yes yes true | true | Specifies whether to allow anonymous access to this testplansummary. If true, then any user can use the links to flag the summary. Note you will still have to set page level security to prevent users from editing the source; this option is solely about being able to alter testplan summaries in View mode. |
| restrictTo | a comma-seperated list of groups | null | Allows you to define which groups in Jira have access to this testplan summary. Note you will still have to set page level security to prevent users from editing the source; this option is solely about being able to alter the testplan summary status in View mode. |
In addition, the following User Macros can be optionally defined:
| Macro | Description | Sample |
|---|---|---|
| pass | Specifies the testplan passed | <img align="absmiddle" src="/images/icons/emoticons/check.gif" alt="Pass" title="Pass"/> |
| notrun | Specifies the testplan has not been run | <img align="absmiddle" src="/images/icons/emoticons/warning.gif" alt="Not Run" title="Not Run"/> |
| in-progress | Specifies the testplan is in progress | <img class="emoticon" src="/images/icons/emoticons/lightbulb.gif" height="16" width="16" align="absmiddle" alt="In Progress" title="In Progress" border="0"/> |
If you dont's define the options, the emoticons
,
and
are used.
Now, when you place the the page as such:
{testplansummary}
You'll get something like this:
3/14/06 1:08 PM by Brian Sensale
Flag Testplan as Pass Fail Not Run In Progress
Clicking the links will both flag the testplan, and set metadata for the user, status and date so the metadata query plugins can access the data.
An example metadata-report that uses the content-by-label query feature gives the following summary of testing status:

Examples
Create a testplan named My Testplan with the default values:
{testplan:My Testplan}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
Create a testplan named My Other Testplan, but don't create the Jiraissues link:
{testplan:My Other Testplan|includeJiraLinks=false}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
Create a testplan named Yet Another Testplan, don't use the fail macro:
{testplan:My Testplan|useFailMacro=no}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
Create a testplan named Still Another Testplan and suppress the header for the Jira Issues section:
{testplan:My Testplan|headerLevel=0}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
Create a testplan, restricting access to the qa group:
{testplan:My Testplan|restrictTo=qa}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
Create a testplan that uses a specific Jira project:
{testplan:My Testplan|jiraKey=CON}
^Header
//Comment
Step 1
Step 2
Step 3
Step 4
{testplan}
What we've done to make everything easier is to define a Global Template of type QA Testplan. When the user writes a new testplan, they choose this template for their page, and are prompted for the name of the testplan. They are then automatically given this Wiki Markup:
{testplansummary}
{testplan:Name Entered By User}
{testplan}
Version History
| Plugin | Version | Date | Description |
|---|---|---|---|
| Testplan Plugin | 1.0 | 03/14/2006 | Initial Version |
| Testplan Summary Plugin | 1.0 | 03/14/2006 | Initial Version |
| Testplan Plugins | 1.1 | 07/14/2006 | Merged the two into one distribution, added security to both testplan and testplansummary, added multi-project support to testplan |
Screenshots


Comments (62)
Apr 20, 2006
Vera Kolesnyk says:
(?)Could you please tell how to administrate Optional User Macros (jiraurl,...(?)Could you please tell how to administrate Optional User Macros (jiraurl, jiraissueskey, jiraissueurl) in Confluence for different projects in Jira with different keys.
Apr 20, 2006
Brian Sensale says:
Go to the administration Console, User Macros section. Then, Create a new user m...Go to the administration Console, User Macros section. Then, Create a new user macro, and name it one of the items in the list above (jiraurl, jiraissueskey, jiraissueurl). Click the checkbox saying the Macro has a body, and enter in the value for your Jira server appropriate for the macro you're creating (see the samples in the table above). If a Jira issue on your server is something like http://bugs:8080/browse/JRA-123, then you would set jiraurl to http://bugs:8080, and the jiraissueskey to JRA. The URL depends on what the ID of the Multi-Searcher Custom field is on your Jira System.
Apr 20, 2006
Vera Kolesnyk says:
Thank you very much\! But if I need to create one testplan for project JRA ...Thank you very much!
But if I need to create one testplan for project JRA (jiraurl = http://jira/browse/JRA), second testplan for project PPT (jiraurl = http://jira/browse/PPT ) and third testplan for project SSD (jiraurl = http://jira/browse/SSD ).
In this situation how can I manage to write one jiraissueskey = JRA, second jiraissueskey= PPT, third jiraissueskey = SSD?
Apr 20, 2006
Brian Sensale says:
This is trickier and will require a small rewrite of the plugin. When I wrote it...This is trickier and will require a small rewrite of the plugin. When I wrote it initially, I wrote it for our infrastructure, which only uses one project key. I missed the idea of multi-projects when I converted it to be more friendly to others. The way to do this right is to have the key be a property on the testplan itself, similar to the headerLevel option. Sorry!
Jun 21, 2006
Kevin James says:
If you were to make the key a property on the testplan itself, you'd want to mak...If you were to make the key a property on the testplan itself, you'd want to make sure multiple keys could be specified. I actually solved the problem with targeting multiple JIRA projects by just removing this key altogether. Now when users fail the testplan they enter the JIRA using <key>-<id> or JRA-123.
I also ran into problem where the error.gif was not being found due to the hardcoded path "\images\icons..." in TestPlan.java. Our Confluence is installed under a \confluence context in our Tomcat server so this path needs to be "\confluence\images\icons...".
May 03, 2006
Kevin James says:
Great plugin\! We would like very much to use this in our QA process, but ...Great plugin! We would like very much to use this in our QA process, but cannot for the same reasons pointed out by Vera, cannot support multiple projects. Do you think this is a change we might see in this plugin in the not too distant future?
Thanks again for a great plugin.
May 03, 2006
Brian Sensale says:
Thanks so much; we're in a release cycle ourselves right now, so I won't have ti...Thanks so much; we're in a release cycle ourselves right now, so I won't have time to look at this for a few weeks. Sorry!
May 06, 2006
Artyom Borodkin says:
Greate idea\! I like your plugin. But I can't use it for the folowing resons: 1...Greate idea! I like your plugin. But I can't use it for the folowing resons:
1) Multiple projects support (as mentioned in the prev posts)
2) Access rights. I would like to allow only testers to change the test plan.
Jun 21, 2006
Simon Taylor says:
I get the following error when trying to install the testplansummary plugin into...I get the following error when trying to install the testplansummary plugin into Confluence:-
*Cause:* | bucket.core.InfrastructureException: java.lang.NoClassDefFoundError: com/pantero/confluence/plugins/metadata/AbstractMetadataMacro\\ at com.atlassian.confluence.util.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:151) | | caused by: java.lang.NoClassDefFoundError: com/pantero/confluence/plugins/metadata/AbstractMetadataMacro\\ at java.lang.ClassLoader.defineClass1(Native Method) | *Stack Trace:* \[hide\]bucket.core.InfrastructureException: java.lang.NoClassDefFoundError: com/pantero/confluence/plugins/metadata/AbstractMetadataMacro at com.atlassian.confluence.util.XWorkTransactionInterceptor.intercept(XWorkTransactionInterceptor.java:151) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)I have installed the metadata plugin v1.4 and also put the jar in confluence.WEB-INF/lib
Testplan works ok and so does the meta-data plugin
Jun 21, 2006
Brian Sensale says:
That's odd, I haven't had problems like this with this version of Metadata. What...That's odd, I haven't had problems like this with this version of Metadata. What version of Confluence are you using? Also, did you restart after adding the JAR to that folder? Confluence doesn't hot swap code from that directory.
I have a new version I should be wrapping up in the next few days that uses the ability to load from an internal library in 2.2, and this is definitely working for me right now.
Jun 21, 2006
Simon Taylor says:
Were using 2.1.5a so were due for an upgrade. I installed the meta data in WEBIN...Were using 2.1.5a - so were due for an upgrade.
I installed the meta data in WEB-INF/lib - stopped and started Tomcat then uploaded testplansummary into confluence - then it threw the error.
Jul 14, 2006
Brian Sensale says:
I've finally gotten around to updating the testplan plugins. It was somewhat ext...I've finally gotten around to updating the testplan plugins. It was somewhat extensive, and implemented the following features:
The new version requires Confluence 2.2.2 or above, and is nearly 100% backwards compatible. If you used the version prior to this, change the jiraissueskey user macro to jirakey, and it will behave as before.
Have fun, and let me know what you think!
Jul 17, 2006
Justin Shapiro says:
Install failed testplansummary Macro that lets you flag a testplan as pass, fa...Install failed
testplansummary
Macro that lets you flag a testplan as pass, fail, in-progress or reset. Also updates the metadata of the testplan with the status, user and date. This macro requires you have the metadata macro installed.
Error: There was a problem loading the descriptor for module 'macro' in plugin 'Testplan Plugins'. Error retrieving dependency of class: com.pantero.confluence.macro.testplansummary.TestplanSummaryMacro. Missing class: com/pantero/confluence/plugins/metadata/AbstractMetadataMacro
Jul 17, 2006
Brian Sensale says:
What version of Confluence are you using? I have no problems using this very jar...What version of Confluence are you using? I have no problems using this very jar on a 2.2.2 installation.
Jul 17, 2006
Justin Shapiro says:
Version: 2.2.2 Build:#516 May 31, 2006Version: 2.2.2 Build:#516 May 31, 2006
Jul 17, 2006
David Peterson says:
Sounds like it can't find the files from the Metatdata plugin. Ensure you have i...Sounds like it can't find the files from the Metatdata plugin. Ensure you have installed the metatada plugin into the WEB-INF/lib directory of your Confluence webapp (as opposed to uploading it).
Brian: You can probably get around this dependency now by simply bundling the metadata .jar file in your plugin - just put it in 'META-INF/lib' in your plugin jar. That way any versions of Confluence from 2.1.1a onwards will 'just work'.
Jul 18, 2006
Justin Shapiro says:
Thanks, that did it. Now I just need to figure out how to get jiralinks to work ...Thanks, that did it. Now I just need to figure out how to get jiralinks to work over https and I'll be good.
Jul 17, 2006
Andrew Miller says:
Any chance of getting this into the Confluence Plugin Repository? Looks very use...Any chance of getting this into the Confluence Plugin Repository? Looks very useful!
Jul 17, 2006
Brian Sensale says:
I'd love to....just not sure the steps to take to do that (first is to probably ...I'd love to....just not sure the steps to take to do that (first is to probably get it in Subversion)...
Jul 17, 2006
Jonathan Nolen says:
Actually, all you really need to do is check in a metadata file similar to the o...Actually, all you really need to do is check in a metadata file similar to the ones you see here:
http://svn.atlassian.com/svn/public/contrib/repository/confluence/
Your jar can live anywhere you like.
Cheerss,
Jonathan
Jul 20, 2006
Tom Moore says:
Can you give the wiki code for making those extra columns and such? I'm al...Can you give the wiki code for making those extra columns and such? I'm also having trouble figuring out what exact custom field to "hover" over to get the JiraIssuesURL key
Jul 20, 2006
Tom Moore says:
PS Any way to show version control? Ie show both who clicked pass/fail and...PS - Any way to show version control? Ie show both who clicked pass/fail and when?
Jul 27, 2006
Dirk says:
I created a testplan and added the testplansummarymacro. Now I wish to create t...I created a testplan and added the testplansummary-macro.
Now I wish to create this nice testplan metadata-report like the one above. But I don't know the markup language code to generate this.
Could you give me some example code?
Thanks - Dirk
Jul 27, 2006
Tom Moore says:
Please allow this plugin to support username and password fields in the jiraissu...Please allow this plugin to support username and password fields in the jiraissuesurl field. It seems to be ignoring everything after the customfield_10142=& in the following example url
https://www.example.com/jira/secure/IssueNavigator.jspa?decorator=none&view=rss&reset=true&mode=show&customfield_10142=&os_username=xxxxx&os_password=xxxxx
Jun 19, 2007
gumshoes says:
I managed to get around this restriction by formatting the URL as follows: http...I managed to get around this restriction by formatting the URL as follows:
https://asdf.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?decorator=none&&reset=true&mode=show&os_username=asdf&os_password=asdf&customfield_10056=
Aug 10, 2006
Kelsey Grant says:
I have added this to the repository client. I did not upload any of the source t...I have added this to the repository client. I did not upload any of the source to subversion as I couldn't get it to build. It's got some issue that's most likely the 2.2 dependency and I can't figure out how Maven knows what jars to compile against.
Thanks!
Sep 04, 2006
Ingo Sigmund says:
Hello all, I'm trying to generate a chart out of all testplans that are located ...Hello all,
I'm trying to generate a chart out of all testplans that are located below a certain parent page. The chart should show the number of testplans, that are in progress, failed, passed etc. Pretty much the same information as the metadata-report Macro (see above) does, just in form of a nice chart. I believe this should be possible as some of the examples above show. The only thing that I would ned is a matadate ite, that contains the number of failed, passed, in process testplan pages. I would believe such an item exists since the information is stored somewhere on these pages. Any hint what metadata item would deliver this information would be very helpful.
Thanks
Ingo
Sep 04, 2006
Ingo Sigmund says:
Never Mind I found out how to do this : Testplans Not Started (!) Pa...Never Mind - I found out how to do this :
{chart:type=bar|title=Test Status|width=500|height=200|orientation=horizontal} || || Testplans || || Not Started | {metadata-matches:Status|labels=testplan_support_pack_test_xem_2_0_sp8}(!){metadata-matches}|| || Passed | {metadata-matches:Status|labels=testplan_support_pack_test_xem_2_0_sp8}(/){metadata-matches} || || Failed | {metadata-matches:Status|labels=testplan_support_pack_test_xem_2_0_sp8}(x){metadata-matches} || || In Progress | {metadata-matches:Status|labels=testplan_support_pack_test_xem_2_0_sp8}(off){metadata-matches} || {chart}Sep 04, 2006
Ingo Sigmund says:
Here is the chart !chart32686.png!Here is the chart
May 05, 2007
David A. Coker says:
How does this label \\ labels=testplansupportpacktestxem20sp8 \\ get defined to ...How does this label
labels=testplan_support_pack_test_xem_2_0_sp8
get defined to begin with?
I'm confused... Thanks
Jun 28, 2007
Cameron Curwood says:
Anyon