Skip to main content

C++ Profiles

Each custom C++ virtual user (VU) contains multiple profiles. A profile lets you:

  • Set environment variables at runtime for each of the engine processes.
  • Specify any additional binaries that are required to build and execute the code in your custom VU.
  • Set command line options at compilation and runtime (Java only).

Expand a C++ custom VU in the Workspace tree, then click a profile to display the profile view:

The Default Profile

Each custom C++ VU contains a default profile and one or more runtime profiles. The selected runtime profile is determined by the version of Visual Studio chosen in the Compilers and IDEs preferences.

When you start a test, the selected runtime profile is merged with the default profile. Because settings in the default profile are automatically shared across all other runtime profiles, you can put common settings in the default profile.

note

If there is a clash, runtime profile settings take precedence over default profile settings.

So, for example, a C++ custom VU might be built with both the Visual Studio 2015 (vc14) and Visual Studio 2017 (vc15) compilers. As there might be different versions of some libraries for each of the compilers, these libraries should be placed in the appropriate runtime profile (intel.win32.vc14 and intel.win32.vc15 respectively). However, there might be other libraries where both compilers can use the same version; these libraries should be placed in the default profile.

Libraries and DLLs

For C++ custom VUs, you can specify any libraries and DLLs that are required to build or run your custom VU.

Click the AddButton Add button in the upper right corner of the C++ tab. In the Browse window that appears, select one or more .dll or .lib files.

note

For portability, .dll and .lib files that you add to the table are automatically copied to your workspace directory and can be found in the files/ folder. Therefore, when you export your workspace or move it to a different location, the .dll and .lib files remain with it. The paths listed in the table reflect the new location of the .dll and .lib files after copying.

For each file, there are three options available:

OptionDescription
Transfer to injectorThe file is transferred to each injector at the start of the test.
Link with library when buildingThe file is added to the list of libraries to link against in the Visual Studio project when you Build the Workspace
Load library at runtimeThe library is loaded by each engine process at the start of the test

Generally, library (.lib) files need to be linked with when building, whereas DLLs need to be transferred to the injectors, then loaded by each engine at runtime.

To remove a library from the list, select the library to be removed, then click the RemoveButton Remove button.

Environment Tab

This tab lets you provide any environment variables that you will need to access from your C++ custom VU scripts. Any environment variables specified in this area will be passed to the engine processes running on each injector.

  • Click the AddButton in the upper right corner of the Environment tab to add an environment variable.

To read more about the Environment tab and specifying environment variables, please see Setting Runtime Environment Variables.