Performance Testing and Engineering on macOS
Overview
Most web developers I know work on macOS or Linux laptops rather than Windows.
This has been an issue for traditional vendors offering Windows-only clients such as VuGen ( a part of the LoadRunner offering from MicroFocus, formerly Mercury and HP).
Vendors such as Tricentis Flood.io now provide cloud-based solutions partly because every laptop can have an internet browser.
NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.
TL;DR Summary
In 2018 MicroFocus delivered a way to do performance testing on macOS (and elsewhere) using cross-platform tools such as Node, Ruby, and Python.
TruWeb is not a client program like VuGen, but CLI programs and a JavaScript SDK installed as plugins in text editors (VS Code, Atom.io, JetBrains WebStorm, Eclipse).
TODO: Create Bash script to download, install, and configure TruWeb, then run a sample app using it. Then clean up as if it never happened. But the download would need to come from another place as a login is requested for downloading.
-
From the MicroFocus Marketplace, the macOS download is currently 54MB. There are also installers for Linux and Windows. After un-zip are two files:
- ProxyRecorder_2019.2.4.tar.gz un-tars to folder “truWebProxyRecorder” (containingaddonScripts in Python)
- TruWeb_2019.2.4.tar.gz un-tars to folder “TruWeb”
-
After un-tar, PROTIP: Create a TruWeb folder and move those folders there, then trash the zip and tar.gz files to save disk space.
Looking in the bin folder, we see that what makes TruWeb multi-platform is its use of Node.
Runs can be invoked from within the editor calling the TruWeb program after you run:
- Run-time settings are specified in the rts.yml.
- Arguments are in a separate user_args.json file.
- Parameters are specified in the parameters.yml file.
If you prefer a GUI for such files, the SDK is also within VuGen for Windows and StormRunner online.
TruWeb scripts are written in JavaScript. So NodeJs modules such as lodash can be loaded to make it easier to work with arrays, numbers, objects, strings, etc. Virtual Table Server functions are available. Several examples come with TruWeb.
QUESTION: What about Rendezvous points and IP address spoofing?
TruWeb scripts are generated from HAR files captured using the 3rd-party Fiddler, WireShark, or the OfflineGenerator program. PROTIP: Being an industry-standard, HAR files can be viewed by various utilities not from Micro Focus.
The OfflineGenerator is controlled by specifications in files generator_config.yml and correlation_rules.yml. Instead of “correlations”, TruWeb now has “Extractors”.
To capture HAR files, the provided (Ruby-based) proxy program provided uses default port 8156, as specified in the config.yml.
But you’ll have to get and install CA certificates.
Use the >TruWebUtils program to encrypt plain text.
-
For off-line reference, download the Help documentation (file TruWeb_2019.2.4_Help.zip) from here.
Double-Click on “TruWeb_Readme.htm” to read it in your browser.
Alternately, visit the TruWeb Help Center online at:
https://admhelp.microfocus.com/truweb/en/latest/help/Content/Resources/_TopNav/_TopNav_Home.htm
-
Download the helper files for your favorite text editor (Visual Studio Code).
- PROTIP: Trash the zip and tar.gz files to save disk space.
- Create a TruWeb folder and move expanded folders there.
-
Define a TRUWEB_PATH environment variable containing the location where TruWeb binaries are installed (for example, for Windows: C:\TruWeb). This allows integration of the standalone version of TruWeb into other tools (for example, Atom.io).
In MacOS, add in .bash_profile an export of the environment variable.
On Linux, define the environment variable in the .rc file relevant to your distribution home directory.
-
Watch this series of YouTube videos by the R&D Manager in Israel explain it all.
Configure Environment Variable TRUWEB_PATH with the TRUWEB installation folder.
This cartoon video presents a high-level summary.
-
Visit the vendor’s user community at
https://community.microfocus.com/t5/forums/searchpage/tab/message?filter=includeBlogs&q=truweb&collapse_discussion=true&include_blogs=true
Debug MicroFocus TruWeb script using Visual Studio Code March 6, 2019
https://community.microfocus.com/t5/LoadRunner-Performance-Center/TruWeb-Phase-2/ba-p/1677623
Wait, there’s more. Click one of these …
This article is one of a series about tuning and performance:
- Performance testing in the cloud era
- Perftest (Performance Testing and Engineering)
- Agile Performance Testing and Engineering
- Build load-balanced servers in AWS EC2 using CloudFormation
- JMeter in the cloud for distributed performance testing
- TruWeb performance testing on macOS and Linux clients
- JavaScript in LoadRunner
- LoadRunner Javascript coding
- LoadRunner 12.55 installation
- WebTours configuration in LoadRunner and others