Postman: How to extract value from html response and pass it on to next request in postman

扶醉桌前 提交于 2019-12-10 11:56:16

问题


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!


回答1:


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())

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




回答2:


Assuming you don't have any " marks in your second field, this will work:

\\"second\\":\\"(.*?)\\",

example: https://regex101.com/r/yl8Z6M/1

If you do, then this falls outside the scope of regex and is a context-free grammar that you would need to parse in another fashion




回答3:


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.




回答4:


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);}


来源:https://stackoverflow.com/questions/51919983/postman-how-to-extract-value-from-html-response-and-pass-it-on-to-next-request

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!