运行测试时邮递员错误:JSONError: Unexpected token u in JSON at position 0

Posted

技术标签:

【中文标题】运行测试时邮递员错误:JSONError: Unexpected token u in JSON at position 0【英文标题】:Postman error when running tests: JSONError: Unexpected token u in JSON at position 0 【发布时间】:2019-12-05 23:24:00 【问题描述】:

重现错误的步骤:https://blog.getpostman.com/2016/11/09/generate-spotify-playlists-using-a-postman-collection/

我一直在按照上述教程向 Spotify 发送 API 请求。我成功获得了授权码,但是,尽管正确遵循了教程,但 Postman 在为 Spotify 运行集合时出​​现错误。

通过查看控制台,如下所示的行有错误: 错误消息读取 XPath runner/search 已经存在 错误运行脚本:JSONError |位置 0 处 JSON 中的意外标记 u 执行获取艺术家热门曲目的预请求脚本时出错:JSONError: Unexpected token u in JSON at position 0 另外两个人遇到了这个问题,但他们从未得到答复。任何想法如何解决这一问题?我是 API 请求的新手,因此非常感谢任何帮助!

验证的预请求脚本:

var client_credentials = (environment.client_id + ':' + environment.client_secret).encodeBase64();
postman.setEnvironmentVariable("client_credentials", client_credentials);

environment.cloned_environment && (delete environment.cloned_environment);
var environmentObjClone = _.cloneDeep(environment);
postman.setEnvironmentVariable("cloned_environment", JSON.stringify(environmentObjClone));

艺术家的预请求脚本:

 try 
    var artist_id = _.sample(JSON.parse(environment.artists));
    postman.setEnvironmentVariable("id", artist_id);

catch (e) 
    console.log(e);
    throw false;

JSON:

  
        "id": "b2b45667-7ec9-4d5d-9e38-c976d181c2bd",
        "name": "SpotifyGenV1.template1",
        "values": [
            
                "key": "artists",
                "value": "[“2DaxqgrOhkeH0fpeiQq2f4”, “2ooIqOf4X2uz4mMptXCtie”]",
                "enabled": true
            ,
            
                "key": "N",
                "value": "5",
                "enabled": true
            ,
            
                "key": "user_id",
                "value": "marcz2007",
                "enabled": true
            ,
            
                "key": "country_code",
                "value": "US",
                "enabled": true
            ,
            
                "key": "client_id",
                "value": "744a1316f9374a27b7ec9bc7eabb0f92",
                "enabled": true
            ,
            
                "key": "client_secret",
                "value": "---secret--",
                "enabled": true
            ,
            
                "key": "refresh_token",
                "value": "AQAf0rvuNBo23wiIiyWQRfavFvx7JdTjvGYLufOBAM1ABtvXWvfqqo_I0IfhFAelTPIh8w2cscS4C1k8QLKOc1rqn18CjKJbmczfu1X-EfEFaWjcDbIPYGCIGZmbNZv5DgiJ9w",
                "enabled": true
            ,
            
                "key": "client_credentials",
                "value": "NzQ0YTEzMTZmOTM3NGEyN2I3ZWM5YmM3ZWFiYjBmOTI6M2ZiNWM2MDBkODRhNDU1ODhmZTNiZWM4MTI5N2E4M2Y=",
                "enabled": true
            ,
            
                "key": "cloned_environment",
                "value": "\"artists\":\"[“2DaxqgrOhkeH0fpeiQq2f4”, “2ooIqOf4X2uz4mMptXCtie”]\",\"N\":\"5\",\"user_id\":\"marcz2007\",\"country_code\":\"US\",\"client_id\":\"744a1316f9374a27b7ec9bc7eabb0f92\",\"client_secret\":\"3fb5c600d84a45588fe3bec81297a83f\",\"refresh_token\":\"AQAf0rvuNBo23wiIiyWQRfavFvx7JdTjvGYLufOBAM1ABtvXWvfqqo_I0IfhFAelTPIh8w2cscS4C1k8QLKOc1rqn18CjKJbmczfu1X-EfEFaWjcDbIPYGCIGZmbNZv5DgiJ9w\",\"client_credentials\":\"NzQ0YTEzMTZmOTM3NGEyN2I3ZWM5YmM3ZWFiYjBmOTI6M2ZiNWM2MDBkODRhNDU1ODhmZTNiZWM4MTI5N2E4M2Y=\",\"authorization\":\"BQD6I914g3iIt3zs1lpZl7nriwNgkFNMuIjIPjEa6ElTZw_PEbx3ewZkb38zlhypR5BfuyXLUxdJ0WyZ1TWETMSPYpPwBk7Olf6E5J49Q67BhgFWp5A4HyxYHgXNO-56sbOGx1aszETJ24Q8uGfOizzsv9WhpVU2cuC8lJdA3K2aYqc0L-8JnmD0VIrQhwX0\",\"playlist_id\":\"0cfptAtDW6jHMeWauwQ13w\",\"artist_name\":\"Oasis\",\"artistID\":\"2DaxqgrOhkeH0fpeiQq2f4\",\"trackID\":\"4AKUOaCRcoKTFnVI9LtsrN\"",
                "enabled": true
            ,
            
                "key": "authorization",
                "value": "BQD6I914g3iIt3zs1lpZl7nriwNgkFNMuIjIPjEa6ElTZw_PEbx3ewZkb38zlhypR5BfuyXLUxdJ0WyZ1TWETMSPYpPwBk7Olf6E5J49Q67BhgFWp5A4HyxYHgXNO-56sbOGx1aszETJ24Q8uGfOizzsv9WhpVU2cuC8lJdA3K2aYqc0L-8JnmD0VIrQhwX0",
                "enabled": true
            ,
            
                "key": "playlist_id",
                "value": "0cfptAtDW6jHMeWauwQ13w",
                "enabled": true
            ,
            
                "key": "artist_name",
                "value": "Oasis",
                "enabled": true
            ,
            
                "key": "artist_id",
                "value": "2DaxqgrOhkeH0fpeiQq2f4",
                "enabled": true
            ,

        ],
        "_postman_variable_scope": "environment",
        "_postman_exported_at": "2019-07-28T12:45:10.195Z",
        "_postman_exported_using": "Postman/7.3.4"
    

【问题讨论】:

当您收到 400 错误时,您的代码可能有问题。您能否分享您在请求前脚本中针对这些请求的内容的图像。该博客是 3 年前的,因此 Spotify 也有可能从那时起也发生了变化。我怀疑这个错误与解析请求正文有关。 是的,可能是这样,我已经在上面的预请求脚本中进行了编辑(api.spotify.com/v1/artistsid/related-artists 的脚本是空的)。这里有什么引起你注意的地方吗? 我遇到了同样的问题,而真正奇怪的是,这个电话曾经奏效。我什至做了一个演示,从那以后就没有改变过代码。是的,我设置的环境和以前一样。 【参考方案1】:

我没有详细阅读您的问题,但是 JSONError: Unexpected token u in JSON at position 0 是典型的 当您尝试 GET 一个 Postman 变量时出现错误消息 存在。 (因为拼写错误或其他原因。)

密切相关的是错误信息 JSONError: Unexpected token '<' at 1:1<!doctype html>^哪个 typically occurs when you try to request a URL that doesn't exist.

【讨论】:

【参考方案2】:

缺少环境变量是原因之一。还要确保该值出现在Initial Value 部分中,而不仅仅是Current Value

另一个意外将返回字符留在变量中,这将给出以下结果

unexpected token \n in JSON...

删除返回字符(邮递员 UI 将其显示为返回符号,而不是字符本身)并解决了此问题。

【讨论】:

以上是关于运行测试时邮递员错误:JSONError: Unexpected token u in JSON at position 0的主要内容,如果未能解决你的问题,请参考以下文章

JsonError: Expecting property name enclosed in double quotes

如何将邮递员请求正文保存在一个地方并在运行时通过

出现 405 错误-在邮递员中工作时方法不允许招摇撞错

尽管在邮递员中工作,但请求 JSON 在 JMeter 中给出错误

如何使用邮递员测试获得代码覆盖率

如何使用邮递员测试获得代码覆盖率