การทดสอบแฟลชด้วย Selenium ไดรเวอร์เว็บ

⚡ สรุปอย่างชาญฉลาด

การทดสอบแฟลชด้วย Selenium WebDriver ตรวจสอบว่าวิดีโอ เกม และแอนิเมชันที่ใช้ Flash ทำงานได้อย่างถูกต้อง เอกสารนี้อธิบายเกี่ยวกับการจับภาพวัตถุ SWF ที่ฝังอยู่ การกำหนดรหัสวัตถุ และการเล่นอัตโนมัติโดยใช้ WebDriver Selenium การบันทึก IDE และคลาส FlashObjectWebDriver เพื่อการตรวจสอบความถูกต้องที่น่าเชื่อถือ

  • 📌 วัตถุประสงค์หลัก: การทดสอบ Flash จะตรวจสอบว่าสื่อ SWF ที่ฝังอยู่ เช่น วิดีโอ เกม และแอนิเมชัน ทำงานได้อย่างถูกต้องตามที่ออกแบบไว้
  • 🔎 ความท้าทายในการระบุตำแหน่ง: XPath ไม่สามารถเข้าถึงอ็อบเจ็กต์ Flash ได้ ดังนั้นจึงใช้ FlashObjectWebDriver ซึ่งเป็นอ็อบเจ็กต์เฉพาะในการค้นหาอ็อบเจ็กต์เหล่านั้นโดยใช้รหัสอ็อบเจ็กต์ที่กำหนดไว้
  • 🎬 วิธีการบันทึก: Selenium IDE จะบันทึกการกระทำที่เกิดขึ้นกับภาพยนตร์ Flash และเล่นซ้ำโดยใช้ปุ่ม Run สีเขียว
  • ???? วิธีการใช้งาน WebDriver: คลาส FlashObjectWebDriver เรียกใช้ฟังก์ชัน Play, StopPlay และ SetVariable เพื่อควบคุม Flash ผ่านทางโปรแกรม
  • ⚠️ ข้อจำกัดที่สำคัญ: Flash เลิกใช้งานแล้ว FlexMonkium จึงเข้ามาแทนที่ Selenium IDE ทำงานเมื่อการบันทึกและการเล่นแบบเนทีฟล้มเหลว

การทดสอบแฟลชด้วย Selenium ไดรเวอร์เว็บ

การทดสอบแฟลชคืออะไร?

การทดสอบ Flash คือการทดสอบประเภทหนึ่งที่ใช้ตรวจสอบว่าวิดีโอ เกม ภาพยนตร์ ฯลฯ ที่ใช้ Flash ทำงานได้ตามที่คาดหวัง กล่าวอีกนัยหนึ่ง การทดสอบการทำงานของ Flash เรียกว่า การทดสอบ Flash การทดสอบแฟลช Flash เป็นซอฟต์แวร์ยอดนิยมที่พัฒนาโดย Macromedia (ปัจจุบันถูกซื้อกิจการโดย Adobe) ใช้ในการพัฒนาเกม แอปพลิเคชัน แอนิเมชั่นกราฟิก ภาพยนตร์ และอื่นๆ โทรศัพท์มือถือ เกม โปรแกรม ฯลฯ

In Selenium ระบบอัตโนมัติหากไม่พบองค์ประกอบโดยตัวระบุตำแหน่งทั่วไป เช่น รหัส คลาส ชื่อ ฯลฯแล้ว XPath จำเป็นต้องค้นหาองค์ประกอบบนหน้าเว็บเพื่อดำเนินการกับองค์ประกอบนั้น แต่ในการทดสอบ Flash นั้น XPath ไม่สามารถเข้าถึงอ็อบเจ็กต์ Flash ได้ ดังนั้นจึงจำเป็นต้องมีอ็อบเจ็กต์ Flashwebdriver เพื่อค้นหาอ็อบเจ็กต์ Flash ในแอปพลิเคชันใดๆ

การทดสอบแฟลช

ที่นี่คุณจะเห็นวิธีการรันแฟลช การทดสอบ และวิธีการทดสอบแฟลชด้วย Selenium.

ข้อกำหนดเบื้องต้นสำหรับการทดสอบ Flash

ก่อนเริ่มต้น โปรดตรวจสอบข้อกำหนดต่อไปนี้เพื่อทดสอบแอปพลิเคชัน Flash:

  1. แอปพลิเคชั่นแฟลช
  2. เว็บเบราว์เซอร์ที่รองรับ
  3. ปลั๊กอิน Adobe Flash Player

เครื่องมือ- ด้านล่างนี้คือเครื่องมือทดสอบที่มีประโยชน์ในการทดสอบแฟลช

  1. Selenium
  2. สบู่ UI
  3. TestComplete
  4. สตูดิโอทดสอบ ฯลฯ

Selenium เป็นเครื่องมือยอดนิยมสำหรับการทดสอบเว็บ คุณสามารถสร้างเฟรมเวิร์กสำหรับแพลตฟอร์มต่างๆ และภาษาโปรแกรมที่แตกต่างกันได้ เป็นเครื่องมือโอเพนซอร์สและสามารถดาวน์โหลดได้จากเว็บไซต์อย่างเป็นทางการ ใช้งานง่าย ตั้งค่าได้สะดวก และนำไปใช้งานได้ง่าย

การทดสอบ Flash แตกต่างจากการทดสอบองค์ประกอบอื่นๆ อย่างไร

เมื่อเตรียมสิ่งที่จำเป็นครบถ้วนแล้ว การทำความเข้าใจว่าเหตุใด Flash จึงมีพฤติกรรมแตกต่างจากองค์ประกอบ HTML มาตรฐานในระหว่างการทดสอบจึงเป็นสิ่งสำคัญ

  • เหตุใดการจับภาพวัตถุด้วยแฟลชจึงเป็นเรื่องยาก? และจะแก้ไขปัญหานี้ได้อย่างไร?

Flash เป็นเทคโนโลยีที่ล้าสมัยแล้ว การจับภาพวัตถุ Flash ทำได้ยาก เนื่องจากมันแตกต่างจาก HTML นอกจากนี้ Flash ยังเป็นไฟล์ SWF (Small Web Format) ที่ฝังอยู่ภายใน ทำให้การเข้าถึงวัตถุ Flash บนอุปกรณ์เคลื่อนที่ทำได้ยากเช่นกัน

เดเวโลping Flash นั้นยากกว่า Developerping จากมุมมองของ SEO (การเพิ่มประสิทธิภาพกลไกค้นหา) หน้าเว็บ HTML นั้นไม่เหมาะสม เนื่องจาก Flash ไม่สามารถอ่านได้อย่างสมบูรณ์โดยเครื่องมือค้นหา อย่างไรก็ตาม เทคโนโลยีขั้นสูงอย่าง HTML 5 ได้ถูกนำมาใช้เพื่อแก้ไขปัญหาต่างๆ เช่น ประสิทธิภาพและความปลอดภัย

  • แอปพลิเคชัน Flash ทดสอบด้วยวิธีใดบ้าง?

แอปพลิเคชัน Flash ได้รับการทดสอบในสองวิธี:

  • คู่มือ - คุณสามารถทดสอบออบเจ็กต์ Flash ได้โดยดำเนินการกรณีทดสอบด้วยตนเอง เนื่องจากเป็นเรื่องง่ายและง่ายต่อการทดสอบ หลังจากแก้ไขข้อบกพร่อง คุณต้องแน่ใจว่าแฟลชทำงานอย่างถูกต้องตามที่คาดไว้และแจ้งสัญญาณ
  • ระบบอัตโนมัติ - คุณเขียนสคริปต์โดยใช้เครื่องมืออัตโนมัติใดๆ ก็ได้ เช่น Selenium, SoapUI, TestCompleteเป็นต้น แล้วจึงเรียกใช้สคริปต์
  • ความแตกต่างระหว่าง Flash กับองค์ประกอบอื่นๆ

ดังที่กล่าวมาข้างต้น ความแตกต่างหลักระหว่าง Flash กับองค์ประกอบอื่นๆ คือ Flash ฝังอยู่ในไฟล์ SWF ในขณะที่องค์ประกอบอื่นๆ ฝังอยู่ในไฟล์ HTML นั่นเป็นเหตุผลที่ทำให้การจับภาพ HTML ง่ายกว่า Flash

จะหา Flash Object ID ของภาพยนตร์ Flash หรือแอป Flash ได้อย่างไร

เมื่อคุณเข้าใจความแตกต่างระหว่าง Flash และ HTML แล้ว ขั้นตอนต่อไปคือการค้นหาวัตถุ Flash โดยใช้รหัสวัตถุ (Object ID)

ในเว็บเพจใดๆ แท็ก <object> ใช้สำหรับฝังมัลติมีเดีย (เช่น Flash, ActiveX, วิดีโอ ฯลฯ) ซึ่งหมายถึงการ "ฝัง" ลงในเอกสาร HTML แท็กนี้กำหนดคอนเทนเนอร์ที่ฝังอยู่ในแท็ก <object /> หรือ <embed /> ในเอกสาร HTML สำหรับเนื้อหาแบบโต้ตอบหรือแอปพลิเคชันภายนอก ชื่อของ object ใช้เพื่อระบุตำแหน่งของ Flash object บนเว็บเพจ

ตัวอย่างเช่น ในตัวอย่างด้านล่าง คุณจะเห็นว่าภาพยนตร์ Flash ถูกกำหนดไว้ในแท็ก "embed" ในเอกสารหรือไฟล์ HTML

ตัวอย่าง:

/* Html page*/
<html>
<body marginwidth="0" marginheight="0">
<embed width="100%" height="100%" name="plugin" src="http://video/movie_play.swf" type="application/flash"/>
</body>
</html>

ใช้รหัสวัตถุเพื่อค้นหาองค์ประกอบ Flash

คุณสามารถใช้แอตทริบิวต์ของแฟลช เช่น ID ของอ็อบเจกต์ เพื่อค้นหาอ็อบเจกต์แฟลช และคุณสามารถดำเนินการกับอ็อบเจกต์แฟลชได้ตามต้องการ เช่น เล่น หยุด เป็นต้น

ดังที่ได้กล่าวไปแล้ว วัตถุ Flash ไม่สามารถเข้าถึงได้โดยใช้ XPath ดังนั้นในการดำเนินการใดๆ กับวัตถุเหล่านี้ นักพัฒนาจำเป็นต้องกำหนดรหัสวัตถุที่เหมาะสม

หน้าจอด้านล่างแสดงให้เห็นว่ารหัสวัตถุ “MyFlashMovie” ถูกกำหนดให้กับ Flash แล้ว:

ID วัตถุ Flash ของแอป Flash Movie / Flash

วิธีใช้ Flash อัตโนมัติ Selenium การบันทึก IDE

เมื่อกำหนดรหัสวัตถุแล้ว คุณสามารถบันทึกการโต้ตอบบนภาพยนตร์ Flash ได้โดยตรงผ่านทาง... Selenium ไอดี.

คุณยังสามารถตั้งค่าแฟลชอัตโนมัติได้โดยใช้ Selenium ไอดี.

ขั้นตอน 1) คุณต้องเปิดแอปพลิเคชัน Flash ก่อน จากนั้น Selenium IDE ดังแสดงในภาพหน้าจอด้านล่าง:

ใช้แฟลชอัตโนมัติ Selenium การบันทึก IDE

ขั้นตอน 2) ตอนนี้คลิกที่ปุ่ม "บันทึกสีแดง" ทางด้านขวามือ แล้วเริ่มดำเนินการกับภาพยนตร์ Flash จากนั้นคุณจะพบสคริปต์ที่บันทึกไว้ดังที่แสดงด้านล่าง:

ใช้แฟลชอัตโนมัติ Selenium การบันทึก IDE

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

ใช้แฟลชอัตโนมัติ Selenium การบันทึก IDE

วิธีใช้ Flash อัตโนมัติ Selenium ไดรเวอร์เว็บ

เพื่อการควบคุมที่มากกว่าการบันทึก Selenium WebDriver ช่วยให้คุณสามารถควบคุมวัตถุ Flash ผ่านทางโปรแกรมได้

คุณยังสามารถตั้งค่าแฟลชอัตโนมัติได้โดยใช้ Selenium ใช้เว็บไดรเวอร์ผ่านอ็อบเจ็กต์ Flashwebdriver แล้วเรียกเมธอดเพื่อดำเนินการกับอ็อบเจ็กต์ Flash คุณจำเป็นต้อง... ดาวน์โหลดไฟล์ jar flashwebdriver:

ขั้นตอน 1) หลังจากดาวน์โหลดเสร็จแล้ว ให้เพิ่มไฟล์ jar ลงในโปรเจ็กต์ของคุณตามที่แสดงในภาพด้านล่าง

เพิ่มไฟล์ Flash jar ใน Selenium โครงการ

ขั้นตอน 2) ภายใต้ไฟล์ jar ของ flash จะมีคลาส flashobjectwebdriver แยกต่างหาก ให้ใช้งาน flashWebdriver “myFlashmovie” ในสคริปต์ Selenium ของคุณตามที่แสดงในภาพด้านล่าง

ใช้งาน flashWebdriver ใน Selenium ต้นฉบับ

หลังจากเพิ่มคลาสเว็บไดรเวอร์ “MyFlashMovie” แล้ว คุณจะสามารถเข้าถึงอ็อบเจ็กต์ Flash ได้

เมื่อใดจึงจะทำการทดสอบแฟลชอัตโนมัติ

โดยปกติแล้ว คุณจำเป็นต้องทำการทดสอบ Flash แบบอัตโนมัติเมื่อไม่สามารถเข้าถึงอ็อบเจ็กต์ Flash ได้ง่าย มิเช่นนั้นการทดสอบจะถูกยกเลิกและล้มเหลวในการทดสอบอ็อบเจ็กต์ Flash

การสร้างสคริปต์ Selenium สำหรับการทดสอบ Flash

เมื่อนำขั้นตอนทั้งหมดมารวมกัน นี่คือสคริปต์ที่ใช้งานได้สมบูรณ์ซึ่งสามารถเริ่มต้นและควบคุมการทำงานได้ Guruภาพยนตร์แฟลชสาธิต 99 เรื่อง

ขั้นตอน 1) คุณใช้ “Guruภาพยนตร์แฟลชขนาด 99 นิ้ว เพื่อทดสอบสถานการณ์การใช้งานแฟลช

https://demo.guru99.com/test/flash-testing.html

Guruภาพยนตร์แฟลชสาธิต 99 เรื่องสำหรับ Selenium การทดสอบ

ขั้นตอน 2) เขียนสคริปต์ใน Selenium เปิดโปรแกรม Eclipse แล้วรันโค้ดด้านล่างนี้ โค้ดด้านล่างนี้ เมื่อรันแล้วจะทำสิ่งต่อไปนี้:

  • เปิด Firefox เบราว์เซอร์
  • เปิดตัวเว็บไซต์แฟลช guru99
  • เล่นภาพยนตร์แฟลชและ
  • แล้วหยุดหนัง..
import org.openqa.selenium.firefox.FirefoxDriver;
import Flash.FlashObjectWebDriver;
public class Flash {
    public static void main(String[] args) throws InterruptedException {
        // Open firefox browser
        FirefoxDriver driver = new FirefoxDriver();
        // Maximize browser
        driver.manage().window().maximize();
        // Under Flash jar file there is a separate FlashObjectWebDriver class
        FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie");
        // Pass the URL of video
        driver.get("https://demo.guru99.com/test/flash-testing.html");
        Thread.sleep(5000);
        flashApp.callFlashObject("Play");
        Thread.sleep(5000);
        flashApp.callFlashObject("StopPlay");
        Thread.sleep(5000);
        flashApp.callFlashObject("SetVariable","/:message","Flash testing using selenium Webdriver");
        System.out.println(flashApp.callFlashObject("GetVariable","/:message"));
    }
}

ขั้นตอน 3) เรียกใช้สคริปต์ด้านบน

Output: เมื่อรันสคริปต์ข้างต้น ภาพยนตร์แฟลชจะเริ่มเล่นและหยุด เป็นต้น

ความท้าทายในการทดสอบแฟลช

  • การทำให้แอป Flash ทำงานโดยอัตโนมัติเป็นเรื่องท้าทาย คุณสามารถใช้ FlexMonkium ซึ่งเป็นส่วนเสริมสำหรับ Flash เพื่อทำให้แอป Flash ทำงานโดยอัตโนมัติได้ Selenium ไอดี.
  • คุณอาจพบปัญหาในการเปิดใช้งานการบันทึก/เล่นแอป Flex โดยใช้ Selenium- การผสานรวม Flexmonkium วิธีแก้ปัญหาคือ ผู้ใช้ต้องติดตั้งและผสานรวม Flexmonkium เข้ากับระบบ Selenium ศึกษา IDE อย่างละเอียด การติดตั้งที่ถูกต้องจะช่วยให้สามารถบันทึกเพื่อทำงานอัตโนมัติกับแอปพลิเคชัน Flash ได้

คำถามที่พบบ่อย

Adobe ได้ยุติการสนับสนุน Flash Player อย่างเป็นทางการเมื่อวันที่ 31 ธันวาคม 2020 การทดสอบ Flash ในปัจจุบันจึงใช้กับระบบรุ่นเก่าเป็นหลัก เนื่องจากแอปพลิเคชันส่วนใหญ่ได้ย้ายไปใช้ HTML5 แล้ว Selenium ทำงานอัตโนมัติได้โดยไม่ต้องใช้ไลบรารี Flash พิเศษใดๆ

เนื้อหา Flash จะแสดงผลภายในอ็อบเจ็กต์ SWF ที่คอมไพล์แล้วซึ่งฝังอยู่ในหน้าเว็บ ไม่ใช่ในรูปแบบองค์ประกอบ HTML DOM เนื่องจาก XPath เข้าถึง DOM จึงไม่สามารถเข้าถึงส่วนควบคุมภายในของ Flash ได้ ดังนั้นจึงจำเป็นต้องมี ID ของอ็อบเจ็กต์และ FlashObjectWebDriver

FlexMonkium เป็นส่วนเสริมที่ทำงานร่วมกับ Selenium IDE สำหรับบันทึกและเล่นซ้ำแอปพลิเคชัน Flex และ Flash การติดตั้งที่ถูกต้องจะช่วยให้ผู้ทดสอบสามารถบันทึกและเล่นซ้ำการกระทำบนวัตถุ Flash ที่เข้าถึงไม่ได้ในสภาวะปกติได้

เครื่องมือทดสอบภาพที่ใช้ AI จะจดจำองค์ประกอบ Flash บนหน้าจอผ่านการจดจำภาพและรูปแบบ แทนที่จะใช้ DOM วิธีนี้ช่วยให้ทีมสามารถตรวจสอบความถูกต้องของแอนิเมชันและการโต้ตอบที่ตัวระบุตำแหน่งแบบดั้งเดิมไม่สามารถตรวจจับได้

ใช่แล้ว เครื่องมือที่ใช้ AI ช่วยเหลือจะวิเคราะห์ขั้นตอนการทดสอบ Flash ที่มีอยู่และแนะนำตัวระบุตำแหน่งและสคริปต์ HTML5 ที่เทียบเท่า ซึ่งจะช่วยเร่งการย้ายไปยังเฟรมเวิร์กที่ทันสมัย ​​เช่น Selenium ใช้ WebDriver พร้อมลดงานที่ต้องทำซ้ำด้วยตนเอง

สรุปโพสต์นี้ด้วย: