<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Cypress 10.x 組件測試指南

          共 5842字,需瀏覽 12分鐘

           ·

          2023-05-23 18:14

          一個人到底要走多少彎路,才能成為一名合格的測試開發(fā)工程師?

          Cypress又又又更新啦!我將講解如何使用Cypress進行組件測試。 (買了書的同學們,公眾號回復你的微信號,拉你到Cypress中國群)。

          最近兩年測試界最火的測試工具莫過于Cypress,作為測試工程師彎道超車必備、下一代UI自動化測試利器,Cypress開發(fā)團隊也一直在拼命做事,這不,Cypress10.x重磅發(fā)布,將“Component Testing”重磅引入到了測試團隊。測試人員又可以將自己的勢力版圖向開發(fā)側移動一下啦 :)

          什么是組件測試

          組件測試(也叫模塊測試),關注可單獨測試的組件。

              

          組件測試允許單獨測試一個組件,這在關注特定組件的功能時很重要,

          組件測試和端到端測試之間的區(qū)別在于:

          端到端通常測試整個應用程序,組件測試則側重于特定組件的功能。

          在 Cypress 中,通過調(diào)用 cy.visit() 對 URL 進行端到端測試,通過調(diào)用 cy.mount() 進行組件測試。

          組件測試依賴

          寫組件測試需要一些前端框架支持,當前Cypress支持的框架如下:

          93dfd002ba5e055c45e2be7425ebcc13.webp

          編寫組件測試

          當你第一次選擇組件測試這個類型時,Cypress會自動為你創(chuàng)建相關配置。接上兩篇文章介紹,我們在項目根目錄下運行:

                
                yarn debu

          然后,在選擇測試類型的時候,選擇Component Testing:

          b91bee5637d5e3e2e684618364d731ce.webp

          然后,Cypress會讓你選擇一個框架類型:

          e3bf658742d663d802372f81902cbc79.webp

          我們選個Create React APP,當然你也可以選擇列表中的其他選項。

          選好后,點擊Next,你會看到下面這個圖:

          a78ad99bbfb963ff0e98862555fdaf28.webp

          根據(jù)圖中提示,在目錄下,執(zhí)行上圖命令行命令。安裝成功后,你會看到如下界面:

          c2f2e1428e75ff151739dda3337f5926.webp

          點擊”Continue“,

          e3aad536a947f8dfcb10dc93fd9cf022.webp

          你會看到一些配置,點擊Continue“最終你會看到這個界面。

          c0927d6ce41b79edfdde545be06d3412.webp

          然后選擇你要運行的瀏覽器,點擊”Start Component Testing in Chrome“,

          9719abda79eecd1aa353ec58c7b57a2a.webp

          選擇Create your first spec, 

          900b23080ae6c9455bbc8c526f6ae2e4.webp

          點擊Create Spec,然后你會看到下圖,

          caf57a500b58acabd135d1c1a71936d5.webp

          點擊”O(jiān)K“, 然后你會看到如下頁面

          8a412b7c5e14068f86f792e851465a1b.webp

          修復這個錯誤,安裝react-dom

                
                yarn add react-dom

          然后,你就能看到測試用例創(chuàng)建成功了。

          756e9079ff86aa2e45852fb79d91dab3.webp


          同時,你檢查項目文件夾,你會發(fā)現(xiàn)文件已經(jīng)創(chuàng)建到了cypress/component下了。

          b7f08ea164c24840f21ebb020cdb543e.webp

          運行測試用例

          測試用例的運行基本不變,你可以直接:

                
                npx cypress run

          但是你也知道我不推薦。我們?nèi)ジ捻椖扛夸浵碌膒ackage.json文件。給它添加下如下scripts部分。最后,你的package.json看起來像這樣:

          e5ff1b639195608e4488d747f99966b8.webp


          然后你就可以在命令行里如此運行:

                
                yarn debug

          然后,你就可以愉快的編寫執(zhí)行Cyprss用例了。 

          兩個難點

          1. 做 Compon ent Test的前提是你對前端代碼庫有訪問權限,否則一切都是白談。 2. 你的Cypress框架要和你的Web端代碼放在一個代碼庫下,這樣你mount起來才方便。這個就是另外一個困難。 由于這兩個原因,加上開發(fā)人員也無意放手組件測試, 所以大部分情況下測試人員都不會執(zhí)行 Compon ent Test 這個測試類型。

          一個真實用例

          假設你在你的組織有一定發(fā)言權,搞定了以上兩件事,我們來看看Cypress能帶給我們什么驚喜。
          首先,要做組件測試,我們得有一個Web APP。你需要創(chuàng)建一個Web App。Cypress支持幾種框架,我們使用create-react-app來快速創(chuàng)建一個Web App。
                
                npx create-react-app my-ap
          然后,你的項目文件夾會變成這個樣:

          9ab29038c44405a2037134a3d2c9c014.webp


          my-app就是我們剛剛創(chuàng)建好的一個react web app。

          然后我們把這個app運行起來:

                
                // 先到my-app文件夾下
          cd my-app
          // 啟動
          npm start

          瀏覽器訪問:http://localhost:3000/, 你將看到我們的app啟動了。

          5c089cd61ad142815e4d6005997db7c2.webp


          此時,更改我們的component Test測試文件:

                
                import * as React from 'react'
          import App from '../../../App'
          describe('ComponentName.cy.js', () => {
            it('renders learn react link', () => {
              cy.mount(<App />)
              cy.contains(/learn react/i).should('be.visible')

            })
          }

          然后,在項目根目錄下執(zhí)行運行:

                
                yarn debug

          你會發(fā)現(xiàn)運行失敗了。查看Log得知:

          ”Relative imports outside of src/ are not supported“,

          f0e822f203bac5b794c3c534f325c331.webp


          也就是說,我們的測試文件里,導入的相對路徑超出了src文件夾,所以我們運行失敗。

                
                import App from '../../../App
              

          知道了錯誤就好辦了。我們?nèi)ジ捻椖拷Y構,變成如下這個樣子:

          884546acb32e71f4f8eced3650948e20.webp

          兩個要點:

          1. 更改項目的cypress.config.js文件,將component下的specPattern加上。這樣符合這個pattern的便都是Component 測試。

          2. 把你的Component測試文件移到src下。跟你要測試的組件同目錄。避免無法導入。

          然后,你在項目根目錄下,執(zhí)行

                
                yarn debug

          你會發(fā)現(xiàn)一切正常,測試成功。

          ce5ab51d07c4febac36a16b4a54bcc43.webp

          關鍵點

          你要測試哪個組件,就把哪個組件導入進來,然后mount它。

          疑惑點

          如果框架使用的是create-react-app,那么你在組件測試導入時,必須保證導入的路徑在src下。這樣就阻擋了我們正常的測試用例組織結構,我們無法把所有component 測試用例都放在component文件夾下面。略有些不方便。


          Cypress有很多奇淫巧技, 我已經(jīng)總結超過百篇

          別走開,下一篇更精彩!


          往期回看:

                              你不知道的Cypress系列(1) --雞肋的BDD

                              你不知道的Cypress系列(2) -- ”該死"的PO模型!

                              你不知道的Cypress系列(3) -- 是時候重構自己的思維了!

                              你不知道的Cypress系列(4) -- “PO”已死,App Action當立?

                              你不知道的Cypress系列(5) -- "眼瞎"的TestRunner

                              你不知道的Cypress系列(6) -- 多Tab的小秘密

                             你不知道的Cypress系列(7) -- 當iFrame遇見彈出框          

                              你不知道的Cypress系列(8) -- “可視化”測試你知多少

                              你不知道的Cypress系列(9) -- 代碼“自動生成”術                     你不知道的Cypress系列(10) -- CypressHelper

                             你不知道的Cypress系列(11) -- 使用cy.session()加速鑒權。  

                             你不知道的Cypress系列(12) -- 測試報告Allure    

                               你不知道的Cypress系列(13) -- 你真的需要多瀏覽器測試嗎?  

                               你不知道的Cypress系列(14) -- 一文說透元素定位  

                               你不知道的Cypress系列(15) -- 支持跨域訪問了!      

          為了更好的支持我創(chuàng)作,麻煩同學們動動小手,點贊 + 在看 + 轉發(fā)一鍵三聯(lián)。


          技術討論

          公眾號里直接回復 666, 帶你入圈

          a37027d9d3f90dd4a8a3a17e9675557e.webp



           -   -  時人莫小池中水, 淺處不妨有臥龍  -  -

          作者:

          Kevin Cai, 江湖人稱蔡老師。

          兩性情感專家,非著名測試開發(fā)。

          技術路線的堅定支持者,始終相信 Nobody can be somebody。      

          · 猜你喜歡的文章 ·


          功能測試進階系列直播(免費)

          前端測試框架Cypress從入門到精通

          自研測試框架ktest介紹(適用于UI和API)

          測試開發(fā)入門與實戰(zhàn)


          瀏覽 85
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品乱码 | 天堂网地址 | 狗爷城中村嫖妓 | 国产乱轮视频网站 | 国产农村乱婬片A片AAA图片 |