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

ความหมายของ Selenium?
Selenium เป็นเฟรมเวิร์กการทดสอบอัตโนมัติ (โอเพ่นซอร์ส) ฟรีที่ใช้เพื่อตรวจสอบแอปพลิเคชันเว็บในเบราว์เซอร์และแพลตฟอร์มต่างๆ คุณสามารถใช้ภาษาการเขียนโปรแกรมได้หลายภาษาเช่น Java, C#, Pythonฯลฯ เพื่อสร้าง Selenium สคริปต์ทดสอบ การทดสอบเสร็จสิ้นโดยใช้ Selenium เครื่องมือทดสอบมักเรียกกันว่า Selenium การทดสอบ.
ข้อมูลเชิงลึกของผู้เชี่ยวชาญ
“หลีกเลี่ยงการใช้การหน่วงเวลาการนอนหลับแบบคงที่ในการทดสอบของคุณ ให้ใช้การรอที่ชัดเจน (เช่น WebDriverWait) เพื่อรอให้องค์ประกอบโหลด วิธีนี้จะทำให้สคริปต์ของคุณน่าเชื่อถือและรวดเร็วขึ้น เนื่องจากตอบสนองต่อเงื่อนไขหน้าจริงแบบไดนามิก ซึ่งเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับนักเรียนทุกที่ โดยเริ่มจาก Selenium".
👉 สมัครเรียนสดฟรี Selenium โครงการทดสอบ
Selenium ชุดเครื่องมือ
Selenium ซอฟต์แวร์ไม่ได้เป็นเพียงเครื่องมือชิ้นเดียว แต่เป็นชุดซอฟต์แวร์ ซึ่งแต่ละชิ้นมีไว้เพื่อการใช้งานที่แตกต่างกัน Selenium ความต้องการการทดสอบ QA ขององค์กร นี่คือรายการเครื่องมือ
- Selenium สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE)
- Selenium รีโมทคอนโทรล (RC)
- ไดรเวอร์เว็บ
- Selenium ตะแกรง
ในขณะที่ Selenium RC และ WebDriver ถูกรวมเข้าเป็นเฟรมเวิร์กเดียวเพื่อสร้าง Selenium 2. Selenium 1 โดยวิธีการหมายถึง Selenium อาร์.ซี.
วิดีโอสอน Selenium
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
ใครเป็นคนพัฒนา Selenium?
ตั้งแต่ Selenium คือชุดเครื่องมือที่แตกต่างกัน แต่ก็มีนักพัฒนาต่างกันด้วย ด้านล่างนี้คือบุคคลสำคัญที่มีส่วนร่วมอย่างโดดเด่นแก่ Selenium โครงการ
ในขั้นต้น Selenium คือ สร้างโดย Jason Huggins ในปี 2004เขาเป็นวิศวกรที่ ThoughtWorks และกำลังพัฒนาแอปพลิเคชันเว็บที่ต้องมีการทดสอบบ่อยครั้ง เมื่อตระหนักว่าการทดสอบด้วยตนเองที่ซ้ำซากของแอปพลิเคชันกำลังลดประสิทธิภาพลงเรื่อยๆ เขาจึงสร้าง Javaต้นฉบับ โปรแกรมที่จะควบคุมการทำงานของเบราว์เซอร์โดยอัตโนมัติ เขาตั้งชื่อโปรแกรมนี้ว่า "Java“สคริปต์ทดสอบรันเนอร์”
เขามองเห็นศักยภาพในแนวคิดนี้ในการช่วยให้แอปพลิเคชันเว็บอื่นๆ เป็นอัตโนมัติ JavaScriptRunner โอเพ่นซอร์ส ซึ่งต่อมาได้เปลี่ยนชื่อ Selenium แกน- สำหรับผู้ที่สนใจสำรวจตัวเลือกอื่นๆ สำหรับการทดสอบแอปพลิเคชันเว็บ โปรดดูสิ่งเหล่านี้ Selenium ทางเลือก.
ปัญหานโยบายแหล่งกำเนิดเดียวกัน
นโยบาย Same Origin ห้าม Javaโค้ดสคริปต์จากการเข้าถึงองค์ประกอบจากโดเมนที่แตกต่างจากที่เปิดตัว ตัวอย่างเช่นโค้ด HTML ใน www.google.com ใช้ Javaโปรแกรมสคริปต์ “randomScript.js” นโยบายต้นทางเดียวกันนี้จะอนุญาตให้ randomScript.js เข้าถึงหน้าเว็บภายใน google.com เท่านั้น เช่น google.com/mail, google.com/login หรือ google.com/signup อย่างไรก็ตาม โปรแกรมไม่สามารถเข้าถึงหน้าเว็บจากเว็บไซต์อื่น เช่น yahoo.com/search หรือ guru99.com ได้ เนื่องจากหน้าเว็บเหล่านั้นอยู่ในโดเมนที่ต่างกัน
นี่คือเหตุผลว่าทำไมก่อน Selenium RC ผู้ทดสอบจำเป็นต้องติดตั้งสำเนาในเครื่องของทั้งสองอย่าง Selenium แกนกลาง (ก Javaโปรแกรมสคริปต์) และเว็บเซิร์ฟเวอร์ที่มีแอปพลิเคชันเว็บที่กำลังทดสอบอยู่ ดังนั้นพวกมันจึงอยู่ในโดเมนเดียวกัน
กำเนิดของ Selenium รีโมท (Selenium อาร์ซี)
น่าเสียดายที่ผู้ทดสอบใช้ Selenium Core ต้องติดตั้งแอปพลิเคชันทั้งหมดภายใต้การทดสอบและเว็บเซิร์ฟเวอร์บนคอมพิวเตอร์ของตนเองเนื่องจากข้อจำกัดที่กำหนดโดย นโยบายแหล่งกำเนิดเดียวกัน. วิศวกรของ ThoughtWorks อีกคนหนึ่ง พอล แฮมมันต์ตัดสินใจสร้างเซิร์ฟเวอร์ที่จะทำหน้าที่เป็นพร็อกซี HTTP เพื่อ "หลอก" เบราว์เซอร์ให้เชื่อว่า Selenium Core และเว็บแอปพลิเคชันที่กำลังทดสอบมาจากโดเมนเดียวกัน ระบบนี้จึงเป็นที่รู้จักในชื่อ Selenium การควบคุมระยะไกล or Selenium 1.
กำเนิดของ Selenium ตะแกรง
Selenium กริดได้รับการพัฒนาโดย แพทริค ไลท์บอดี้ เพื่อตอบสนองความต้องการในการลดเวลาในการดำเนินการทดสอบให้น้อยที่สุดเท่าที่จะเป็นไปได้ ในตอนแรกเขาเรียกระบบนี้ว่า “การโฮสต์ QA” มีความสามารถในการจับภาพหน้าจอเบราว์เซอร์ในช่วงที่สำคัญ และยังมี ส่งออก Selenium สั่งการไปยังเครื่องต่างๆ ได้พร้อมกัน
กำเนิดของ Selenium IDE
ชินยะ คาซาทานิ ของญี่ปุ่นสร้างขึ้น Selenium IDE, Firefox และส่วนขยาย Chrome ที่สามารถทำให้เบราว์เซอร์ทำงานอัตโนมัติผ่านฟีเจอร์บันทึกและเล่นซ้ำ เขาคิดไอเดียนี้ขึ้นมาเพื่อเพิ่มความเร็วในการสร้างกรณีทดสอบ เขาได้บริจาค Selenium IDE ไปยัง Selenium โครงการใน 2006.
กำเนิดของ WebDriver
Simon Stewart สร้าง WebDriver ประมาณ 2006 เมื่อเบราว์เซอร์และเว็บแอปพลิเคชันมีประสิทธิภาพมากขึ้นและมีข้อจำกัดมากขึ้น Javaโปรแกรมสคริปต์เช่น Selenium แกน มันเป็นเฟรมเวิร์กการทดสอบข้ามแพลตฟอร์มแรกที่สามารถควบคุมเบราว์เซอร์ในระดับระบบปฏิบัติการได้
กำเนิดของ Selenium 2
In 2008ทั้ง Selenium ทีมงานตัดสินใจรวม WebDriver และ Selenium RC จะสร้างเครื่องมือที่มีประสิทธิภาพมากขึ้นที่เรียกว่า Selenium 2และ WebDriver เป็นแกนหลัก. ปัจจุบัน Selenium RC ยังคงอยู่ระหว่างการพัฒนา แต่อยู่ในโหมดบำรุงรักษาเท่านั้น ส่วนใหญ่ Selenium ขณะนี้ความพยายามของโครงการมุ่งเน้นไปที่ Selenium 2.
แล้วทำไมถึงชื่อ Selenium?
ชื่อ Selenium มาจากมุกตลกที่เจสันเคยเล่าให้ทีมฟังครั้งหนึ่ง ในระหว่าง Seleniumพัฒนาการอีกประการหนึ่ง การทดสอบอัตโนมัติ เฟรมเวิร์กได้รับความนิยมผลิตโดยบริษัทที่ชื่อว่า Mercury อินเตอร์แอคที (ใช่ บริษัทที่ผลิต QTP ก่อนที่ HP จะเข้าซื้อกิจการ) ตั้งแต่ Selenium เป็นยาแก้พิษที่รู้จักกันดีสำหรับ Mercury เจสันเสนอชื่อนั้นและเพื่อนร่วมทีมของเขาด้วยพิษ นั่นคือวิธีที่เราเรียกกรอบการทำงานนี้มาจนถึงปัจจุบัน
ความหมายของ Selenium IDE?
Selenium สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) คือ กรอบที่ง่ายที่สุด ที่ Selenium ชุดและเป็น วิธีที่ง่ายที่สุดในการเรียนรู้. มันเป็น Chrome และ Firefox เสียบเข้าไป ที่คุณสามารถติดตั้งได้อย่างง่ายดายเหมือนกับปลั๊กอินอื่นๆ แต่เนื่องจากความเรียบง่ายของมัน Selenium IDE ควรใช้เป็นไฟล์ เครื่องมือสร้างต้นแบบ- หากคุณต้องการสร้างกรณีทดสอบขั้นสูงเพิ่มเติม คุณจะต้องใช้อย่างใดอย่างหนึ่ง Selenium RC หรือ WebDriver
ความหมายของ Selenium รีโมท (Selenium อาร์ซี)?
Selenium RC คือ กรอบการทดสอบเรือธง ของทั้งหมด Selenium โครงการมาเป็นเวลานาน นี่เป็นระบบอัตโนมัติเครื่องแรก การทดสอบเว็บ เครื่องมือที่ อนุญาตให้ผู้ใช้ใช้ภาษาการเขียนโปรแกรมที่พวกเขาต้องการตั้งแต่เวอร์ชัน 2.25.0 เป็นต้นไป RC สามารถรองรับภาษาการเขียนโปรแกรมต่อไปนี้:
WebDriver คืออะไร?
WebDriver พิสูจน์แล้วว่าดีกว่า Selenium ไอดีและ Selenium RC ในหลายด้าน ใช้แนวทางที่ทันสมัยและมีเสถียรภาพมากขึ้นในการดำเนินการของเบราว์เซอร์โดยอัตโนมัติ WebDriver ไม่เหมือน Selenium RC ไม่ต้องพึ่งพา Javaสคริปต์สำหรับ Selenium การทดสอบอัตโนมัติ มันควบคุมเบราว์เซอร์โดยการสื่อสารโดยตรงกับมัน
ภาษาที่รองรับจะเหมือนกับภาษาใน Selenium อาร์.ซี.
- Java
- C#
- PHP
- Python
- Perl
- ทับทิม
ความหมายของ Selenium กริด?
Selenium กริดเป็นเครื่องมือ ใช้ร่วมกับ Selenium RC เพื่อทำงาน การทดสอบแบบขนาน ข้ามเครื่องและเบราว์เซอร์ต่างๆ ในเวลาเดียวกัน การดำเนินการแบบขนานหมายถึงการดำเนินการทดสอบหลายรายการพร้อมกัน
สิ่งอำนวยความสะดวก:
- ช่วยให้ การดำเนินการทดสอบพร้อมกัน in เบราว์เซอร์และสภาพแวดล้อมที่หลากหลาย
- ประหยัดเวลา มหาศาล.
- ใช้ ฮับและโหนด แนวคิด. ศูนย์กลางทำหน้าที่เป็นแหล่งศูนย์กลางของ Selenium คำสั่งไปยังแต่ละโหนดที่เชื่อมต่ออยู่
Selenium การสนับสนุนเบราว์เซอร์และสภาพแวดล้อม
เนื่องจากความแตกต่างทางด้านสถาปัตยกรรม Selenium SDI, Selenium RC และ WebDriver รองรับชุดเบราว์เซอร์และสภาพแวดล้อมปฏิบัติการที่แตกต่างกัน
| Selenium IDE | ไดรเวอร์เว็บ | |
|---|---|---|
| รองรับเบราว์เซอร์ | Mozilla Firefox และ Chrome | Google Chrome 12 + Firefox Internet Explorer 7+ และ Edge ซาฟารี HtmlUnit และ PhantomUnit |
| Operaระบบ ting | Windows, แมคโอเอสเอ็กซ์, ลินุกซ์ | ระบบปฏิบัติการทั้งหมดที่เบราว์เซอร์ข้างต้นสามารถทำงานได้ |
หมายเหตุ Opera ไดร์เวอร์ไม่ทำงานอีกต่อไป
วิธีการเลือกสิ่งที่ถูกต้อง Selenium เครื่องมือสำหรับความต้องการของคุณ
| เครื่องมือ | ทำไมถึงเลือก? |
|---|---|
| Selenium IDE |
|
| Selenium RC |
|
| ไดรเวอร์เว็บ |
|
| Selenium ตะแกรง |
|
กรณีศึกษาในโลกแห่งความเป็นจริง
🔍 กรณีศึกษาที่ 1: ความเข้ากันได้ของเบราว์เซอร์หลายตัวสำหรับแดชบอร์ด SaaS
สถานการณ์
บริษัทซอฟต์แวร์ในรูปแบบบริการกำลังเตรียมเปิดตัวแดชบอร์ดการวิเคราะห์ที่ต้องทำงานสอดคล้องกันในเบราว์เซอร์สมัยใหม่ (Chrome Firefox, เอจ, ซาฟารี).
ชาเลนจ์ ของคุณ
การทดสอบด้วยตนเองบนแต่ละเบราว์เซอร์นั้นใช้เวลานาน เสี่ยงต่อข้อผิดพลาด และไม่สามารถรับมือกับการพัฒนาอย่างรวดเร็วได้
วิธีแก้ปัญหาด้วย Selenium
วิศวกร QA ได้สร้าง Selenium ตะแกรง ตั้งค่าให้ดำเนินการชุดทดสอบเดียวกันพร้อมกันบนเบราว์เซอร์และระบบปฏิบัติการหลายตัว การทดสอบถูกเขียนใน Python ด้วย Selenium WebDriver สำหรับการดำเนินการต่างๆ เช่น การเข้าสู่ระบบ การกรองแผนภูมิ และการส่งออกข้อมูล
ผล
- ลดระยะเวลาการถดถอยลง 80%
- ค้นพบข้อบกพร่องในการเรนเดอร์เฉพาะเบราว์เซอร์ในระยะเริ่มแรก (เช่น กราฟที่ไม่ตรงกันใน IE)
- รักษา UX ของแดชบอร์ดให้สอดคล้องกันทั่วทั้งเมทริกซ์เบราว์เซอร์โดยไม่ต้องมีรอบการทำงานด้วยตนเองเพิ่มเติม
⚙️ กรณีศึกษาที่ 2: การรวม CI/CD สำหรับแอปเว็บผ่าน Selenium + TestNG
สถานการณ์
บริษัทพัฒนาเว็บขนาดกลางแห่งหนึ่งใช้ CI/CD pipeline ของ Jenkins พวกเขาต้องการให้แน่ใจว่าการเดินทางของผู้ใช้หลักจะราบรื่นหลังจากการเปลี่ยนแปลงโค้ดทุกครั้ง
ชาเลนจ์ ของคุณ
การปรับใช้การสร้างใหม่บางครั้งจะทำให้กระบวนการของผู้ใช้หยุดชะงัก เช่น การเข้าสู่ระบบ การส่งแบบฟอร์ม ซึ่งหลบหนีการตรวจจับจนกระทั่งการทดสอบด้วยตนเองในตอนสิ้นวัน
วิธีแก้ปัญหาด้วย Selenium
ผู้ทดสอบได้นำ Javaตาม Selenium ชุดโปรแกรม WebDriver ที่บูรณาการกับ TestNGการทดสอบครอบคลุมถึงการตรวจสอบสิทธิ์ การอัปเดตโปรไฟล์ และฟังก์ชันการค้นหา โดยการทดสอบเหล่านี้ดำเนินการบนทุกการสร้าง Jenkins โดยใช้ประโยชน์จากการดำเนินการแบบขนานและการกำหนดพารามิเตอร์ของเบราว์เซอร์
ผล
- ได้รับผลตอบรับจากความล้มเหลวอย่างรวดเร็ว: โฟลว์ที่มีปัญหาจะถูกทำเครื่องหมายทันที
- ลดจุดบกพร่องหลังการใช้งานลงมากกว่า 60%
- ช่วยให้นักพัฒนาสามารถแก้ไขปัญหาต่างๆ ก่อนที่จะถึงขั้นตอน QA
🚀 กรณีศึกษาที่ 3: การเร่งการเปิดตัวฟีเจอร์สำหรับ Travel Aggregator
สถานการณ์
แพลตฟอร์มตัวรวบรวมข้อมูลการเดินทางจำเป็นต้องเปิดตัวฟีเจอร์การจองเที่ยวบินที่ปรับปรุงใหม่ การทดสอบการถดถอยด้วยตนเองในกว่า 10 หน้าใช้เวลาหลายวันและถูกบล็อกไม่ให้เปิดตัว
ชาเลนจ์ ของคุณ
แรงกดดันในการลดระยะเวลาในการนำสินค้าออกสู่ตลาดอาจไม่สามารถแซงหน้ารอบการทดสอบด้วยตนเองได้ ซึ่งอาจทำให้เกิดความล่าช้าหรือคุณภาพลดลง
วิธีแก้ปัญหาด้วย Selenium & โมเดลวัตถุหน้า
หัวหน้าฝ่ายอัตโนมัติของ QA แนะนำโครงสร้าง Page Object Model (POM) ใน C# Selenium สคริปต์ WebDriver รวบรวมองค์ประกอบและการดำเนินการของหน้า (ค้นหาเที่ยวบิน ใช้ตัวกรอง และกรณีการชำระเงิน) มีการเรียกใช้การทดสอบอัตโนมัติทุกคืนบน GitLab CI
ผล
- ระยะเวลาการทดสอบลดลงจาก 3 วันเหลือเพียง 4 ชั่วโมง
- การนำสคริปต์มาใช้ซ้ำกับฟีเจอร์ต่างๆ มากมายช่วยลดความพยายามในการเขียนสคริปต์ลง 50 เปอร์เซ็นต์
- ความมั่นใจเพิ่มขึ้น: การเปิดตัวถูกจัดส่งตามกำหนดเวลาโดยมีรายงานจุดบกพร่องน้อยที่สุด
ร่วมกัน Selenium ความท้าทาย (และการแก้ไข)
แม้ Selenium มีประสิทธิภาพ นักทดสอบมักเผชิญกับความท้าทายที่อาจส่งผลต่อความน่าเชื่อถือและความเร็ว นี่คือปัญหาที่พบบ่อยและวิธีแก้ไข:
- การทดสอบที่ไม่แน่นอน:
การทดสอบอาจล้มเหลวโดยสุ่มเนื่องจากปัญหาเวลาหรือเครือข่าย
แก้ไข: ใช้การรอที่ชัดเจนและตัวระบุตำแหน่งที่เสถียร หลีกเลี่ยงThread.sleep(). - องค์ประกอบเว็บแบบไดนามิก:
การเปลี่ยนแปลง ID องค์ประกอบหรือ XPath ทำให้เกิดข้อผิดพลาดไม่พบองค์ประกอบ
แก้ไข: ใช้ XPath สัมพันธ์, ตัวเลือก CSS หรือการจัดการแอตทริบิวต์แบบไดนามิก - Syncปัญหาการจับเวลา:
องค์ประกอบโหลดช้ากว่าการทำงานของสคริปต์
แก้ไข: นำ WebDriverWait ไปใช้งานภายใต้เงื่อนไขที่คาดหวัง - ความไม่สอดคล้องกันระหว่างเบราว์เซอร์ต่างๆ:
การทดสอบมีพฤติกรรมแตกต่างกันบน Chrome Firefoxหรือ Edge
แก้ไข: รันการทดสอบบน Selenium แพลตฟอร์มกริดหรือคลาวด์สำหรับการตรวจสอบข้ามเบราว์เซอร์ - การจัดการป๊อปอัปและการแจ้งเตือน:
ป๊อปอัปที่ไม่คาดคิดสามารถขัดจังหวะการทดสอบได้
แก้ไข: ใช้ Seleniumอินเทอร์เฟซการแจ้งเตือนหรือบล็อก Try–Catch เพื่อจัดการอย่างเหมาะสม - ค่าใช้จ่ายในการบำรุงรักษาการทดสอบ:
การเปลี่ยนแปลง UI บ่อยครั้งทำให้การทดสอบมีความเปราะบาง
แก้ไข: นำ Page Object Model (POM) และการควบคุมเวอร์ชันมาใช้เพื่อการอัปเดตที่ง่ายดาย - ความท้าทายในการบูรณาการ:
ท่อ CI/CD อาจล้มเหลวเนื่องจากปัญหาไดรเวอร์
แก้ไข: ใช้ Selenium ผู้จัดการ (Selenium 4+) หรือ WebDriver Manager เพื่อจัดการไดรเวอร์โดยอัตโนมัติ
ในระยะสั้น: ส่วนมาก Selenium ปัญหาเกิดจากการซิงโครไนซ์ที่ไม่ดีหรือตัวระบุตำแหน่งที่เปราะบาง ซึ่งสามารถแก้ไขได้ด้วยการรอที่ชาญฉลาด การออกแบบแบบโมดูลาร์ และการบำรุงรักษาอย่างต่อเนื่อง




.png)
.jpg)
.jpg)
.jpg)



