krogold
6 years agoRegular Contributor
Cannot change request's username and password dynamically
Hello,
I'm trying to change my environment dynamically. I thought I managed to do it as it works as far as endpoint is concerned, but it does not work when I want to change credentials.
currently I'm doing the following :
project = testRunner.testCase.testSuite.project
// parse all the REST requests
// updating endpoint and credentials require to modify only once
found = false
project.testSuites.find(){
ts ->
ts.getValue().getTestCaseList().find(){
tc ->
tc.getTestStepList().find(){
step ->
//log.info step.config.type
if ((tc.name.contains("/m2m/fim/items"))&&( step.config.type == "restrequest"))
{
current_endpoint = step.getPropertyValue("endpoint")
// update environment if it is not the one expected
if (current_endpoint != basic_box_endpoint)
{
step.setPropertyValue("endpoint", basic_box_endpoint)So far this works, my requests point to the correct endpoint, but when it comes to update the credentials it does not work
if( (basic_box_username == "")||(basic_box_password == ""))
{
msg = "the current Username and/or Password have not been set for environment $basic_box_endpoint"
testRunner.fail(msg)
log.error msg
}
else
{
step.setPropertyValue("Username", basic_box_username)
step.setPropertyValue("Password", basic_box_password)
log.info "updated environment to $basic_box_endpoint"
}
}I tried a different approach, and made some tests but it seems that it is not possible ot update credentials this way, am I wrong ?
current_endpoint = step.getPropertyValue("endpoint")
log.info current_endpoint
log.info "------------------ http req " + step.getHttpRequest().username
log.info "username ? " + step.getHttpRequest().getUsername() => admin
step.getHttpRequest().setUsername("test")
log.info "username ? " + step.getHttpRequest().getUsername() => admin ??or maybe there is a particular way to do it ?
thank you
If you use Auth profiles, you can change credentials as it is described in this article: