如何在Cypress中测试错误请求

时间:2019-07-02 13:41:48

标签: testing cypress bad-request

我正在使用不正确的凭据在cypress中测试POST方法中的登录。这会返回400个我需要测试的错误请求。

这就是我所拥有的:

    describe('Login API Test - Correct user login', () => {

it('Validate the header', () => {

    cy.request({
        method: 'POST',
        url: 'https://myrAPI',
        auth:
        {
            username: 'user@user',
            password: 'user123',
        },
        headers:
        {
            'Authorization': 'Basic dXNlckB1c2VyOnVzZXI=',
            'Content-Type': 'text/plain'
        }
    }).then((response) => {
        // expect(response.body).to.exist // true
        // expect(response.body).('User.Access: Exception occured:User.Access : CheckUser: Exception occurred:Error with Authentication Header. result =') // true
        // expect(response.headers).should.contain('text/plain; charset=utf-8')
        // expect(response.body).statusCode.should.equal(400)
        response.status.should.equal(400)
        //expect(response).to.have.property('headers')
    })

}})

这是我得到的答复:

     The request we sent was:

     Method: POST
    URL: https://myapi
    Headers: {
      "Connection": "keep-alive",
      "Authorization": "Basic dXNlckB1c2VyOnVzZXIxMjM=",
       "Content-Type": "text/plain",
       "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
    (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36",
      "accept": "*/*",
      "accept-encoding": "gzip, deflate",
      "content-length": 0
      }

        -----------------------------------------------------------

    The response we got was:

    Status: 400 - Bad Request
     Headers: {
      "content-length": "239",
       "content-type": "text/plain; charset=utf-8",
     "request-context": "appId=cid-v1:d994e38c-9493-4dd6-ac8c-5395bb9ce790",
       "date": "Tue, 02 Jul 2019 13:35:18 GMT"
    }
     Body: User.Access: Exception occured:User.Access : CheckUser: Exception 
    occurred:Exception when checkin...

我想知道响应或正文中是什么

1 个答案:

答案 0 :(得分:1)

您的问题的答案在错误消息中:

  

如果您不希望状态码导致失败,请通过以下选项:'failOnStatusCode:false'

因此,通过failOnStatusCode: false不会因错误的状态代码而失败:

    cy.request({
        method: 'POST',
        url: 'https://myrAPI',
        failOnStatusCode: false,
        auth:
        {
            username: 'user@user',
            password: 'user123',
        },
        headers:
        {
            'Authorization': 'Basic dXNlckB1c2VyOnVzZXI=',
            'Content-Type': 'text/plain'
        }
    })