Example of running different user credentials for different runners
Quote from ljunggren on November 27, 2020, 7:30 pmIn some cases, when running parallel tests, it's useful to make sure concurrent users are always running with different user credentials. Typically, this is done by setting up separate user roles, such as "admin" and "user," and tying a "scope" and credentials to these roles.
There is a simpler case where no scope is needed. Let's say I want to run n parallel identical workers, and make sure these have different username and password. In this case, I can use the worker number as an index and load credentials dynamically at the beginning of the test.
Start by defining a credentials-file "$project.userList" with different username and passwords, like this.
username password Mats secret1 Wensheng secret2 James secret3You can now dynamically load username / password combinations using a Javascript action in the beginning of a test
$test.worker = $util.getCoopKey(); console.log("BZ-LOG: Worker #" + $test.worker); $test.username = $project.userList[$test.worker].username; $test.password = $project.userList[$test.worker].password; console.log("BZ-LOG: Username is " + $test.username); console.log("BZ-LOG: Password is " + $test.password);You can now generate a set of worker URLs and make sure you are using different credentials for the workers i.e.
Worker 0, username=Mats, reserved for IDE Worker 1, username=Wensheng, http://ai.boozang.com/extension?token=xxx&env=0&key=1#5f4927829535c45da9a140a2/master Worker 2, username=James, http://ai.boozang.com/extension?token=xxx&env=0&key=2#5f4927829535c45da9a140a2/master
In some cases, when running parallel tests, it's useful to make sure concurrent users are always running with different user credentials. Typically, this is done by setting up separate user roles, such as "admin" and "user," and tying a "scope" and credentials to these roles.
There is a simpler case where no scope is needed. Let's say I want to run n parallel identical workers, and make sure these have different username and password. In this case, I can use the worker number as an index and load credentials dynamically at the beginning of the test.
Start by defining a credentials-file "$project.userList" with different username and passwords, like this.
username password Mats secret1 Wensheng secret2 James secret3
You can now dynamically load username / password combinations using a Javascript action in the beginning of a test
$test.worker = $util.getCoopKey(); console.log("BZ-LOG: Worker #" + $test.worker); $test.username = $project.userList[$test.worker].username; $test.password = $project.userList[$test.worker].password; console.log("BZ-LOG: Username is " + $test.username); console.log("BZ-LOG: Password is " + $test.password);
You can now generate a set of worker URLs and make sure you are using different credentials for the workers i.e.
Worker 0, username=Mats, reserved for IDE Worker 1, username=Wensheng, http://ai.boozang.com/extension?token=xxx&env=0&key=1#5f4927829535c45da9a140a2/master Worker 2, username=James, http://ai.boozang.com/extension?token=xxx&env=0&key=2#5f4927829535c45da9a140a2/master