> OctoPerf load testing - Advanced Execution Scenario documentation page. How to configure a Runtime Scenario by adding User Profiles.

Source: https://api.octoperf.com/doc/runtime/edit-scenario/advanced-scenario/

# Advanced Execution Scenario

An advanced runtime scenario is a **collection of user profiles** (A [simple scenario](https://api.octoperf.com/doc/runtime/edit-scenario/) only has a single user profile). User profiles allow you to easily compose a test with a mix of:

* Virtual users,
* Test locations (including cloud and on premise),
* Load policies,
* Behaviors (like cache or cookies),
* etc...

The edition page lets you configure each one of these parameters:

<div class="grid cards" markdown>

- [:fontawesome-solid-user: User Profiles](#user-profiles)

- [:fontawesome-solid-wand-magic: Integration and Automation](https://api.octoperf.com/doc/runtime/edit-scenario/#integrations-and-automation)

- [:fontawesome-solid-square-check: Pass Criteria](https://api.octoperf.com/doc/runtime/edit-scenario/#pass-criteria)

- [:fontawesome-solid-location-arrow: Scenario Actions](https://api.octoperf.com/doc/runtime/edit-scenario/#actions)

</div>


## User profiles

![Scenario page](https://api.octoperf.com/doc/runtime/edit-scenario/img/advanced-scenario.png "Scenario configuration page")

The scenario page uses a layout with the list on the left and edition on the right. The list features all the usual possibilities as described in the [dedicated section about lists](https://api.octoperf.com/doc/navigation/#lists).

Each user profile of the list shows:

- In the status column, the problems found by the [scenario check](#scenario-check),
- In the **Type** column, the icon of the type of its Virtual User (JMeter, K6, Playwright, Selenium...), as in the [list of Virtual Users](https://api.octoperf.com/doc/design/#virtual-users). Its tooltip names the type, and a click opens the user profile on its [Virtual User](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/virtual-user/) step.

This way, you see at a glance which engine runs each user profile of a scenario that mixes them.

### Actions

![user-profile-actions](https://api.octoperf.com/doc/runtime/edit-scenario/img/user-profile-actions.png "User Profile Actions")

| Name                               | Action                                           |
|------------------------------------|--------------------------------------------------|
| Add Profile                        | Adds a new user profile to the current scenario. |
| [Edit](#edit-user-profile)         | Edit this user profile.                          |
| Duplicate                          | Create an exact copy of this user profile.       |
| Delete                             | Permanently removes this user profile.           |

### Edit user profile

To **Edit a user profile**, you can click **Edit** in the list or click on a user profile in the **Stacked Profiles** graph:

![Edit User Profile](https://api.octoperf.com/doc/runtime/edit-scenario/img/advanced-scenario-graph-mouse-over.png "Edit User Profile")

This will allow you to **Edit** all the following settings:

| Setting                                        | Description | Example |
| ------------------------------------------------|-------------|-------------- |
| [VU](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/virtual-user/)        | Defines the virtual user profile attached to this userload. | Buyer |
| [Location](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/location/)      | Geo location where the virtual users are running. It can be a Cloud or On-Premise location. | EU West (Ireland) |
| [Strategy](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/user-load/) | Lets you define user load strategy (number of concurrent users and duration). | 1000 vus, 1h |
| [Name](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/options/name/)     | Change the display name of this user profile. | Buyer in Ireland |
| [Device](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/options/device/) | Defines the virtual user's browser settings (like cookies and cache management) and the network simulation settings. | As Recorded |
| [DNS](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/options/dns/)       | Domain Name System settings. | Clear cache OFF |
| [JMeter](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/options/jmeter/) | JMeter runtime properties and JMeter Test Logs file generation settings. | OFF |
| [Memory](https://api.octoperf.com/doc/runtime/edit-scenario/edit-user-profile/options/memory/) | Memory override settings. | default |

### Apply changes

This option is available from inside the profile edition screen:

![user profile apply to all](https://api.octoperf.com/doc/runtime/edit-scenario/img/user-profile-apply-to-all.png "user profile apply to all")

It allows you to apply configurations from one profile to others. To apply it to several profiles, select them and use the drop down menu under **Target user profiles**:

![user-profile-apply-changes-dialog.png](https://api.octoperf.com/doc/runtime/edit-scenario/img/user-profile-apply-changes-dialog.png)


![user-profile-apply-changes-dialog-source-parts.png](https://api.octoperf.com/doc/runtime/edit-scenario/img/user-profile-apply-changes-dialog-source-parts.png){ align=right }

The replacement can be done on all of the sub-sections of the user profile. The default option depends on which tab of the user profile was opened when you clicked on apply all. But you can click the green plus button to add any other to the list.

!!! warning
    **This operation cannot be undone**. If you are unsure, make a duplicate copy of your entire runtime profile first.

## Scenario check

Each time you save the scenario, OctoPerf runs the [scenario check](https://api.octoperf.com/doc/runtime/edit-scenario/scenario-check/) on every user profile. As in a [simple scenario](https://api.octoperf.com/doc/runtime/edit-scenario/#scenario-check), the **Scenario Check** panel at the bottom of the screen lists the problems, and a line next to the scenario name counts them by severity: a click on a count opens the panel on them.

![Problems of a user profile](https://api.octoperf.com/doc/runtime/edit-scenario/img/scenario-check-profiles.png "Problems of a user profile")

The problems also show on the user profiles:

- In the status column of the user profiles list, and left of the profile name in each profile tab, an icon: its tooltip counts the problems of that profile, and a click opens the panel on them, with a **This profile / Whole scenario** toggle. A user profile with no problem shows a discreet check mark,
- In a profile tab, an icon on the header of each of the four steps where a problem is fixed, and on the **Integrations & Automation** step of the scenario overview: a click opens the panel on the problems of that step, with a **This step / Whole scenario** toggle.

![Problems on the steps of a user profile](https://api.octoperf.com/doc/runtime/edit-scenario/img/scenario-check-profile-steps.png "Problems on the steps of a user profile")

**Fix it** opens the tab of the user profile on the step to change, or the provider, the server, the Virtual User or the subscriptions at fault.

The check also compares the user profiles with each other: it warns about [identical user profiles](https://api.octoperf.com/doc/runtime/edit-scenario/scenario-check/#profile-duplicated) and [user profiles that share a name](https://api.octoperf.com/doc/runtime/edit-scenario/scenario-check/#profile-name-duplicated), and tells you when [two user profiles could be merged](https://api.octoperf.com/doc/runtime/edit-scenario/scenario-check/#profile-mergeable).

!!! info
    A user profile whose form is invalid shows its invalid icon left of its name instead.

## Launch test

![launch-test](https://api.octoperf.com/doc/runtime/edit-scenario/img/launch-test.png){ align=left }

A simple click on the **Launch test** button will open a window with the [test starting wizard](https://api.octoperf.com/doc/runtime/edit-scenario/launch-test/).
