乐趣区

ApiPost如何验证返回数据中是否包含某关键字字符串

ApiPost 如何验证返回数据中是否包含某关键字 / 字符串?使用 ApiPost 的测试校验(断言)可以很方便的实现这个目标。

看本文前,建议先读以下 apipost 官方的文档:https://doc.apipost.cn/839e6acdc7341451(ApiPost 如何使用测试校验(断言))

实现

假如我们的返回结果是如下结构:

{
    "errcode": 0,
    "errstr": "success",
    "post": {"url": "https://myywt.ar/kzzc"},
    "get": [],
    "request": {"url": "https://myywt.ar/kzzc"},
    "put": "url=https%3A%2F%2Fmyywt.ar%2Fkzzc",
    "header": {
        "Host": "echo.apipost.cn",
        "Connection": "keep-alive",
        "Content-Length": "33",
        "Accept": "application/json, text/javascript, */*; q=0.01",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "zh-CN",
        "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
        "Cookie": "PHPSESSID=6bvaf84un0c7j24bksm0htsiob",
        "Origin": "https://echo.apipost.cn",
        "User-Agent": "ApiPOST Runtime +https://www.apipost.cn"
    }
}

我想实现校验返回 json 的 post.url 字段是否含有https:// 字符串。怎么写断言呢?

其实 apipost 断言的语法完全 100 兼容 js 语法,js 怎么写,我们就怎么写就行了:

apt.assert('response.json.post.url.indexOf("https://") > -1');

其中,response.json.post.url 指的是返回 json 的 post.url 字段(字符串类型),indexOf("https://") 代表该字符串是否含有https://indexOf() 是 javascript 的一个内置方法,即:

JavaScript indexOf() 的定义和用法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

更多预(后)执行脚本常用方法请参考:https://mp.apipost.cn/a/c04c8213f3e78865

退出移动版