你有沒有遇到這種狀況,在網站上幾乎都需要先登入,才能操作功能,因此測試腳本需要寫重複的登入程式碼。
這時可以把登入當作公共方法,寫在 command.js,就能減少重複的程式碼了。
custom commands 介紹
custom command 可以自定義 commands 或是 覆寫現有的 commands。
語法:
Cypress.Commands.add(name, callbackFn)
Cypress.Commands.add(name, options, callbackFn)
Cypress.Commands.overwrite(name, callbackFn)
自定義 commands
- 在執行腳本前,會先跑 cypress/support/commands.js 檔案,因此可以在這裡寫登入的腳本。
2. 到測試腳本寫上 cy.login
3. 執行腳本後,可以看到登入成功,但在 log 上會看到密碼。
覆寫 custom commands:
當用 cy.type()
時,執行腳本會將輸入的內容顯示出來,但當輸入的內容有機密如密碼時,可以覆寫 cy.type 的方法。
- 以登入為例,在 cypress/support/command.js 加上
cy.get('#account').type("account"); //輸入帳號 cy.get('#password').type('secret1234567890', { sensitive: true }); //輸入密碼
2. 執行腳本後,在 log 上這時輸入的密碼會用********呈現。