For local testing and development, you can use docker. See details in docker directory.
Before using perfrunner you should install the requirements listed in the requirements section. At a minimum you need
- Python 3.9
- virtualenv
- libcouchbase
- libcurl4-gnutls-dev
- libffi
- libsnappy
- libssl
You should be able to install both client and server system dependencies using the Ansible playbooks (namely, clients.yml and servers.yml).
ansible-playbook ${playbook} -i ${ini_file}
For instance:
ansible-playbook playbooks/servers.yml -i clusters/vesta.ini
First clone the perfrunner repo with the command below:
git clone https://github.com/couchbase/perfrunner.git
As some components are written in Go, make sure that perfrunner is placed inside $GOPATH/src. See also How to Write Go Code.
Once inside the perfrunner directory create a virtual environment for all of the perfrunner dependencies and install all of the dependencies so that you can run perfrunner:
make
env/bin/install -c ${cluster} -v ${version}
env/bin/cluster -c ${cluster} -t ${test_config}
For instance:
env/bin/install -c clusters/vesta.spec -v 4.5.0-2601
env/bin/cluster -c clusters/vesta.spec -t tests/comp_bucket_20M.test
env/bin/perfrunner -c ${cluster} -t ${test_config}
For instance:
env/bin/perfrunner -c clusters/vesta.spec -t tests/comp_bucket_20M.test
Overriding the test settings (space-separated section.option.value trios):
env/bin/perfrunner -c clusters/vesta.spec -t tests/comp_bucket_20M.test \
"load.size.512" "cluster.initial_nodes.3 4"
--verbose
flag enables Fabric logging.
With --remote
flag remote workers will be used as workload generators.
Just run the test target:
make test