[Sử dụng Synpress test e2e Dapp – tương tác với Metamask] – P1: Setup Synpress

Why Synpress ? Khi kiểm thử các ứng dụng DApp – Mình phải tương tác với Metamask rất nhiều – Confirm Transacition, Approve, Login with Metamask,… --> cần một framework hỗ trợ toàn bộ các tương tác với Metamask --> Synpress Context Mình đã cài Synpress theo tutorial này: https://medium.com/coinmonks/test-e2e-login-to-dapp-with-metamask-with-synpress-5248dd1f17c1 Tuy nhiên trong quá trình

Why Synpress ?

Khi kiểm thử các ứng dụng DApp – Mình phải tương tác với Metamask rất nhiều – Confirm Transacition, Approve, Login with Metamask,… --> cần một framework hỗ trợ toàn bộ các tương tác với Metamask --> Synpress

Context

Mình đã cài Synpress theo tutorial này: https://medium.com/coinmonks/test-e2e-login-to-dapp-with-metamask-with-synpress-5248dd1f17c1
Tuy nhiên trong quá trình cài lại gặp 1 số lỗi --> quá trình cài không thành công --> Mình có fix lại 1 tí + translate sang tiếng Việt cho các bạn sử dụng theo cho dễ

Start

Step 1: Clone repo: https://github.com/cuongpo/synpress.git

Step 2: Install dependency

  • cd synpress
  • npm install cypress –save-dev
  • npm i @synthetixio/synpress
  • npm install env-cmd

Step 3: Config environment

Chỉnh file .env theo cấu hình chain bạn muốn test
NETWORK_NAME=
RPC_URL=
CHAIN_ID=
SYMBOL=
BLOCK_EXPLORER=
IS_TESTNET=
PRIVATE_KEY=

Ví dụ BSC testnet thì
NETWORK_NAME=BSC Testnet
RPC_URL=https://data-seed-prebsc-1-s1.binance.org:8545
CHAIN_ID=97
SYMBOL=BNB
BLOCK_EXPLORER=https://explorer.binance.org/smart-testnet
IS_TESTNET=true
PRIVATE_KEY=486********

Private key thì lên metamask -> account detail --> export nhé

Bạn cùng có thể config thêm 2 tham số (optional) SKIP_METAMASK_INSTALL, SKIP_METAMASK_SETUP để skip qua phần install và setup metamask
SKIP_METAMASK_INSTALL = 1
SKIP_METAMASK_SETUP = 1

Step 4: Fix bug run metamask twice

Đến bước này nếu mình chạy npm run test luôn thì sẽ xảy ra lỗi metamask bị chạy 2 lần dẫn đến kết nối không thành công --> Mình sửa lại file metamask.js ở đường dẫn node_modules/@synthetixio/synpress/commands/metamask.js bằng file ./metamask.js mà mình sửa ở thư mục gốc

Step 5: Run

Bật terminal – npm run test :3
Bạn có thể config ở package.json cú pháp. Example – nếu bạn muốn chạy 1 file trong thư mục test thôi thì thêm –spec path/to/test.js

Bonus: find element by Xpath

Có một điều không vui là synpress mặc định không có find element by Xpath như selenium --> mình cần cài thêm như sau:

  • npm install -D cypress-xpath
  • vào node_modules/@synthetixio/synpress/support/index.js
  • thêm require('cypress-xpath');

Vậy là xong phần cài synpress

Phần 2: [Sử dụng Synpress test Dapp – tương tác với Metamask] Viết testcase trên Synpress

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ