提取接口返回值
當返回值是返回JSON時
1.
let json = JSON.parse(responseBody); // responseBody是包含整個返回內容的字符串
提取某字段的值: let foobar = json.foo.bar[0].foobar; // 假設結構為 {"foo": {"bar": [{"foobar": 1}, {"baz": 2}]}}
想用在自動化測試可以多寫點: let json; try { json = JSON.parse(responseBody); } catch (err) { tests['Expect response body to be valid JSON'] = false; tests[`Response body: ${responseBody}`] = true; console.error(err); }
當返回值是返回HTML時
方法一:用正則表達式匹配
let foo = responseBody.match(/foo/g); // g 全局 i 不分大小寫 m 多行 tests['blahblahblah'] = foo[0] === 'bar'; // 正則里包含變量時: let foo = 'xxx'; let bar = responseBody.match(new RegExp(`^${foo}.*$`, 'g');
方法二(比較笨拙)
用CheerioJS庫(可以用jQuery語法): const $ = cheerio.load(responseBody); $.html() // 整個網頁 $('title').text(); // <title>標簽里的文字