選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
5 分鐘閱讀時間 (1019 個字)

使用 Cypress 的經驗分享

2024-12-30-100912 Cypress Test

以下分幾個點來敘述:

  • 安裝 > E2E Testing

  • Cypress Chrome Recorder

  • Component Testing

安裝[Dos command mode 下執行相關語法]

1 螢幕擷取畫面 2024 12 31 154307
2 螢幕擷取畫面 2024 12 31 154319
    • 當 support 目錄下還沒有要使用的時候,先在 cypress.config.js 設定中把它關掉
執行
  • 切換到[安裝目錄]\[專案目錄]\目錄下, npx cypress open  可以開啟如下的 UI 畫面 
5 螢幕擷取畫面 2024 12 31 154416
可以執行指令,直接叫用 e2e 測試或是 component 的測試
7 螢幕擷取畫面 2024 12 31 154529

A. [E2ETesting][原始的 UI Testing]

透過 Recorder 紀錄Step,測試 [Cypress Chrome Recorder],紀錄如下附圖

8 螢幕擷取畫面 2024 12 31 154547

9 螢幕擷取畫面 2024 12 31 154614

10 螢幕擷取畫面 2024 12 31 154627

11 螢幕擷取畫面 2024 12 31 154642

12 螢幕擷取畫面 2024 12 31 154659

6.  在[安裝目錄]\[專案目錄]\目錄下,執行 npx cypress open  可以開啟 UI 畫面,點 E2E Testing  >   預設在 Chrome 瀏覽器上,點擊 [Start E2E Testing in Electron][下下張圖] > 開出右下方有左選單的畫面 > 單獨點擊剛剛錄製出來的 cypressDemo1.cy.js13 螢幕擷取畫面 2024 12 31 154719

14 螢幕擷取畫面 2024 12 31 154741
點上圖的綠色按鈕【Start E2E Testing in Electron】出現左列有選單管理 spec 的畫面,點按執行 cypressDemo1.cy.js 就會出現下列畫面
15 螢幕擷取畫面 2024 12 31 154754

16 螢幕擷取畫面 2024 12 31 154809

舊版程式要在新版環境下執行,對照要更動的地方
[筆者的舊版是 v4.9,目前安裝的新版是 v13.16]:

手動單獨執行指定的 spec 測試程式:npx cypress run --spec .\cypress\e2e\Demo\Demo.cy.ts
17 螢幕擷取畫面 2024 12 31 154825

執行結果(這個是執行舊版程式的方式);新版就直接錄新的或是直接手寫新的

18 螢幕擷取畫面 2024 12 31 154851

B. [Component Testing]

參考 git 上面的 sample ,裡面有相關的 config 設定內容跟相對應的路徑,配置相對應的檔案跟路徑後,Component Testing 就可以順利開啟了。重要對應的設定檔案有:angular.json, cypress.config.js,  tsconfig.app.json,  tsconfig.json [先放預設內容即可]
cypress.config.js 設定的說明可參考官方網站

因為選擇 angular 做模擬測試,所以會要求要安裝 angular,在[專案目錄]下安裝,強制安裝可參考下列語法執行

npm install --force -D @npmcli/package-json

npm install --force -D @angular-devkit/build-angular

npm install --force -D @angular/core

npm install --force -D @angular/common

npm install --force -D @angular/platform-browser-dynamic

npm install --force -D @angular/cli

npm audit fix --force

前述關掉的設定要去掉;supportFile: false,
設定都安置沒有問題後,點擊 [Component Testing] 會看到下列畫面

19 螢幕擷取畫面 2024 12 31 154915
使用介面上的 New Spec,產出檔案,點兩下可以執行該測試程式碼
20 螢幕擷取畫面 2024 12 31 154932

cypress price policy,如果非重度使用者 Free Trial 可以用一段期間。Team 若有 50 人使用,平均一個月是 NT$40 左右。算是蠻不錯的付費方案。

21 螢幕擷取畫面 2024 12 31 154958

發現 cypress 可支援多種框架,一般來說前端開發者的開發語言框架通常會是選用特定語言的,而如果前端開發時,使用了其他不同語言,單元測試要做切換時,要先移除原本的框架,再安裝新的語言框架,例如:
npm uninstall @cypress/angular
npm install @cypress/react
如果前端畫面相同,但框架異動,原始的測試程式碼也是要跟著調整。

自動化測試-以辦公室資源預約系統為例
SonarQube 小試身手
 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2025/06/09, 週一

Captcha 圖像