簡體   English   中英

如何防止賽普拉斯在請求正文中打印秘密?

[英]How to prevent cypress from printing secrets in the request body?

所以我們在我們的賽普拉斯測試中做了以下事情:

  login(user: SimpleUser) {
    cy.request({
      method: "POST",
      url: `${this.apiUrl}/login`,
      body: {
        username: user.email,
        password: "mypassword",
      }
    })
      .should(assertStatusOk)
      .then((resp) => {
        ...

這與他們在頁面上的建議非常相似。

但是,當登錄失敗時,它會記錄到控制台:

The request we sent was:

Method: POST
URL: myurl
Headers: {
  "Connection": "keep-alive",
  "user-agent": "myuseragent",
  "accept": "*/*",
  "accept-encoding": "gzip, deflate",
  "content-type": "application/json",
  "content-length": mycontentlength
}
Body: {"username":"myusername","password":"mypassword"}

記錄真實密碼的地方。 這可以預防嗎? 我在其他線程中讀到在執行cy.type時添加{log: false}選項,但是對於cy.request這似乎沒有影響。 有什么想法可以防止柏樹打印全身嗎?

在狀態代碼錯誤的情況下,您可以將failOnStatusCode: false添加到請求選項中。

cy.request({
  method: "POST",
  url: `http://example.com/login`,
  failOnStatusCode: false,
  log: false,
  body: {
    username: user.email,
    password: "mypassword",
  }
})
.should('have.property', 'status', '200')

然后你看到的所有內容都預計 { Object (body, headers, ...) } 的屬性狀態為“200”,但得到的是 404

如果您有除錯誤狀態代碼以外的其他錯誤類型,請將普通的fetch()替換為cy.request()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM