I need to use the Variable group in the azure pipeline that links to Azure Key Vault secret. The secret will be used to connect to a sql database.
Is there a way th
Since there no such option or checkbox in task of pipeline to directly achieve pass variable value to .jmx file, you can use the Replace token task to achieve the Parameter value replaced.
.jmx file which has
received the value), then specify the target files.jmx file with the format #{parameter name}#:Note: The parameter name which defined in the .jmx file should same with the variable name which in Azure key Vault. Otherwise, the parameter could not get the value from variable.
This is my source files which exists in my agent locally, you can see that the value was passed successfully:
Using linux sed:
Replace a known token variable in file.jmx with 'sed' as follows: In .jmx add a known token to be replaced as: %SERVER_NAME% Replace your token with an environment variable
- script: |
echo "Replace Servername parameter in file.jmx with $ sed "
sed 's/%SERVER_NAME%/server.com/g' file.jmx > new.jmx
# or replace with a global variable
sed 's/%SERVER_NAME%/'$(SERVER_NAME)'/g' file.jmx > new.jmx
Replacing with sed a value in .jmx
Using Azure variables:
In file.jmx add your Azure global or pipeline local variables, on this case I add the user_name. In jMeter I suggest add a Config Element > Used Defined Variables and add a variable as:
Name | Value
user_name | ${__groovy( System.getenv("USER_NAME") )}
In case you are passing secret password add the reference in the variables by using the Property option as
Name | Value
user_password | ${__P(USER_PASSWORD)}
Set your variable locally on jMeter > bin path as
set USER_NAME=rmd_test_4
In your jMeter requests, you should use the variable ${user_name} and ${user_password}. Your Azure command should be the same as if you run them locally in your CLI as follows:
Locally: jmeter -n -t test_flow.jmx -JUSER_PASSWORD=abc123
Azure: jmeter -n -t test_flow.jmx -Juser_pwd=$(RMD_TEST_PASS)
I hope this may help