Allows users to execute a Silk Performer load test: [Silk
Performer](https://www.microfocus.com/products/silk-portfolio/silk-performer/)  
  

The Silk Performer plugin for Jenkins has received a major upgrade and
now provides a number of new features. It lets you automate Silk
Performer projects, collect results, and evaluate success conditions.
This article guides you through setting up the plugin. To learn more
about the new features and enhancements of the plugin, read the blog
post [Released: Silk Performer
19.5](https://community.microfocus.com/borland/test/silk_performer_-_application_performance_testing/b/weblog/posts/released-silk-performer-19-5 "Released: Silk Performer 19.5").

Setting up the plugin involves the following steps:

1.  Installing the plugin
2.  Adding a Jenkins agent
3.  Creating a job
4.  Adding build steps
5.  Adding post-build actions
6.  Executing the job

  

### 1. Installing the plugin

First, open Jenkins in a browser. Click **Manage Jenkins** in the menu
on the top left ① and click **Manage Plugins** ②.

![](docs/images/1.png){width="700"}

  

Click the **Available** tab ① and enter *Silk Performer* in the filter
on the top right ②. Now we can click the check box ③ and **Install
without restart** ④.

![](docs/images/2.png){width="700"}

  

### 2. Adding an agent

The Silk Performer plugin is installed. To run a Silk Performer project
in Jenkins you need a Jenkins agent node running on Windows in a 32-bit
JRE. In addition, Silk Performer must be installed on the agent node. If
you don't have such an agent yet, create a new one:

-   Click **Manage Jenkins**, **Manage Nodes**, and **New Node**.
-   Enter a name, select **Permanent Agent**, and click **OK**.
-   Configure the agent as follows: Specify a **Remote root directory**
    ① and a label ②.  
    In our example, we add the label *SlaveNode*.
-   Check **Environment variables** ③ and click **Add** ④. Name the
    variable *SP\_HOME* and  
    specify the installation directory of Silk Performer as value ⑤. In
    most cases, the installation directory will resemble the
    following:  
    *C:\\Program Files (x86)\\Silk\\Silk Performer 19.5*
-   Click **Save** ⑥.

![](docs/images/3.png)

  

### 3. Creating a job

Once the agent is online, you can create a new job using this agent.

-   Click **New Item**, enter a name, click **Freestyle Project**, and
    click **OK**.
-   Restrict the project to the agent you have just created: Check
    **Restrict where this project** **can be run** ① and specify the
    **Label Expression** ②.  
    In our example, this is the label *SlaveNode*, as defined above.
-   Configure your **Source Code Management** system that holds your
    Silk Performer projects. In our example, we use **Subversion** ③
    including the respective URL and credentials ④.

![](docs/images/4.png){width="700"}

  

### 4. Adding build steps

-   In the **Build** section, click **Add build step** and **Execute
    Silk Performer tests**.
-   Specify the **Project File Location** ①. This is a relative path to
    your workspace.
-   Specify a **Workload** ②. If you omit this field, the project’s
    default workload will be used.
-   You can add custom **Success Criteria** ③ directly in the build step
    or rely on the performance levels defined within the Silk Performer
    project.

![](docs/images/5.png){width="700"}

  

### 5. Adding post-build actions

-   Click **Add post-build action** and **Archive the artifacts**. Then
    specify the **Files to archive**.  
    In our example, we defined *DemoProject/\*\*/\**.  
    Make sure to use the wildcards as shown here to get hold of all
    files in all folders, including all subfolders.
-   To get a trend chart, click **Add post-build action** and **Plot
    build data**.
-   Specify a **Plot group** ①, a **Plot title** ②, and the **Number of
    builds to include** ③.
-   Specify a **Data series file** ④. In our example, we use the
    *OverviewReport.xml*, which is collected by the action **Archive the
    artifacts**.
-   Select **Load data from xml file using xpath** ⑤ and specify an
    **XPath Expression** ⑥ to read any value of the .xml file. In our
    example, we use the following expression:

  

`Overview_Report_Data/UserGroups/Group[Name="DemoProject_testsite.bdf/VUser-Profile1"]/Measures/``Measure[Class="Transaction" and Name="#Overall Response Time#" and Type ="Trans.(busy) ok[s]"]/``Avg`

![](docs/images/6.png){width="700"}

-   To include additional values in the chart, for example the maximum,
    click **Add**.  
    In our example, we define the maximum value using the following
    expression:

`Overview_Report_Data/UserGroups/Group[Name="DemoProject_testsite.bdf/VUser-Profile1"]/Measures/``Measure[Class="Transaction" and Name="#Overall Response Time#" and Type ="Trans.(busy) ok[s]"]/``MaxMax`

-   Click **Save**. The job is now configured.

  

### 6. Executing the job

Everything is set up now. Execute the job on the agent to receive load
test results.

-   Tip: The console provides valuable information while the job is
    being executed.
-   Once the job is completed, click **Last Successful Artifacts** to
    view the artifacts of the load test ①.
-   Click **View Overview Report** ② to open the report directly within
    Jenkins.
-   Click **Back to Project** ③ and **Plots** ④ to view the chart ⑤ you
    have configured above.

![](docs/images/7.png){width="700"}

![](docs/images/8.png){width="700"}

  

  

Note: If you do not use *English* as your Jenkins locale, the chart
might not display any data. To fix this problem, install the *Locale
plugin*. Then click **Manage Jenkins \> Configure System**, and set the
**Default Language** to *English*.

After the first execution it can be helpful to take a look at the
console output. It shows a table with the columns **Measure Category**,
**Measure Type**, and **Measure Name** ① for each user type ②. You can
use these tables to define success criteria for upcoming executions.
Review the screenshot in step 4: it shows the very same parameters (user
type, measure category, etc.).

![](docs/images/9.png){width="700"}