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:
make-4.x-y-without-guile-w32-bin.zip
(make sure to get the version without guile).Git\mingw64\
directory (the default location of mingw64 is C:\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:
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/lib@v1.2.3
: Get a particular version.go mod tidy
to remove any unused modules.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:
read:packages
here.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
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
gopherciser.code-snippets
from the docs/vscode
folder into the folder .vscode
in the repo. This works on any OS.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:
scenario
folder with the name of the new action, e.g. dummy.go
for the action dummy
.action
and press enter.