Customizing Workloads: Extending the Login VSI and Login PI scripting language
When you want to customize workloads, the workload scripting language for Login VSI and Login PI already contain a lot of common pre-defined variables to help you to do so (a full list of variables can be found in our documentation). But if a situation requires functionality that isn’t available in the existing scripting language, then the workload scripting language can be easily extended with additional functionality. In this blog post I will explain how to do this.
To extend the functionality of the scripting language the following is needed:
- An external script or program that can perform the actions required. In this example I am using an external program that sends text from a specific column in a CSV file to the application that is currently active. Scripts can also be used.
- A basic understanding of scripting and/or the workload scripting language used by Login VSI and Login PI (though this blog focuses on Login VSI).
The way to extend the scripting language is by using VSI_ShellExecuteWait(). ShellExecuteWait simply executes an external file or program and waits until the program (associated with the file) exits.
Placing the files
To make the script or program that is executed by ShellExecuteWait easily accessible, place it in the VSIshare under _VSI_Binaries > Target. This folder will be copied to the temp directory when the Login VSI user logs on. By placing the file in the target folder there is no contention for access to the program (or script) during the test.
Making workload changes
In the workload add VS_ShellExecuteWait("logname","path to external program or script", "command line parameters").
In my example that is:
VSI_ShellExecuteWait("ExtendExample", "%temp%\vsi\runtime\typefromcsv.exe","1 \\win-32tlo3go24m\VSIShare4\users.csv Username 1")
The test it looks like this when running. I have enabled debugging so that the workload line currently being executed is visible. Do you want to debug Login PI workloads? This blog explains how to enable debugging for Login PI.
The CSV file looks like this:
This example is a fairly simple program that reads from a CSV file and sends those keystrokes to the currently active application. I have also used the same technique to, for example, find images on the screen, automate Google Chrome and complete conditional tasks. As you can see, it’s pretty straightforward to extend the Login VSI and Login PI scripting language using external scripts or programs. This allows the scripting language to handle any task.