The test plans in this directory can be used when user wants to run it on a custom network (a bigger network than a 4-node network).
The data that are specific to individual nodes (url
, port
, from
, and privateFor
) can be specified using a CSV file.
A sample CSV file will typically look like below
url,port,from,privateFor
localhost,22000,0xed9d02e382b34818e88b88a309c7fe71e65f419d,"QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc="
localhost,22006,0xcc71c7546429a13796cf1bf9228bff213e7ae9cc,"1iTZde/ndBHvzhcl7V68x44Vx7pl8nwx9LqnM/AfJUg="
And to execute tests
#!/bin/bash
#without infuxdb
jmeter -n -t deploy-contract-public-custom.jmx -Jthreads=2 -Jseconds=60
#with infuxdb
jmeter -n -t deploy-contract-public-custom.jmx -Jinfluxdburl=http://localhost:8086/write?db=telegraf -Jthreads=2 -Jseconds=60
The test will look for default vars.csv
file. However a custom filename can be used
#!/bin/bash
#without infuxdb
jmeter -n -t deploy-contract-private-custom.jmx -JvarsFile=someotherfile.csv -Jthreads=2 -Jseconds=60
#with infuxdb
jmeter -n -t deploy-contract-private-custom.jmx -JvarsFile=someotherfile.csv -Jinfluxdburl=http://localhost:8086/write?db=telegraf -Jthreads=2 -Jseconds=60
Note
-
The
privateFor
value should be the public key of the intended recipient of the transaction, NOT the public key of local Tessera node. i.e. If you want to send private transactions from node1 to node7, theprivateFor
value associated with node1 (same line in the CSV file) should be Tessera public key of node7. -
For public transactions,
privateFor
values will be ignored. -
The dataset given in CSV file will be shared across all threads. i.e. With the above test execution, thread1 will use the first variables set, thread2 will use the second line, and then recycle until it reaches test duration.
-
deploy-mixed-contract.jmx
has a similar usage however this test plan will deploy a mixed network of both public and private contracts. -
throughput
can be used to throttle the throughput of both types of contracts in mixed public/private contracts scenario.throughput.public
andthroughput.private
can be used to control number of transactions sent for each type of contract. i.e. If you want to limit the number of public contracts deployed to 100 per second and leave the private transactions being fired as fast as possible you can specify-Jthroughput.public=6000
(note the unit is per minute) -
influxdburl
: influxdb url for capturing metrics. Refer here on how to disable influxdb.