Cypress保持登入Session

session | Cypress Documentation

Cypress保持登入Session

解決每次測試都需要維持登入問題

成果展示

情境

通常網站要製作SSO或是像是各大電子商務都會把特定功能切成不同Domain,登入完成後又會執行Redirect回原本頁面,對於整合測試來說就會是一種考驗
例如會員 member.willis.com.tw,其他網站為 shopping.willis.com.tw,會員登入後會Redirect到shopping.willis.com.tw來讓瀏覽器紀錄一些資訊

展示

設定

首先要設定Session他會把這個Session區塊的動作都保留下來,等下一個動作也是需要登入的時候,他會直接套用剛剛登入的資訊。

這種狀況在測試電子商務的購物流程、會員資料修改,特別適合保留會員的購物車、會員資訊來進行整合測試

support/member.js

Cypress.Commands.add('memberLoginRef',(url,ck_ele,acc,pwd) =>{
  cy.session([acc, pwd], () => {
    // KeyIn Account & Pwd
    cy.memberLogin(acc,pwd);
  })    

cy.memberLogin(acc,pwd)

cy.origin('https://obstyle.obdesign.com.tw/',{args:{acc,pwd}},({acc,pwd}) =>{
// clear input data
cy.get('#input-13').clear();
cy.get('#input-16').clear();    

// key in tester account & password
cy.get('#input-13').type(acc);
cy.get('#input-16').type(pwd);  

// login submit
cy.get('.btn-login > .o-title').click();
})

tips