Gopherciser is used for load testing (that is, stress testing and performance measurement) in Qlik Sense® Enterprise deployments. It is based on enigma-go, which is a library for communication with the Qlik® Associative Engine.
Gopherciser can run standalone, but is also included in the Qlik Sense Enterprise Scalability Tools (QSEST), which are available for download here.
More information on Gopherciser is available here:
Gopherciser requires a Golang 1.13 build environment or later.
Note: Since Gopherciser uses Go modules, do not install tools using the go get
command while inside the Gopherciser repository.
To install tools, use the cd
command to leave the Gopherciser repository directory and then use go get
.
If you use Git Bash, but do not have make.exe
installed, do the following to install it:
- Go to ezwinports.
- Download
make-4.x-y-without-guile-w32-bin.zip
(make sure to get the version without guile). - Extract the ZIP file.
- Copy the contents to the
Git\mingw64\
directory (the default location of mingw64 isC:\Program Files\Git\mingw64
), but do not overwrite or replace any existing files.
The documentation can be generated from json with:
go generate
For more information, see Generating Gopherciser documentation.
You can build Gopherciser locally using the make
command:
make build
This produces Linux, Darwin and Microsoft Windows binaries in the build folder.
make quickbuild
This leaves the build folders as-is before building (that is, no cleaning is done etc.) and produces a build for the local operating system only.
To do a cleaning before building, run make clean
.
You can run tests using the make
command:
make test
This runs all normal tests.
make alltests
This runs all tests with verbose output and without relying on cache.
Do the following:
- Update the modules:
go get -u
: Update the modules to the most recent minor or patch version.go get -u=patch
: Update the modules to the latest patch for minor version.go get github.com/some/[email protected]
: Get a particular version.
- Run
go mod tidy
to remove any unused modules. - Run
go mod verify
to add packages needed for test packages etc.
Unfortunately, the GitHub packages Docker repo is not very "public" (see this community thread). This means a Docker login is needed before the images can be pulled.
Do the following:
- Create a new token with the scope
read:packages
here. - Save your token to, for example, a file (or use an environment variable or similar).
- Log in with Docker to
docker.pkg.github.com
.
Using a token stored in the file github.token:
docker login -u yourgithubusername --password=$(cat github.token) docker.pkg.github.com
Using the token in the environmental variable GITHUB_TOKEN:
docker login -u yourgithubusername --password=$GITHUB_TOKEN docker.pkg.github.com
- Pull the Docker image.
The latest master version:
docker pull docker.pkg.github.com/qlik-oss/gopherciser/gopherciser:latest
Specific released version:
docker pull docker.pkg.github.com/qlik-oss/gopherciser/gopherciser:0.4.10
To use the image in Kubernetes (for example, to perform executions as part of a Kubernetes job), credentials for the GitHub package registry need to be added the same way a private registry is used, see documentation here.
In the docs/vscode
folder there is a file called gopherciser.code-snippets
containing snippets which can be used with VSCode.
Snippets can be "installed" 2 diffrent ways
- Copy the file
gopherciser.code-snippets
from thedocs/vscode
folder into the folder.vscode
in the repo. This works on any OS. - On *nix systems it's recommended to create a symbolic link instead of copying the file to have it automatically be kept up to date. In the main repo folder create the symbolic link with the command
ln -s ../docs/vscode/gopherciser.code-snippets .vscode/gopherciser.code-snippets
.
Start writing the name of the snippet to and press enter.
action
: Adds skeleton of a scenario action. This should be used the following way:
- Create an empty file in
scenario
folder with the name of the new action, e.g.dummy.go
for the actiondummy
. - Start writing
action
and press enter. - Change the action struct name if necessary, then press tab to write a description.