iT邦幫忙

2021 iThome 鐵人賽

DAY 9
3
Software Development

你還在用手動測試嗎?30 天帶你學會前端自動化測試框架 - Cypress系列 第 9

自動化測試,讓你上班擁有一杯咖啡的時間 | Day 9 - 如何上傳圖片

  • 分享至 

  • xImage
  •  

此系列文章會同步發文到個人部落格,有興趣的讀者可以前往觀看喔。

在 E2E 測試中,不僅有選取元素,點選按鈕,常常我們也需要上傳檔案或圖片。今天要教大家在測試腳本中如何上傳圖片。

動手寫程式

  1. 輸入 npm install --save-dev cypress-file-upload 後,在 package.json 檔可以看到 cypress-file-upload
    https://ithelp.ithome.com.tw/upload/images/20210922/20140883PuO7Q8YjYv.png

  2. 在 cypress/command.js 中加上 import 'cypress-file-upload';
    https://ithelp.ithome.com.tw/upload/images/20210922/201408830j1Gk7ykEb.png

  3. cypress 會從 fixtures 中找測試圖片,因此在 fixtures/images 放要上傳的圖片
    https://ithelp.ithome.com.tw/upload/images/20210922/20140883G6g1M2mzAa.png

  4. 在測試腳本主要要寫上

     const filepath = 'images/avataaars.png' //定義照片路徑
     cy.get('#uploadButton').attachFile(filepath) //上傳檔案
     cy.get('#InsertImg').click() //點選插入圖片
    

    完整程式碼

     describe("測試鐵人賽上傳圖片", function () {
       beforeEach(()=>{
         cy.visit("https://ithelp.ithome.com.tw/");
         cy.login({ userId: "account", password: "password" });
       })
    
       afterEach(()=>{
         cy.get('li > a').contains("登出").click({force: true,}); //點選登出
       })
    
       it("點選鐵人賽發文後,應該要可以上傳圖片", function () {
         cy.get('.menu__ironman-btn').click({force: true,}); //點選鐵人賽發文
         cy.get('.group__badge--software-dev').click({force: true,}); //點選主題
         cy.get('.post-header__title').type("測試上傳圖片"); //輸入標題
         cy.get('.fa-upload').click({force: true,}); //點選上傳圖片icon
         cy.get('.upload').click({force: true,}); //點選上傳圖片
    
         const filepath = 'images/avataaars.png' //定義照片路徑
         cy.get('#uploadButton').attachFile(filepath) //上傳檔案
         cy.get('#InsertImg').click() //點選插入圖片
         cy.get('.save-group__btn').click({force: true,}); //點選儲存草稿
       })
     })
    

    https://ithelp.ithome.com.tw/upload/images/20210922/20140883NKwv4JFB9K.png

    https://ithelp.ithome.com.tw/upload/images/20210922/20140883kLZ8q374Un.png

參考資料


上一篇
自動化測試,讓你上班擁有一杯咖啡的時間 | Day 8 - 用 beforeEach 歸納重複行為
下一篇
自動化測試,讓你上班擁有一杯咖啡的時間 | Day 10 - 如何產生測試報告
系列文
你還在用手動測試嗎?30 天帶你學會前端自動化測試框架 - Cypress30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言