ลองสร้าง Automated Test ง่ายๆ ด้วย Chrome DevTools Recorder ไม่ต้องเขียนโค้ดก็ทำได้

สวัสดีครับ

วันนี้ผมจะพาเพื่อนๆ มาลองสร้าง Automated Test หรือจำลองการทำงานบนเว็บแบบอัตโนมัติง่ายๆ ด้วย Chrome DevTools Recorder กันครับ ไม่ต้องเขียนโค้ดเลยนะ เหมาะสำหรับ มือใหม่ ที่อยากลอง browser-automation มากๆ เลยครับ


1. เปิด Chrome DevTools แล้วไปที่ Recorder

ขั้นตอนแรกเลยนะครับ ให้เราเปิดหน้าเว็บที่เราต้องการทดสอบขึ้นมาครับ จากนั้นกด F12 หรือ คลิกขวาแล้วเลือก Inspect (ตรวจสอบ) ครับ มันจะเปิด Chrome DevTools ขึ้นมานะ

พอเข้ามาแล้ว ให้มองหาเมนูที่เขียนว่า Recorder ครับ ถ้าหาไม่เจอ อาจจะต้องกดเครื่องหมาย >> แล้วเลือกเอานะครับ

2. เริ่มบันทึกการทำงาน

พอเจอเมนู Recorder แล้วนะครับ ให้เรากด Create a new recorder ครับ จากนั้นตั้งชื่อให้มันหน่อย เช่น "ทดสอบฟอร์มจองห้องพัก" แบบนี้นะครับ

แล้วก็กดปุ่มบันทึก สีแดงๆ ได้เลยครับ

จากนั้นก็ลองทำอะไรบนหน้าเว็บของเราตามปกติเลยครับ เช่น กรอกชื่อ กรอกเบอร์โทร เลือกวันเข้าพัก คลิกปุ่มยืนยัน หรืออื่นๆ จนเสร็จขั้นตอนที่เราอยากจะทดสอบครับ (แต่ระวังเรื่องข้อมูลส่วนตัว หรือข้อมูลสำคัญนิดนึงนะครับ อย่าไปบันทึกข้อมูลพวกนั้นตอนทำจริงนะ)

พอเสร็จแล้ว ก็กดปุ่มหยุดบันทึกได้เลยนะครับ

3. ลองเล่นซ้ำและปรับแก้ข้อมูล

พอบันทึกเสร็จแล้ว ลองกดปุ่ม Replay (เล่นซ้ำ) ที่มุมขวาบนดูครับ จะเห็นว่ามันทำงานตามที่เราบันทึกไว้เป๊ะเลยครับ

ทีนี้ลองเปลี่ยนข้อมูลที่เราเคยกรอกไปดูครับ เช่น ไปที่รายการที่เราบันทึกไว้ ตรงขั้นตอนที่เรากรอกชื่อผู้จอง ลองแก้ไขข้อความให้เป็นชื่ออื่นดูครับ อันนี้เป็นการใช้ stringmanipulation แบบง่ายๆ ในบริบทนี้นะครับ

พอแก้ไขเสร็จแล้ว ลองกด Replay อีกครั้งดูครับ จะเห็นว่ามันใช้ข้อมูลใหม่ที่เราแก้ไขไปทดสอบให้เราเลย เจ๋งใช่ไหมครับ

4. ส่งออกเป็นโค้ด Puppeteer

สุดยอดไปเลยใช่ไหมครับ ทีนี้เราสามารถนำสิ่งที่เราบันทึกไว้ไปต่อยอดเขียนโค้ดต่อได้ด้วยนะ โดยเฉพาะสำหรับ javascript Developer ที่อยากทำ browser-automation ครับ

ให้เราไปที่รายการที่เราบันทึกไว้นะครับ จากนั้นกดที่ รูปดาวน์โหลด (Export) แล้วเลือก Puppeteer ครับ

มันก็จะ Export โค้ดออกมาให้เราเลยครับ ตัวอย่างโค้ดก็จะประมาณนี้นะครับ:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({ headless: false }); // ลองเปิด headless: false เพื่อดูการทำงานได้ครับ
  const page = await browser.newPage();

  await page.goto('https://example.com/form-test'); // URL ที่เราทดสอบนะครับ

  // ขั้นตอนที่กรอกชื่อ
  await page.waitForSelector('#nameInput');
  await page.type('#nameInput', 'คุณชัยวัฒน์'); // ข้อมูลที่แก้ไขแล้ว

  // ขั้นตอนที่กรอกเบอร์โทร
  await page.waitForSelector('#phoneInput');
  await page.type('#phoneInput', '0812345678');

  // ขั้นตอนที่คลิกปุ่ม
  await page.waitForSelector('#submitButton');
  await page.click('#submitButton');

  // รอดูผลลัพธ์ หรือทำอะไรต่อก็ได้ครับ
  await page.waitForTimeout(3000); // รอดู 3 วินาที

  await browser.close();
})();

เห็นไหมครับ เราได้โค้ด javascript มาใช้ต่อยอดได้ง่ายๆ เลย แบบนี้เราก็ไม่ต้องมาเขียนโค้ดตั้งแต่แรกแล้วครับ

สรุปและลองเล่น

เพื่อนๆ สามารถนำเทคนิคนี้ไปใช้กับการทดสอบระบบ automated test ของตัวเองได้เลยนะครับ เป็นจุดเริ่มต้นที่ดีมากๆ เลย

ถ้าใครอยากลองทดสอบตามบทความนี้ สามารถดาวน์โหลดไฟล์ Recorder ที่ผมทำไว้ได้เลยนะครับ แล้วนำไป Import เข้า Chrome ของเพื่อนๆ ได้เลยครับ (ผมไม่มีไฟล์ให้ดาวน์โหลดจริงเลยใช้เป็นคำแนะนำไปก่อนนะครับ)

จากนั้นไปที่หน้านี้ เพื่อลองทดสอบดูกันครับ: แบบฟอร์มสำหรับทดสอบ Automated Test (อันนี้เป็นแค่ตัวอย่าง URL นะครับ เพื่อนๆ ต้องเตรียมหน้าฟอร์มของตัวเองไว้ลองเล่นนะครับ)

ผมหวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ทุกคนนะครับ สวัสดีครับ!


Read more

ฉลอง 20 ปี Google Translate เปิดตัวฟีเจอร์ AI ฝึกออกเสียงเรียลไทม์ตามคำเรียกร้อง!

ฉลอง 20 ปี Google Translate เปิดตัวฟีเจอร์ AI ฝึกออกเสียงเรียลไทม์ตามคำเรียกร้อง!

Google Translate ฉลอง 20 ปี! เปิดตัวฟีเจอร์ AI ช่วยฝึกออกเสียงแบบเรียลไทม์ ตอบโจทย์คนอยากเก่งภาษา พร้อมวิเคราะห์และให้คำแนะนำทันที

By ทีมงาน devdog
PPV คืออะไร? เจาะลึกปรากฏการณ์ Pay-Per-View กับอีเวนต์สุดพิเศษแห่งยุค

PPV คืออะไร? เจาะลึกปรากฏการณ์ Pay-Per-View กับอีเวนต์สุดพิเศษแห่งยุค

ทำความเข้าใจ Pay-Per-View (PPV) กับเทรนด์การรับชมอีเวนต์สุดพิเศษ ทั้งศึก ONE Championship, คอนเสิร์ต Project Sekai และความบันเทิงหลากหลายผ่าน ABEMA PPV.

By ทีมงาน devdog
Xiaomi 17T เผยโฉมภาพจริงจาก Anatel ลุ้นเปิดตัว พ.ค. นี้ พร้อมดีไซน์ใหม่และชาร์จไว 67W!

Xiaomi 17T เผยโฉมภาพจริงจาก Anatel ลุ้นเปิดตัว พ.ค. นี้ พร้อมดีไซน์ใหม่และชาร์จไว 67W!

พบภาพจริง Xiaomi 17T จาก Anatel เผยดีไซน์ใหม่ กล้อง Leica ชิป Dimensity 8500 แบต 6500mAh และชาร์จไว 67W ลุ้นเปิดตัวเดือนพฤษภาคมนี้!

By ทีมงาน devdog