5

Example url: https://abc.xyz.com/m# HTML Response:

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
.
.
</head>
<body class="abc">        
.
.
.
<script>xab.start('{\"first\":\"123xyz\",\"second\":\"abc123\",\"third"..;</script>
</div>
</body>
</html>

In the above mentioned response i want to extract the value of the parameter second '("second\":\"abc123\")' from the response and pass it on to the next request.

It would be simpler if the response is JSON, but in the case this is HTML response.

I was able to do this on JMeter using Regex but having hard time to do it on Postman.

Thanks!

skyboyer
  • 15,149
  • 4
  • 41
  • 56
GreyndBlue
  • 254
  • 1
  • 2
  • 9

3 Answers3

12

You could look at using Cheerio to get the values, it's one of the built in modules within the Postman native application.

You could add something like this example, to extract the value from the HTML.

This is getting the value from the title html tag, of the jsonplaceholder page, then setting it as an environment variable:

const $ = cheerio.load(pm.response.text())

pm.test("it should return a title", () => { 
    pm.expect($('title').text()).to.not.be.empty 
})

pm.environment.set('title', $('title').text())

Postman_Cheerio

I'm sure you could use this to get the value you need from your example.

Danny Dainton
  • 15,673
  • 4
  • 40
  • 52
-1

Try to wrap the response through Json.parse and then splice this response using the splice method of JavaScript of substring whichever you feel comfortable.

After that save the same in a variable by setVariable method and then you can use it in another requests.

-1

my example how I get data from script tag in html response

const $ = cheerio.load(pm.response.text())
var script = ($('script').text().replace("window.__STATE__ = ",""));

var jsonData = JSON.parse(script);

var uid = pm.environment.get("uid");
if (jsonData.stared == uid) pm.environment.set('reactArticle', false);
else {pm.environment.set('reactArticle', true);}
Nguyen
  • 1
  • 1