- vừa được xem lúc

Bài 5: Chạy test với nhiều môi trường với playwright

0 0 14

Người đăng: Thuong Hoang

Theo Viblo Asia

Khi thực hiện test cần chạy kiểm thử trên nhiều môi trường khác nhau, thông thường công ty mình sử dụng các môi trường local, dev, qa, staging và product

Bài này sẽ hướng dẫn bạn chạy test cho nhiều môi trường khác nhau sử dụng playwright

mình sử dụng cấu trúc project như sau nhé

image.png

Để 1 project có thể chạy với nhiều môi trường khác nhau với playwright thì chúng ta cần sử dụng 2 thư viện đó là dotenv, cross-env

Thực hiện cài đặt:

  • npm install dotenv --save
  • npm install --save-dev cross-env

Sau khi cài đặt bạn có thể check trong file package.json

image.png

file .env.dev

ops_url="https://operation-portal-dev.playwright.io"
ops_username="test_dev"
ops_password="pass_dev"

file .env.qa

ops_url="https://operation-portal-qa.playwright.io"
ops_username="test_qa"
ops_password="pass_qa"

file .env.local

ops_url="https://operation-portal-local.playwright.io"
ops_username="test_local"
ops_password="pass_local"

trong thư mục utils

  • globalSetup.ts ( file này sử dụng để xử lý trường hợp ko truyền biến môi trường sẽ gán mặc định ) => sẽ dựa vào biến test_env truyền vào từ lệnh chạy để xác định môi trường

  • file env.ts ==> sử dụng tạo object thiết lập các tham số cho từng môi trường

vào playwright.config.ts để globalSetup ( globalSetup sử dụng để thiết lập 1 số biến global trong khi test(

import { FullConfig } from "@playwright/test"; import dotenv from "dotenv" async function globalSetup(config: FullConfig) { if(process.env.test_env) { dotenv.config({ path: `env/.env.${process.env.test_env}`, override: true }) }else{ dotenv.config({ path: 'env/.env.qa', override: true }) }
}
export default globalSetup;

env.ts

export default class ENV{ public static ops_url = process.env.ops_url public static ops_username = process.env.ops_username public static ops_password = process.env.ops_password
}

playwright.config.ts thực hiện setup globalSetup

import { defineConfig, devices } from '@playwright/test'; export default defineConfig({ globalSetup: 'scr/utils/globalSetup.ts', testDir: './tests', fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, reporter: 'html', use: { trace: 'on-first-retry', }, projects: [ { name: 'chromium', use: { ...devices['Desktop Chrome'] }, }, ], }); 

Thực hiện test case để check biến môi trường

getenv.spec.ts

import {test, expect} from '@playwright/test'
import ENV from '../scr/utils/env' test('Check env', async({page})=> { console.log("================url: ",ENV.ops_url) console.log("================user_name: ",ENV.ops_username) console.log("================password: ",ENV.ops_password) }) 

Thực hiện chạy test với môi trường dev ( test_env => chính là biến môi trường sử dụng để xác định chạy môi trường dev hay qa, local ...)

vào terminal gõ: cross-env test_env=dev npx playwright test

image.png

Chạy với môi trường qa:

cross-env test_env=qa npx playwright test

image.png

default chạy

npx playwright test

image.png

Note: trường hợp bạn bị lỗi

cross-env: not found

hãy thực hiện install cross-env bằng lệnh ở dưới:

sudo npm install --global cross-env

Bình luận

Bài viết tương tự

- vừa được xem lúc

Sử dụng Playwright để crawl dữ liệu - Phần 1

Nhân dịp đầu xuân, chúc anh chị em Viblo dồi dào sức khỏe, mã đáo thành công ạ ^^. Xin chào mọi người, hôm nay mình xin chia sẻ cách sử dụng Playwright - 1 framework cho testing mới ra lò cách đây.

0 0 31

- vừa được xem lúc

End-to-End Testing Renec Chain - Tương tác ví Demon - Playwright

In the fast-paced world of software development, ensuring the reliability and robustness of your blockchain-based applications is crucial. One way to achieve this is through end-to-end (E2E) testing.

0 0 19

- vừa được xem lúc

Automation test with Playwright

Chào các bạn. đây là tập các bài viết làm thế nào viết automaton test with playwright.

0 0 10

- vừa được xem lúc

Bài 2. Cài đặt Playwright

Hi, chào các bạn hôm nay mình sẽ hướng dẫn cài đặt playwright. tạo project automation test cho playwright nhé.

0 0 11

- vừa được xem lúc

Bài 3. First test case với Playwright

Hi chào các bạn. hôm nay mình sẽ tiếp viết phần tiếp theo của chuỗi bài cho viết automation test with playwright, bài hôm nay sẽ giới thiệu ngắn về test case đầu tiên.

0 0 12

- vừa được xem lúc

Bài 4. Cấu trúc của project playwright

Hi Chào các bạn. hôm nay mình sẽ giới thiệu về cách xây dựng project automation test sử dụng playwright.

0 0 10