※教你寫出一流的銷售文案?
銷售文案是什麼?A文案是廣告用的文字。舉凡任何宣傳、行銷、販賣商品時所用到的文字都是文案。在網路時代,文案成為行銷中最重要的宣傳方式,好的文案可節省大量宣傳資源,達成行銷目的。
如果想從頭學起Cypress,可以看下面的系列文章哦
https://www.cnblogs.com/poloyy/category/1768839.html
前言
重試(Retry-ability)是 Cypress 的核心概念之一,有助於我們寫出更加健壯的測試
命令和斷言
Cypress 測試中經常被調用的兩種類型,仍以前面說到的 testLogin.js 為栗子
最後的斷言解析
檢查標籤為 h1 的元素是否包含 jane.lane
斷言的一般步驟
- 用 cy.get() 查詢應用程序的DOM,找到元素
- 針對元素或元素列表進行斷言嘗試 ,我們示例中為 .should(“contain”, “jane.lane”)
關於實際工作中的靈魂拷問
現在的 web 應用基本都是異步的,如果出現以下情況又應該怎麼處理呢?
- 如果斷言發生時,應用程序尚未更新DOM怎麼辦?
- 如果斷言發生時,應用程序正在等待其後端響應,而導致頁面暫無結果怎麼辦?
- 如果斷言發生時,應用程序正在進行密集計算,而導致頁面未及時更新怎麼辦?
上述情況再測試中經常會發生,一般處理方法是在斷言前價格固定等待時間(或像 selenium 一樣顯式、隱式等待),但仍有可能會發生測試失敗
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
擁有後台管理系統的網站,將擁有強大的資料管理與更新功能,幫助您隨時新增網站的內容並節省網站開發的成本。
Cypress 如何優美的解決上述問題
- cy.get() 命令之後的斷言通過,則該命令成功執行完成
- cy.get() 命令之後的斷言失敗,則 cy.get() 命令會自動重新查詢 web 應用程序的 DOM 樹,然後 Cypress 將再次嘗試對 cy.get() 返回的元素進行斷言
- 如果斷言仍然失敗, cy.get() 仍然會重新查詢 DOM 樹….以此類推
- 直到斷言成功 或 cy.get() 命令超時
總結
- 其實很像selenium 的顯式等待,只不過 Cypress 是全局的,不用針對元素去單獨識別
- Cypress 這種自動重試機制避免了在測試代碼中編寫硬編碼等待(強制等待),使測試代碼更加健壯
多重斷言
- 在日常測試中,有時候需要多重斷言,即獲取元素後跟多個斷言
- 在多重斷言中,Cypress 將按順序進行斷言,即當第一個斷言通過後,會進行第二個斷言,通過後進行第三個斷言…以此類推
列表的栗子
需求
- 假設一個下拉列表,存在兩個選項,第一個選項是“iTesting”,第二個選項是“testerTalk”
- 我們需要驗證兩個選項的存在,並且順序正確,代碼片段如下
代碼解析
- 總共有三個斷言:一個 should() ,兩個 expect()
- and() 斷言實際上是 should() 斷言的別名,它是 should() 的自定義回調斷言,其中包含兩個 expect() 斷言
- 在測試執行過程中,如果第二個斷言失敗了,那第三個斷言永遠不會執行
- 如果導致第二個斷言失敗的原因被找到且修復了,且此時整個命令還沒有超時,則在進行第三個斷言時,還會再次重試第一、第二個斷言
重試(Retry-ability)的條件
前言
- Cypress 並不會重試所有命令,當命令可能改變被測應用程序的狀態時,該命令將不會重試(如: click() ,畢竟要點擊)
- Cypress 僅會重試那些查詢 DOM 的命令: cy.get() 、 find() 、 contains() 等
- 可以通過官方文檔 Assertions 部分來檢查是否重試了特定命令:https://docs.cypress.io/zh-cn/guides/references/assertions.html#Chai
常用的可重試命令
重點啦!
重試的超時時間默認是 4秒,對應的配置項是: defaultCommondTimeout ,如果想改重試的超時時間,在 cypress.json 文件改對應的字段值即可
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
※別再煩惱如何寫文案,掌握八大原則!
什麼是銷售文案服務?A就是幫你撰寫適合的廣告文案。當您需要販售商品、宣傳活動、建立個人品牌,撰寫廣告文案都是必須的工作。