ContributionsMost RecentMost LikesSolutionsRe: JSON response Contains HTML content , Assert on the content I have a html report displayed in message tag like below, I was hoping to parse it and be able to go traverse and assert on that like //td[4] .contains "James" Hoping to understand of there is any way to do that "message" : "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'> <HTML xmlns='http://www.w3.org/1999/xhtml' > <META http-equiv='Content-Type' content='text/html; charset=iso-8859-1'> <HEAD> <style type='text/css'> .BODY { FONT-FAMILY: Arial; FONT-SIZE: 12px; } .TABLE { FONT-FAMILY: Arial; FONT-SIZE: 12px; text-align : center; vertical-align : middle; } .TD { FONT-FAMILY: Arial; FONT-SIZE: 12px; } .tdpurple { Background-COLOR: #330066; FONT-FAMILY: Arial; FONT-SIZE: 11px; TEXT-DECORATION: none; } .copyright { FONT-FAMILY: Arial; FONT-SIZE: 10px; vertical-align : bottom; text-align : center; } .nav_blackbar { COLOR: #FFFFFF; FONT-FAMILY: Arial; FONT-SIZE: 11px; TEXT-DECORATION: none; } A.nav_blackbar:hover { COLOR: #ff9933; FONT-FAMILY: Arial; FONT-SIZE: 11px; TEXT-DECORATION: none; } .nav_pinkbar { COLOR: #330066; FONT-FAMILY: Arial; FONT-SIZE: 11px; TEXT-DECORATION: none; } A.nav_pinkbar:hover { COLOR: #ff9933; FONT-FAMILY: Arial; FONT-SIZE: 11px; TEXT-DECORATION: none; } .nav_greenbar { COLOR: #000000; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px; TEXT-DECORATION: none; } .white { COLOR: #FFFFFF; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 10px; TEXT-DECORATION: none; } .nav_footer { COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px; TEXT-DECORATION: none; } A.nav_footer:hover { COLOR: #99cc00; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px; TEXT-DECORATION: none; } .nav_leftside { COLOR: #0000ff; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; TEXT-DECORATION: underline; } A.nav_leftside:hover { COLOR: #ff0000; FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; } .current_date { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 9px; text-align : right; } .content_group_name { FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 12px; FONT-WEIGHT: bold; } .content_headergroup_name { FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 16px; FONT-WEIGHT: bold; } .backtotop_link { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 9px; } .bold { font-weight:bold; } .gray{ color:gray; font-weight:bold; } INPUT.button1 { font-weight: normal; text-align: center; width:110px; } INPUT.button2 { font-weight: normal; text-align: center; width:200px; } INPUT.button3 { font-weight: normal; text-align: center; width:220px; } INPUT.text30 { width: 30px; } INPUT.text40 { width: 40px; } INPUT.text50 { width: 50px; } INPUT.text110 { width: 110px; } INPUT.text200 { width: 200px; } INPUT.text300 { width: 300px; } .red{ color:red; } .small { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-variant: normal; text-align: center; } .smallbold { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-weight: bold; text-align: center; } .smaller { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 8.0pt; font-variant: normal; text-align: center; } TABLE.gray{ background-color: #E5E5E5; } TD, .TableData {color: black; font-family:Arial, Helvetica, sans-serif; font-size: 10.0pt; font-variant: normal; font-weight: normal; text-align: left; } TD.small{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-variant: normal; text-align: center; } TD.smaller{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 8.0pt; font-variant: normal; text-align: center; } TD.smallest{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 7.0pt; font-variant: normal; text-align: center; } TH{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 10.0pt; font-variant: normal; font-weight: bold; text-align: center; } TH.small { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-variant: normal; font-weight: bold; text-align: center; } TH.smaller { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 8.0pt; font-variant: normal; font-weight: bold; text-align: center; } TH.smallest { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 7.0pt; font-variant: normal; font-weight: bold; text-align: center; } .rightalign{ text-align: right; } .lalign{ text-align: left; } .centrealign{ text-align: center; } .href{ COLOR: #330066; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 12px; TEXT-DECORATION: none; } A.href:hover{ COLOR: Red; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 12px; TEXT-DECORATION: none; } .greenback{ background : #99CC00; } .blackback{ background : #000000; } .darkpurple{ background : #330066; } .PageHeader{ FONT-FAMILY: Arial, Helvetica, sans-serif; FONT-SIZE: 19px; FONT-WEIGHT: bold; } .smallleft{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-variant: normal; text-align: left; } .smallboldleft{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9.0pt; font-variant: normal; font-weight: bold; text-align: left; } .smallerboldleft { color: black; font-family:Arial, Helvetica, sans-serif; font-size: 8.0pt; font-variant: normal; font-weight: bold; text-align: left; } .smallerleft{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 9pt; font-variant: normal; text-align: left; } .subheading{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 10.0pt; font-variant: normal; font-weight: bold; text-align: left; } .redsubheading{ color: red; font-family:Arial, Helvetica, sans-serif; font-size: 12.0pt; font-variant: normal; font-weight: bold; text-align: left; } .errorname{ text-align : center; text-decoration : none; font-size : 18px; color : Red; } .chexheading{ color: black; font-family:Arial, Helvetica, sans-serif; font-size: 10.0pt; font-variant: normal; text-align: right; } .errordesc{ text-align : center; text-decoration : none; font-size : 14px; color : Red; } .whiteback { background-color: #FFFFFF; } .H1White { font-size: .90em; font-family: Arial, Helvetica, sans-serif; color: #ffffff; font-weight: bold; } .H1Gray { font-size: .90em; font-family: Arial, Helvetica, sans-serif; color: #cccccc; font-weight: bold; } .textsecondary { FONT-SIZE: 10px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; } </style> </HEAD> <br><table align='center' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr id='TOP'>&</tr> <tr> <td class='subheading'>Consumer Information (As Entered)</td> <td>&</td></tr> <tr><td bgcolor='#000000' height='1' colspan='2'></td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr> <td class='smallerboldleft' width='50%'>&&&JAMES MMAUVE</td> <td class='smallerboldleft' width='*%'>SSN/ITIN:&666-06-6294</td> </tr> <tr><td class='smallerboldleft' width='50%'>&&&1295 HEXAGON RD</td> <td class='smallerboldleft' width='*%'>DOB:&12/20/1956</td> </tr> <tr> <td class='smallerboldleft'>&&&OZARK,&AL&36360</td> <td class='smallerboldleft' width='*%'>&</td> </tr> <tr> <td class='smallerboldleft' width='50%'>&&&</td> <td class='smallerboldleft' width='*%'>&</td> </tr> <tr> <td colspan='2'>&</td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'><tr> <td class='smallerboldleft' width='10%' nowrap>&&&Home Phone:&</td> <td class='smallerboldleft' width='*' align='left'>(334)445-5678</td> <td width='*'>&</td></tr><tr> <td colspan='2'>&</td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'><tr> <td class='smallerboldleft' width='13%' nowrap>&&&Country: </td> <td class='smallerboldleft'>&&United States</td></tr></table> <table align='center' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr>&</tr> <tr> <td class='subheading'>Account Actions </td> <td>&</td></tr> <tr><td bgcolor='#000000' height='1' colspan='2'></td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr><td width='10%' class='smallerboldleft'>&&&Action:</td> <td width='*' class='smallerleft'>ACCEPT</td> <td class='smallerleft'>&</td></tr> <tr><td colspan='3'>&</td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr><td width='25%' class='smallerboldleft'>&&&Recommended Actions:</td> <td width='*' class='smallerleft'>OPEN ACCOUNT </td></tr> </table> <p></p> <p></p> <p></p> <table align='center' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr>&</tr> <tr> <td class='subheading'>QualiFile® Detail</td> <td>&</td></tr> <tr><td bgcolor='#000000' height='1' colspan='2'></td></tr> </table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr ><td width='45%'>&</td><td width='10%' class='smallerboldleft'><u>Code</u></td><td width='45%' class='smallerboldleft'><u>Text</u></td></tr></table> <table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr ><td width='20%' class='smallerboldleft'>&&&QualiFile Score:</td><td width='10%' class='smallerleft'>9999</td><td width='13%' class='smallerboldleft'>Reasons:</td><td valign='top' width='10%' class='smallerleft'> Z3</td><td valign='top' width='45%' class='smallerleft'>INSUFFICIENT DATA FOUND </td></tr> </table><table align='center' class='gray' width='98%' border='0' cellpadding='0' cellspacing='0'> <tr ><td colspan='2'>&</td></tr> <tr > <td align='left' colspan='2'> </td></tr><tr > <td align='left'></td> </tr></table> <p></p><table cellspacing='0' cellpadding='0' border='1' BORDERCOLOR='gray' width='98%' align='center'> <tr><td class='subheading' width='30%'>&Non FCRA</td></tr> <tr><td height='1' bgcolor='#000000'></td></tr> <tr><td><table cellspacing='0' cellpadding='0' border='0' width='100%' align='center'> <tr><td><tab>.......</HTML> JSON response Contains HTML content , Assert on the content I am trying to parse a response JSON tag containing HTML content. I have to write groovy script to assert on the value in response with whats in html. I am failing parsing that, code here import groovy.util.XmlSlurper; def response = context.expand( '${REST Request#Response#$[\'data\'][\'meta\'][\'fields\'][0][\'message\']}' ).toString(); def slurper = new XmlSlurper(); def xmldata = slurper.parseText response; SolvedRe: I see same testcase result twice by name in report of jenkins Is there any known solution , am trying to fix this badly Re: groovy : context expand variable parametrize user defined variable @avidCoder,@nmrao,@msiadak I have a first request that has the value 999999999 in a request tag In my second request i have below value. "reportDownloadUrls" : { "999999999" : "/credit-report-download/1854/df0d2929" } To be able to parametrize 999999999 value i have below groovy.. and got stuck there, trying to pass variable instead of the number sicne the number can change def URL = context.expand( '${2nd call#Response#$[\'data\'][\'resource\'][\'reportDownloadUrls\'][\'999999999\']}' ) Re: Groovy: Changing resource path for diff environments using readyapi 2.6.0 We have differnet environments, like www.qa.google.com\abcd\efgh www.google.com\abcd\efgh\ijkl\mnop To parametrize this on different environments, we create project custom property and parametrize using that in different environments, www.google.com\{templateproperty} using the template property in project. Then we can change using environments, and changing endpoint for different environments, www.google.com ,www.qa.google.com Got this answer from smartbear support , by emailing support tech. Thanks all for help, creating screenshot of my solution. Groovy: Changing resource path for diff environments using readyapi 2.6.0 I have 3 environments, two have different endpoint , but same resource path , ao am using environments for this But 3rd environemnt has a different endpoint and different resource path. Please help with some groovy script to update thie resource path based on environment name. I am hoping to add it in events, projectRunListener.beforeRun SolvedRe: groovy : context expand variable parametrize user defined variable the reportdownloadUrls[99999999] is the value am trying to extract. but 99999999 is from 1st request response am trying to take it in variable and pass it to this value, but not sure how to pass it ?? def URL = context.expand( '${2nd call#Response#$[\'data\'][\'resource\'][\'reportDownloadUrls\'][\'999999999\']}' ) I wanna parametrize the 999999999 part Re: groovy : context expand variable parametrize user defined variable The part of URL in the second call response is based on the value sent in first call So am trying to parametrize the value for URL using the value from first call REST-POST-application/octet-stream - save to file - send to next request I am trying to save the response from post req to a file in file system, the response is in octet- stream I am using groovy to write raw response to file, but raw response has headers, I want only messy data from response in a file. I will passing this file to next request. any help is appreciated. Solvedgroovy : context expand variable parametrize user defined variable I am trying to pass variable in to context.expand to get data from response, having trouble with this, any quick response is appreciated def aaa = context.expand( '${1st Call#Response#$[\'data\'][\'res\'][\'b\'][0][\'aaa\']}' ) def response = context.expand( '${2nd call#Response#$[\'data\'][\'res\'][\'reportDownloadUrls\'][\'547851482\']}' ) I want to pass aaa variable instead of547851482 I am writing this in groovy script test step, help debug this