使用身份验证登录 frisby 请求标头中的参数

Using a authentication login a parameter in request header in frisby

本文关键字:参数 请求 身份验证 登录 frisby      更新时间:2023-09-26

我正在尝试使用frisby进行测试,需要身份验证令牌登录,问题是:我的请求的响应是字符串而不是JSON,我仍然没有弄清楚如何让它工作。

我已经阅读了一些我发现谷歌搜索的例子,但到目前为止它们还没有帮助。

这是我的代码:

var frisby= require('frisby');
frisby.create('Login')
    .post('http://mid.dev.psafe.com/My.API/security/Authentication.svc/Login',
        {"user":"115303640577606155760"},
        {json:true},
        { headers: { 'Content-Type': 'application/json' }})
    .expectStatus(200)
    .afterJSON(function (token) {
        frisby.globalSetup({
            request: {
                headers: { 'User-Token': token }
            }
        });
        frisby.create('List associated devices')
            .post('http://mid.dev.psafe.com/My.API/APIAdmin.svc/GetDevices',
                {json:true})
            .expectStatus(200)
        .toss();
    })
.toss();

这是我在运行测试时得到的:

1) Frisby Test: Login 
    [ POST http://mid.dev.psafe.com/My.API/security/Authentication.svc/Login ]
   Message:
     Error: Error parsing JSON string: Unexpected token q
    Given: qO1DkNvKlCaOmNXsrmvGgfIqeCQEztKJHnizItWyfKaXD9H1bwm1eTIgiINCw5Dz0
   Stacktrace:
     Error: Error parsing JSON string: Unexpected token q
    Given: qO1DkNvKlCaOmNXsrmvGgfIqeCQEztKJHnizItWyfKaXD9H1bwm1eTIgiINCw5Dz0
    at _jsonParse (/usr/lib/node_modules/frisby/lib/frisby.js:1219:11)
    at Frisby.<anonymous>     (/usr/lib/node_modules/frisby/lib/frisby.js:950:20)
    at null.<anonymous> (/usr/lib/node_modules/frisby/lib/frisby.js:1112:18)
    at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
Finished in 0.255 seconds
1 test, 2 assertions, 1 failure, 0 skipped

谢谢!

我使用 .after() 而不是 .afterJSON() 修复了这个问题。