ทดสอบเว็บแบบง่ายๆ ด้วย Chrome Recorder ไปถึง Puppeteer

สวัสดีครับเพื่อนๆ โปรแกรมเมอร์ทุกๆคน

วันนี้ ผมมีเทคนิคดีๆ มาฝากนะครับ สำหรับคนที่อยากลองทำ Automated Test กับเว็บไซด์ของเรา แบบไม่ต้องเขียนโค๊ตเลยครับ มันคือการใช้ Chrome Dev Tool นะครับ โดยเฉพาะส่วนของ Recorder ตรงนี้แหละ ที่จะช่วยให้เราบันทึกการทำงานต่างๆ บนหน้าเว็บ แล้วเอามาเล่นซ้ำ หรือจะ Export ไปเป็นโค๊ต Puppeteer เพื่อพัฒนาต่อก็ได้ครับ ง่ายมากๆ เลยนะ

มาเริ่มกันเลยครับ ผมจะพาไปดูทีละ Step นะ

1. เข้าไปที่ Chrome Dev Tool กันก่อนเลยครับ

อันดับแรก นะครับ ไปที่หน้าเว็บ ที่เราต้องการจะลองทำ Automated Test นะครับ

จากนั้นให้กด F12 หรือไม่ก็ คลิกขาว ที่หน้าเว็บก็ได้ครับ แล้วเลือก Inspect หรือ ตรวจสอบ นะ

พอกดมาแล้วนะครับ ก็ให้มองหาเมนูที่เขียนว่า Recorder ครับ มันจะอยู่แถวๆ Tab พวก Elements, Console, Network นั่นแหละครับ

2. เริ่มต้นบันทึก ด้วยการ Create a new recorder

พอเจอ Recorder แล้วนะครับ ก็ให้กดที่ Create a new recorder ได้เลย

จากนั้นตั้งชื่อให้มันหน่อยนะครับ เพื่อให้ง่ายต่อการจำ ว่า Recorder ตัวนี้เอาไว้ทำอะไร เช่น "ทดสอบส่งแบบฟร์อม จองโรงแรม" แบบนี้นะครับ

พอกดตั้งชื่อเสร็จแล้ว ก็กดปุ่มสีแดงๆ บันทึก ได้เลยนะ

3. ทำการทดสอบเว็บของเราตามปกติเลยครับ

ตอนนี้ Chrome มันกำลังบันทึกทุกการกระทำของเราอยู่นะครับ

เราก็ทำการทดสอบเว็บไชต์ของเราตามปกติเลยครับ เช่น ลองกรอกข้อมูลต่างๆ ในแบบฟอร์มดูนะครับ

  • กรอกชื่อ ผู้จองห้องพัก
  • กรอกเบอร์โทรศัพย์
  • คลิกเลือกวันที่
  • แล้วก็กดปุ่ม ส่ง หรือ จอง อะไรประมาณนี้นะครับ

ทำไปเรื่อยๆ จนจบขั้นตอนที่เราอยากจะให้มันทดสอบนะ

4. หยุดบันทึก แล้วลองเล่นซ้ำอีกทีครับ

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

จากนั้น Chrome มันก็จะแสดงรายการที่เราบันทึกไว้ทั้งหมดเลยครับ

ลองกดปุ่ม Replay ที่มุมขาวมือด้านบนดูนะครับ

เห็นไหมครับ มันจะทำตามสิ่งที่เราทำไว้เป๊ะๆ เลยครับ สะดวกมากๆ นะ

5. ลองแก้ไขข้อมูลที่บันทึกไว้ดูครับ

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

ให้ไปที่รายการที่เราบันทึกไว้ครับ จากนั้นทำการแก้ไขชื่อ ผู้จองห้องพัก ดูครับ

// ตัวอย่างของ Step ที่เราแก้ไขใน Recorder
{ 
  "type": "change",
  "selector": "form input[name='bookingName']", // ตัวเลือก selector นะครับ
  "value": "สมหญิง จองเลย"
}

จากนั้นลองกด Replay อีกครั้งดูนะครับ

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

6. ส่งออกเป็นโค๊ต Puppeteer ได้เลยนะครับ

นี่แหละครับ คือจุดเด่นของเจ้า Recorder ตัวนี้เลย

หลังจากที่เราบันทึกแล้วก็ปรับแต่งจนพอใจแล้ว เราสามารถ Export สิ่งที่เราบันทึกนี้ไปเป็นโค๊ต JavaScript สำหรับ Puppeteer ได้เลย เพื่อเอาไปพัฒนาต่อ หรือเขียนโค๊ตเพิ่มความซับซ้อนให้มันได้ครับ

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

จากนั้นให้เลือกเป็น Puppeteer ครับ

Chrome มันก็จะสร้างโค๊ต JavaScript ออกมาให้เราเลยนะ พร้อมเอาไปใช้กับ Puppeteer ทันทีเลย

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // ไปที่หน้าเว็บที่เราทดสอบนะครับ
  await page.goto('https://example.com/test-form'); // ลิงค์นี้เป็นตัวอย่างนะ

  // ทำตาม Step ที่บันทึกไว้ได้เลย
  await page.waitForSelector('input[name="bookingName"]');
  await page.type('input[name="bookingName"]', 'สมหญิง จองเลย');
  await page.type('input[name="contactNumber"]', '0812345678');
  // ... อื่นๆ ที่เราได้บันทึกไว้

  await Promise.all([
    page.waitForNavigation(),
    page.click('button[type="submit"]'),
  ]);

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

สำคัญมากนะ เรื่องข้อมูลส่วนตัว (PDPA): เวลาเราทดสอบอะไรแบบนี้ โดยเฉพาะกับระบบจริง หรือมีข้อมูลที่ละเอียดอ่อนมากๆ เนี่ยครับ อย่าเผลอบันทึกข้อมูลจริง หรือข้อมูลที่ละเอียดอ่อนมากๆ ลงไปในการทดสอบนะครับ เพราะไฟล์ที่เรา Export ออกมามันเป็นโค๊ตตรงๆ เลยนะ มันอาจจะหลุดออกไปได้ง่ายๆนะครับ ควรใช้ข้อมูลทดสอบ (test data) ที่ไม่มีความสำคัญนะครับ เพื่อความปลอดภัยนะ

7. อยากลอง ดาวน์โหลดไฟล์ตัวอย่างไปทดสอบไหมครับ

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

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

สรุปนะครับ

เทคนิคนี้ช่วยให้เราเริ่มต้นทำ Automated Test ได้ง่ายมากๆ เลยนะครับ โดยไม่ต้องเขียนโค๊ตแม้แต่บรรทัดเดียวในตอนแรก เหมาะสำหรับ มือใหม่ หรือคนที่ต้องการสร้าง Prototype ของ Test Flow อย่างรวดเร็วมากๆ เลยครับ และยังสามารถต่อยอดไปสู่การเขียนโค๊ต browser-automation ด้วย Puppeteer ได้อย่างไม่มีรอยต่อเลยนะครับ

ลองเอาไปใช้กับการทดสอบ กับระบบของเพื่อนๆดูนะครับ ผมว่ามันมีประโยชน์มากๆ เลยครับ

อ้างอิง: * Chrome DevTools Recorder

Read more

ไอลีน กู: ตำนานนักสกีฟรีสไตล์ผู้พลิกโฉมวงการและความหมายของชัยชนะ

ไอลีน กู: ตำนานนักสกีฟรีสไตล์ผู้พลิกโฉมวงการและความหมายของชัยชนะ

เจาะลึกเรื่องราวของ Eileen Gu นักสกีฟรีสไตล์ผู้สร้างประวัติศาสตร์ในโอลิมปิก 2026 สถิติที่ไม่เคยมีมาก่อน ประเด็นถกเถียง และความแข็งแกร่งส่วนตัวที่ทำให้เธอก้าวสู่ระดับโลก

By ทีมงาน devdog
วันพระ: คู่มือฉบับสมบูรณ์สำหรับพุทธศาสนิกชนและผู้สนใจยุคใหม่

วันพระ: คู่มือฉบับสมบูรณ์สำหรับพุทธศาสนิกชนและผู้สนใจยุคใหม่

เจาะลึกวันพระและความสำคัญของวันมาฆบูชา 2569 ทั้งวันหยุดราชการ ธนาคาร กิจกรรมเวียนเทียนต้นไม้ และผลกระทบต่อบริการขนส่ง เตรียมตัววางแผนทำบุญและพักผ่อน

By ทีมงาน devdog
ถอดรหัสรักแท้: "บังมัดคลองตันต้นข้าว" เรื่องราวที่สะท้อนการให้อภัยและการเริ่มต้นใหม่

ถอดรหัสรักแท้: "บังมัดคลองตันต้นข้าว" เรื่องราวที่สะท้อนการให้อภัยและการเริ่มต้นใหม่

เจาะลึกงานวิวาห์ "บังมัดคลองตัน" กับ "ต้นข้าว มิสแกรนด์" พร้อมเหตุผลจากใจเจ้าสาวที่เลือกความรักเหนือกาลเวลาและคำวิจารณ์ สู่การเริ่มต้นชีวิตคู่ที่สะท้อนการให้อภัย

By ทีมงาน devdog
ไฮไลท์บอลไทยลีก 2: มหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรงสู่เส้นทางเพลย์ออฟ

ไฮไลท์บอลไทยลีก 2: มหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรงสู่เส้นทางเพลย์ออฟ

เจาะลึกไฮไลท์บอลไทยลีก 2 ของมหาสารคาม เอสบีที เอฟซี กับฟอร์มร้อนแรง ชัยชนะสำคัญจาก ชิตชนก และบทบาทโค้ชดุสิต สู่เส้นทางเพลย์ออฟที่น่าจับตา!

By ทีมงาน devdog