เนื่องด้วยการทดสอบของเราอาจมีการทดสอบที่ขึ้นอยู่กับเวลาของ Browser ที่เราใช้ด้วย เช่น กดแล้วจะนับถอยหลัง 30 วินาที แล้วแสดง Popup ซึ่งก่อนหน้านี้การทดสอบต่างๆที่เกี่ยวกับเวลาบนหน้า UI เป็นอะไรที่ลำบากมาก เนื่องจากต้องรอจนกว่าจะครบเวลาที่กำหนดไว้ ยิ่งถ้าเรามีการกำหนดเวลาไว้นานๆ เช่น 30 นาที แบบนี้แทบจะเป็นไปไม่ได้เลยที่จะทำ Automated Test เพราะจะทำให้ระยะเวลาการรันทดสอบนานขึ้นเป็นอย่างมากนั่นเอง

Clock API

Playwright version 1.45 ได้มีการเพิ่ม Clock API เข้ามาช่วยให้เราจัดการเวลาของ Browser ซึ่งจะมีผลกับ function ต่างๆบน UI ที่ Dev นิยมใช้เช่น
Date, setTimeout, clearTimeout, setInterval, clearInterval, requestAnimationFrame, cancelAnimationFrame, requestIdleCallback, cancelIdleCallback

โดยเราสามารถจะจัดการเวลาของ Test Browser ได้ตามนี้เลย

  • install เป็นคำสั่งที่ใช้ในการเริ่มใช้งาน Clock API
  • pauseAt เป็นคำสั่งที่ใช้หยุดเวลา
  • resume เป็นคำสั่งให้เวลาเดินต่อหลังจากที่เราหยุดเวลาด้วยคำสั่ง pauseAt ไปแล้ว
  • fastForward เป็นคำสั่งในการเพิ่มเวลาเช่น เพิ่มเวลาไปข้างหน้า 30 นาที

ตัวอย่างการใช้งาน


import { test, expect } from "@playwright/test";

test("should able to control the clock", async ({ page }) => {
  
  await page.goto("https://web-demo.qahive.com/form-demo");

  // Set date time
  await page.clock.install({ time: new Date("2024-02-02T08:00:00") });

  // Pause the time once reached that point.
  await page.clock.pauseAt(new Date("2024-02-02T10:00:00"));

  // Resume 
  await page.clock.resume();
  
  // Fast foward the time
  await page.clock.fastForward("30:00");

});

สำหรับการใช้งานเพิ่มเติมลองดูที่ คลิก

สนใจเรียนรู้แบบเจาะลึก

Playwright Web Automated Test

เรียนรู้การทดสอบ Web Application ด้วย

Playwright และ TypeScript

Previous articleประเภทการทดสอบต่างๆของ Performance Testing