进行接口测试的时候,返回的结果是 html 页面,想不好怎么验证该结果的正确性,我本来是想:
我个人觉得返回的 html 页面,最重要的就是要保证页面上的链接都能正常跳转,显示的元素值是正确的,就 ok 了
文字匹配不行吗?
是的
建议检查标准重要标签
检查页面所有链接有效就可以了
实际的交互 ,功能性测试就可以
基本思路,先把期望结果保存成文件,把返回的结果跟跟期望结果对比,如果返回的 html 比较简单,直接当成一个字符串对比就好了,次次可能会变化的部分想办法用正则表达式去除。如果 html 比较复杂,比如包含大量 js 或者 css 代码,可以用一些开源的操作 dom 的库只把有用的节点取出来校验。我用 node 做有两个经常用到的库 cheerio 和 jsdom,其他语言去 Github 搜一下。又或者使用 XML 的一些方法比如 xpath 取有用的节点校验。
好的,谢谢
引用
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
然后转换
Document doc = Jsoup.parse(rtnHtml)
再解析
String destId = doc.select("a[class=cancelProp]").get(0).attr("destid");
String timePriceId=doc.select("input#timePriceId").attr("value");
接口返回的格式好像没有 html 吧,你们没有做前后端分离吧
顶 11 楼的,用 jsoup 直接就可以解决了,.attr 的方法可以取到你想要的元素的各种属性
btw,jsoup 也是爬虫利器
#13 楼 @hjhjhghghg
#11 楼 @success
我就是这么干的,我只是再想,怎么样去校验比较好,算这个页面是正常的,关键是校验正确性,检查哪几项比较好,嘻嘻
最近刚遇到这个 python 的框架下用 lxml 和 xpath 轻松解决
—— 来自 TesterHome 官方 安卓客户端