Calculating Virtual Users

On the Workload Configuration dialog, on the Pacing tab, you can perform the following actions:
  • You can let Silk Performer calculate the Max. VUsers
  • You can let Silk Performer calculate the Sessions Per Peak Hour
  • You can let Silk Performer calculate the Goal Trans Per Second
  • You can set your own specific Goal Session Time by enabling pacing
Tip: You can copy and paste the values in the Workload Configuration grids by using the keyboard shortcuts Ctrl+C and Ctrl+V or by right-clicking on a value and using the buttons in the context-menu.

Session Pacing

A session is the group of transactions defined for a user in the dcluser section. In the following sample, the session consists of 4 transactions. Note that begin and end transactions are not part of the session. The session time is the time it takes to execute the regular transactions including think times.

// Workload Section
dcluser
  user
    VirtUser
  transactions
    TInit      : begin;
    TLogin     : 1;
    TAddToCart : 2;
    TCheckout  : 1;
    TEnd       : end;

The baseline session time shows how long it took to execute the session in the baseline test.

Session pacing causes Silk Performer to add additional wait time, the so-called pacing wait time, at the end of a session before a new one is started. Session pacing allows you to reach a specified fixed session length, the so-called Goal Session Time.

Typically, you have already defined the number of virtual users in the Adjust Workload workflow step. In this table, you can now see how many sessions the virtual users will manage to execute in one hour. This is reflected by the Sessions Per Peak Hour value. If you adjust this value, Silk Performer will calculate how many virtual users you need to reach the number of sessions. On the other hand, if you adjust the number of virtual users, Silk Performer will recalculate the number of sessions the virtual users will manage to execute.

How the Sessions Per Peak Hour value is calculated

  • Make sure you have set a baseline. See Finding Baselines.
  • Select to Calculate virtual users required to reach a certain number of sessions per hour.
  • The Baseline Session Time [s] column now contains the session time of each user type in the baseline.
  • The Sessions Per Peak Hour is calculated for each user type.

Here is an example of how Silk Performer calculates the values: If the baseline test was executed in 100 seconds and you configured 10 virtual users, these 10 virtual users will be able to execute about 360 sessions within one hour (10 x 3600 seconds / 100 seconds).

Session Per Peak Hour = (Virtual Users x 3600 seconds) / Baseline Session Time

How to set your own specific Goal Session Time

As outlined above, Silk Performer uses the baseline session time to calculate the Sessions Per Peak Hour and the Max. VUsers. If you do not want to use the given baseline session time but want the sessions of a user type to take a different time, you can set your own Goal Session Time by configuring a pacing wait time.

How to configure Session pacing

  • Select sessions per hour to calculate the virtual users required to reach a certain number of sessions per hour.
  • If you have set a baseline previously, the Baseline Session Time [s] column now contains the session time value of each user type in the baseline. Your inputs in the subsequent steps will be validated against the baseline.
  • In the Pacing column, click ... to open the Configure pacing dialog.
  • Click Wait time insertion.
  • Select the relative Pacing wait time or the absolute Goal Session Time and specify the value in the fields beneath the chart.
  • Click OK. Your Goal Session Time displays in the table and the Max. VUsers value is adjusted. The Bandwidth value updates if a baseline has been set.

How to configure Think Time adaption

  • Select sessions per hour to calculate the virtual users required to reach a certain number of sessions per hour.
  • If you have set a baseline previously, the Baseline Session Time [s] column now contains the session time value of each user type in the baseline. Your inputs in the subsequent steps will be validated against the baseline.
  • In the Pacing column, click ... to open the Configure pacing dialog.
  • Click Think time adaptation.
  • Select Static or Dynamic:
    • Static: To reach the goal session time, the think times in the script are multiplied with a constant, static factor.
    • Dynamic: To reach the goal session time, the think times in the script are multiplied with a dynamic factor that is recalculated after each executed session.
  • Define your Goal Session Time and click OK. Your Goal Session Time displays in the table and the Max. VUsers value is adjusted. The Bandwidth updates if a baseline has been set.

Transaction Pacing

While Session Pacing is adding pacing wait time at the end of the session, Transaction Pacing is adding pacing wait time at the end of each individual transaction.

How to get the Goal Transactions Per Second calculation

  • Select transactions per second to calculate the virtual users required to reach a certain number of transactions per second.
  • If you have set a baseline previously, the Avg Transaction Time [s] column now contains the average transaction time value of each user type in the baseline.
  • The Goal Trans Per Second column is calculated for each user type row.

How to set your own specific Goal Transactions Per Second

  • Select transactions per second to calculate the virtual users required to reach a certain number of transactions per second.
  • If you have set a baseline previously, the Avg Transaction Time [s] column now contains the transaction time value of each user type in the baseline.
  • In the Pacing column, click ... to open the Configure pacing dialog.
  • Click Wait time insertion.
  • Select the relative Pacing wait time or the absolute Avg Goal Trans Time and specify the value in the fields beneath the chart.
  • Click OK. Your Goal Session Time displays in the table and the Max. VUsers value is adjusted. The Bandwidth updates if a baseline has been set.