ความหมายของ Selenium? บทนำ บทช่วยสอน

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

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

  • หลักการสำคัญ: Selenium ช่วยให้การตรวจสอบอัตโนมัติของแอปพลิเคชันเว็บบนเบราว์เซอร์และระบบปฏิบัติการที่หลากหลายรองรับภาษาต่างๆ เช่น Java, C#, Pythonและอื่น ๆ
  • โครงสร้างชุดเครื่องมือ: Selenium ประกอบด้วยส่วนประกอบหลักสี่ส่วน ได้แก่ IDE, Remote Control, WebDriver และ Grid โดยแต่ละส่วนจะตอบสนองความต้องการด้านระบบอัตโนมัติที่แตกต่างกัน
  • IDE และการสร้างต้นแบบ: Selenium IDE เป็นส่วนขยายของเบราว์เซอร์สำหรับการสร้างเคสและการสร้างต้นแบบอย่างรวดเร็ว แต่เหมาะที่สุดสำหรับสถานการณ์การทดสอบแบบง่าย
  • วิวัฒนาการของการควบคุมระยะไกล: Selenium RC ซึ่งอยู่ในโหมดการบำรุงรักษาในปัจจุบัน ถือเป็นเฟรมเวิร์กแรกที่อนุญาตให้ใช้สคริปต์ทดสอบในหลายภาษา ซึ่งจะช่วยแก้ไขข้อจำกัดนโยบายของเบราว์เซอร์
  • การใช้งาน WebDriver: WebDriver สื่อสารกับเบราว์เซอร์โดยตรง ช่วยให้ควบคุมได้ในระดับระบบปฏิบัติการและมีเสถียรภาพที่เหนือกว่าสำหรับการทำงานอัตโนมัติที่ซับซ้อน
  • กริดสำหรับการประมวลผลแบบคู่ขนาน: Selenium Grid ช่วยให้สามารถดำเนินการทดสอบแบบขนานบนหลายเครื่องและหลายเบราว์เซอร์ได้ ช่วยลดระยะเวลาของรอบการทดสอบลงอย่างมาก
  • รองรับหลายเบราว์เซอร์และแพลตฟอร์ม: Selenium รองรับเบราว์เซอร์และระบบปฏิบัติการที่หลากหลาย มอบความยืดหยุ่นที่ไม่มีใครเทียบได้สำหรับการตรวจสอบคุณภาพเว็บ
  • ผลกระทบในโลกแห่งความเป็นจริง: ทีมใช้ Selenium เพื่อเร่งรอบการเปิดตัว ลดการทดสอบด้วยตนเอง และให้แน่ใจว่า UX สอดคล้องกันในทุกเบราว์เซอร์ พร้อมด้วยผลลัพธ์ที่พิสูจน์แล้วใน SaaS, CI/CD และการส่งมอบฟีเจอร์

ซีลีเนียมคืออะไร

ความหมายของ Selenium?

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

ข้อมูลเชิงลึกของผู้เชี่ยวชาญ

“หลีกเลี่ยงการใช้การหน่วงเวลาการนอนหลับแบบคงที่ในการทดสอบของคุณ ให้ใช้การรอที่ชัดเจน (เช่น WebDriverWait) เพื่อรอให้องค์ประกอบโหลด วิธีนี้จะทำให้สคริปต์ของคุณน่าเชื่อถือและรวดเร็วขึ้น เนื่องจากตอบสนองต่อเงื่อนไขหน้าจริงแบบไดนามิก ซึ่งเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับนักเรียนทุกที่ โดยเริ่มจาก Selenium".

— ฮิมานชู เชธ Selenium ระดับเชี่ยวชาญ

👉 สมัครเรียนสดฟรี Selenium โครงการทดสอบ

Selenium ชุดเครื่องมือ

Selenium ซอฟต์แวร์ไม่ได้เป็นเพียงเครื่องมือชิ้นเดียว แต่เป็นชุดซอฟต์แวร์ ซึ่งแต่ละชิ้นมีไว้เพื่อการใช้งานที่แตกต่างกัน Selenium ความต้องการการทดสอบ QA ขององค์กร นี่คือรายการเครื่องมือ

  • Selenium สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE)
  • Selenium รีโมทคอนโทรล (RC)
  • ไดรเวอร์เว็บ
  • Selenium ตะแกรง

Selenium ชุดเครื่องมือ

ในขณะที่ Selenium RC และ WebDriver ถูกรวมเข้าเป็นเฟรมเวิร์กเดียวเพื่อสร้าง Selenium 2. Selenium 1 โดยวิธีการหมายถึง Selenium อาร์.ซี.

วิดีโอสอน Selenium

คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้

ใครเป็นคนพัฒนา Selenium?

ตั้งแต่ 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

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

ความหมายของ Selenium IDE?

Selenium สภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) คือ กรอบที่ง่ายที่สุด ที่ Selenium ชุดและเป็น วิธีที่ง่ายที่สุดในการเรียนรู้. มันเป็น Chrome และ Firefox เสียบเข้าไป ที่คุณสามารถติดตั้งได้อย่างง่ายดายเหมือนกับปลั๊กอินอื่นๆ แต่เนื่องจากความเรียบง่ายของมัน Selenium IDE ควรใช้เป็นไฟล์ เครื่องมือสร้างต้นแบบ- หากคุณต้องการสร้างกรณีทดสอบขั้นสูงเพิ่มเติม คุณจะต้องใช้อย่างใดอย่างหนึ่ง Selenium RC หรือ WebDriver

Selenium IDE

ความหมายของ Selenium รีโมท (Selenium อาร์ซี)?

Selenium RC คือ กรอบการทดสอบเรือธง ของทั้งหมด Selenium โครงการมาเป็นเวลานาน นี่เป็นระบบอัตโนมัติเครื่องแรก การทดสอบเว็บ เครื่องมือที่ อนุญาตให้ผู้ใช้ใช้ภาษาการเขียนโปรแกรมที่พวกเขาต้องการตั้งแต่เวอร์ชัน 2.25.0 เป็นต้นไป RC สามารถรองรับภาษาการเขียนโปรแกรมต่อไปนี้:

Selenium รีโมท (Selenium อาร์ซี)

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ได้แก่ :
  • คำสั่ง Selenese เช่น พิมพ์, เปิด, คลิกและรอ, ยืนยัน, ตรวจสอบ ฯลฯ
  • ตัวระบุตำแหน่ง เช่น id, ชื่อ, xpath, ตัวเลือก css เป็นต้น
  • ดำเนินการปรับแต่ง Javaโค้ดสคริปต์ที่ใช้ runScript
  • การส่งออกกรณีทดสอบในรูปแบบต่างๆ
  • เพื่อสร้างการทดสอบโดยมีความรู้พื้นฐานด้านการเขียนโปรแกรมเพียงเล็กน้อยหรือไม่มีเลย
  • เพื่อสร้างกรณีทดสอบและชุดทดสอบง่ายๆ ที่คุณสามารถส่งออกไปยัง RC หรือ WebDriver ในภายหลังได้
  • เพื่อทดสอบแอปพลิเคชันเว็บกับ Firefox และ Chrome เท่านั้น
Selenium RC
  • เพื่อออกแบบการทดสอบโดยใช้ภาษาที่แสดงออกมากกว่า Selenese
  • ในการรันการทดสอบของคุณกับเบราว์เซอร์ที่แตกต่างกัน (ยกเว้น HtmlUnit) บนระบบปฏิบัติการที่แตกต่างกัน
  • เพื่อปรับใช้การทดสอบของคุณในหลายสภาพแวดล้อมโดยใช้ Selenium กริด.
  • เพื่อทดสอบแอปพลิเคชันของคุณกับเบราว์เซอร์ใหม่ที่รองรับ Javaต้นฉบับ
  • เพื่อทดสอบแอปพลิเคชันเว็บที่มีสถานการณ์ที่ใช้ AJAX ที่ซับซ้อน
ไดรเวอร์เว็บ
  • เพื่อใช้ภาษาโปรแกรมบางอย่างในการออกแบบกรณีทดสอบของคุณ
  • เพื่อทดสอบแอปพลิเคชันที่มีฟังก์ชันการทำงานแบบ AJAX มากมาย
  • เพื่อดำเนินการทดสอบบนเบราว์เซอร์ HtmlUnit
  • เพื่อสร้างผลการทดสอบแบบกำหนดเอง
Selenium ตะแกรง
  • เพื่อเรียกใช้ของคุณ Selenium สคริปต์ RC ในหลายเบราว์เซอร์และระบบปฏิบัติการพร้อมกัน
  • การรันชุดการทดสอบขนาดใหญ่ที่ต้องเสร็จสิ้นภายในเวลาอันสั้นที่สุดเท่าที่จะเป็นไปได้

กรณีศึกษาในโลกแห่งความเป็นจริง

🔍 กรณีศึกษาที่ 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 มีประสิทธิภาพ นักทดสอบมักเผชิญกับความท้าทายที่อาจส่งผลต่อความน่าเชื่อถือและความเร็ว นี่คือปัญหาที่พบบ่อยและวิธีแก้ไข:

  1. การทดสอบที่ไม่แน่นอน:
    การทดสอบอาจล้มเหลวโดยสุ่มเนื่องจากปัญหาเวลาหรือเครือข่าย
    แก้ไข: ใช้การรอที่ชัดเจนและตัวระบุตำแหน่งที่เสถียร หลีกเลี่ยง Thread.sleep().
  2. องค์ประกอบเว็บแบบไดนามิก:
    การเปลี่ยนแปลง ID องค์ประกอบหรือ XPath ทำให้เกิดข้อผิดพลาดไม่พบองค์ประกอบ
    แก้ไข: ใช้ XPath สัมพันธ์, ตัวเลือก CSS หรือการจัดการแอตทริบิวต์แบบไดนามิก
  3. Syncปัญหาการจับเวลา:
    องค์ประกอบโหลดช้ากว่าการทำงานของสคริปต์
    แก้ไข: นำ WebDriverWait ไปใช้งานภายใต้เงื่อนไขที่คาดหวัง
  4. ความไม่สอดคล้องกันระหว่างเบราว์เซอร์ต่างๆ:
    การทดสอบมีพฤติกรรมแตกต่างกันบน Chrome Firefoxหรือ Edge
    แก้ไข: รันการทดสอบบน Selenium แพลตฟอร์มกริดหรือคลาวด์สำหรับการตรวจสอบข้ามเบราว์เซอร์
  5. การจัดการป๊อปอัปและการแจ้งเตือน:
    ป๊อปอัปที่ไม่คาดคิดสามารถขัดจังหวะการทดสอบได้
    แก้ไข: ใช้ Seleniumอินเทอร์เฟซการแจ้งเตือนหรือบล็อก Try–Catch เพื่อจัดการอย่างเหมาะสม
  6. ค่าใช้จ่ายในการบำรุงรักษาการทดสอบ:
    การเปลี่ยนแปลง UI บ่อยครั้งทำให้การทดสอบมีความเปราะบาง
    แก้ไข: นำ Page Object Model (POM) และการควบคุมเวอร์ชันมาใช้เพื่อการอัปเดตที่ง่ายดาย
  7. ความท้าทายในการบูรณาการ:
    ท่อ CI/CD อาจล้มเหลวเนื่องจากปัญหาไดรเวอร์
    แก้ไข: ใช้ Selenium ผู้จัดการ (Selenium 4+) หรือ WebDriver Manager เพื่อจัดการไดรเวอร์โดยอัตโนมัติ

ในระยะสั้น: ส่วนมาก Selenium ปัญหาเกิดจากการซิงโครไนซ์ที่ไม่ดีหรือตัวระบุตำแหน่งที่เปราะบาง ซึ่งสามารถแก้ไขได้ด้วยการรอที่ชาญฉลาด การออกแบบแบบโมดูลาร์ และการบำรุงรักษาอย่างต่อเนื่อง

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

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

Selenium ใช้เป็นหลักสำหรับการทดสอบบนเบราว์เซอร์แบบอัตโนมัติ ช่วยให้มั่นใจได้ว่าแอปพลิเคชันเว็บทำงานได้อย่างถูกต้องบนเบราว์เซอร์ต่างๆ รองรับการทดสอบการถดถอยและการทดสอบเชิงฟังก์ชัน และผสานรวมกับขั้นตอน CI/CD ได้อย่างง่ายดายเพื่อการทดสอบอย่างต่อเนื่อง

Selenium ประกอบด้วยส่วนประกอบหลัก 4 ประการ: Selenium IDE (เครื่องมือบันทึก/เล่น) Selenium RC (เลิกใช้) Selenium ไดรเวอร์เว็บ (API ระบบอัตโนมัติสมัยใหม่) และ Selenium ตะแกรง (สำหรับการดำเนินการทดสอบแบบคู่ขนานและข้ามเบราว์เซอร์)

มี 4 ประเภท คือ: Selenium IDE สำหรับการบันทึกการทดสอบ Selenium RC สำหรับระบบอัตโนมัติแบบเดิม Selenium ไดรเวอร์เว็บ สำหรับการควบคุมเบราว์เซอร์โดยตรงและ Selenium ตะแกรง สำหรับการทดสอบแบบกระจายและขนานบนเบราว์เซอร์หลายตัว

Selenium WebDriver เป็นส่วนประกอบหลักที่โต้ตอบโดยตรงกับเบราว์เซอร์โดยใช้ API พื้นฐาน ช่วยให้นักพัฒนาสามารถเขียนสคริปต์อัตโนมัติที่มีประสิทธิภาพและรองรับหลายเบราว์เซอร์ในภาษาต่างๆ เช่น Java, Pythonและ C# โดยไม่ต้องพึ่ง Javaต้นฉบับ

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

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