Forum Discussion

soapash's avatar
soapash
Occasional Contributor
8 years ago
Solved

extracting a string starting from a known value

i have a string like below in my response.

 

https://metalTin.abcd.com/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews

 

 

I have already setup property transfer and am capturing the value in a variable.

def urlFromResponse = context.expand( '${#TestSuite#url_link}')

 

How do I extract the substring (everything after abcd.com)

"/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews"

 

 

Please note the value "https://metalTin.abcd.com" is always changing.

 

  • The URI class (https://docs.oracle.com/javase/7/docs/api/java/net/URI.html) can also be a more Java API centric option:

     

    def uri =  new URI('https://metalTin.abcd.com/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews')
    log.info uri.path
    log.info uri.query
    log.info uri.path+"?"+uri.query

    Logs:

    Tue Nov 22 10:16:16 GMT 2016:INFO:/dbname/dbname_WebUI/views/home/knownpage.aspx
    Tue Nov 22 10:16:16 GMT 2016:INFO:uniquecode=coNews&area=home&view=coNews
    Tue Nov 22 10:16:16 GMT 2016:INFO:/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews
    

2 Replies

  • Radford's avatar
    Radford
    Super Contributor

    I'm assuming that your string is always a URL, if so the following should work:

     

    def urlFromResponse = context.expand( '${#TestSuite#url_link}')
    def thirdSlashIndex = urlFromResponse.indexOf('/', 9)
    def partialString = urlFromResponse.substring(thirdSlashIndex)

     

    The indexOf looks for the first occurance a slash, from character 9 of your string, i.e. after the "https://".

    • rupert_anderson's avatar
      rupert_anderson
      Valued Contributor

      The URI class (https://docs.oracle.com/javase/7/docs/api/java/net/URI.html) can also be a more Java API centric option:

       

      def uri =  new URI('https://metalTin.abcd.com/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews')
      log.info uri.path
      log.info uri.query
      log.info uri.path+"?"+uri.query

      Logs:

      Tue Nov 22 10:16:16 GMT 2016:INFO:/dbname/dbname_WebUI/views/home/knownpage.aspx
      Tue Nov 22 10:16:16 GMT 2016:INFO:uniquecode=coNews&area=home&view=coNews
      Tue Nov 22 10:16:16 GMT 2016:INFO:/dbname/dbname_WebUI/views/home/knownpage.aspx?uniquecode=coNews&area=home&view=coNews