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();
})