Question:
I have two test environments plus production and I need to run automation against them. What is the easiest way to configure your test automation to run against different site?
Answer:
Create a configuration file for storing information such as environmental information and user information. This way you only have one place to update, rather than multiple. I like to use JSON files for this purpose.
Example (JSON):
{
Environment:
{
"QA-1": "http://qa1.test.com/ ",
"QA-2": "http://qa2.test.com/ ",
"PROD": "http://www.test.com/ "
},
Account:
{
"username": "test_user",
"password": "password"
}
}
Example (Code):
$env = ENV['LOC']<
file = File.read('config.json')
$data_hash = JSON.parse(file)
testEnv = $data_hash['Environments'][$env]
ENV['base_url'] = testEnv
ENV['user_email'] = $data_hash['Accounts']['username']
ENV['user_password'] = $data_hash['Accounts']['password']
Note that ENV[] is a way of making a global variable that will remain constant throughout your execution of tests.


One Reply to “Code Snippet: Using a config file for Ruby Automation ”