ขณะทดสอบเว็บแอปพลิเคชัน จำเป็นต้องเลือกเครื่องมือที่ถูกต้องสำหรับการทดสอบเสมอ สิ่งนี้ช่วยให้เราลดการทำงานซ้ำและเพิ่มความเร็วในการดำเนินการทดสอบ เครื่องมือที่เลือกพร้อมกับเฟรมเวิร์กการทำงานอัตโนมัติควรมีประโยชน์เสมอในการดำเนินการทดสอบการถดถอยอย่างมีประสิทธิภาพ
การทดสอบการถดถอย โดยปกติจะดำเนินการกับโมดูลที่ทดสอบก่อนหน้านี้เนื่องจากการเปลี่ยนแปลงหรือการปรับเปลี่ยนในโมดูลที่มีอยู่ การปรับปรุงฟังก์ชันการทำงาน การเปลี่ยนแปลงการกำหนดค่า หรือการอัพเกรดเล็กน้อยหรือสำคัญอื่น ๆ ที่เกี่ยวข้องกับฟังก์ชันการทำงาน นอกจากนี้ยังอาจดำเนินการได้ทุกครั้งที่มีการแก้ไขข้อบกพร่องที่เกิดขึ้น
ควรทำการทดสอบซ้ำและทดสอบการถดถอยเมื่อใด
การทดสอบซ้ำจะดำเนินการเพื่อให้แน่ใจว่าการแก้ไขของนักพัฒนาสำหรับข้อบกพร่องที่มีอยู่ทำงานตามที่คาดไว้
การทดสอบการถดถอยจะดำเนินการในโมดูลที่ทดสอบก่อนหน้านี้เพื่อให้แน่ใจว่าข้อบกพร่องใหม่จะไม่เพิ่มขึ้นอันเป็นผลมาจากการปรับเปลี่ยนใด ๆ อันเนื่องมาจากการปรับปรุงโค้ด การแก้ไขข้อบกพร่องสำหรับข้อบกพร่องที่มีอยู่ หรือการอัปเกรดใดๆ ในการกำหนดค่า
จำเป็นต้องถดถอยจริงหรือ?
ให้เราดูตัวอย่างเพื่อปรับประเด็นข้างต้น ให้เราพิจารณาสถานการณ์ที่แบรนด์เสื้อผ้าเปิดตัวเว็บไซต์สำหรับการช็อปปิ้งออนไลน์และใช้บัตรเครดิตเป็นวิธีการชำระเงิน สิ่งนี้ได้รับการพัฒนาและปรับใช้สำหรับการทดสอบเรียบร้อยแล้ว ผู้ทดสอบทำการทดสอบการทำงานและการทดสอบที่ไม่ใช่การทำงานในโครงสร้างนี้ และทำให้เกิดข้อบกพร่องหากมีความคลาดเคลื่อนในลักษณะการทำงาน ข้อบกพร่องได้รับการแก้ไขแล้ว บิลด์ถูกปรับใช้ใหม่ และการทดสอบได้ดำเนินการสำเร็จแล้ว และฟังก์ชันนี้ใช้งานได้จริง หลังจากผ่านไปสองสามสัปดาห์ ฟังก์ชันใหม่อื่นได้รับการออกแบบ ซึ่งช่วยให้ผู้ใช้สามารถชำระเงินผ่านบัตรเดบิตได้ โมดูลใหม่นี้ได้รับการพัฒนาและปรับใช้สำหรับการทดสอบ โมดูลใหม่ได้รับการทดสอบเรียบร้อยแล้ว จะเกิดอะไรขึ้นถ้าไม่มีการถดถอยในโมดูลก่อนหน้าและโค้ดถูกปรับใช้ในการผลิต มีโอกาสที่นักพัฒนาอาจปรับใช้โค้ดเวอร์ชันอื่นที่ไม่มีการแก้ไขข้อบกพร่อง หรือนักพัฒนาอาจแก้ไขข้อบกพร่องอย่างน้อยหนึ่งรายการซึ่งทำให้ฟังก์ชันการทำงานอื่นๆ เสียหาย ส่งผลให้ฟังก์ชันการทำงานที่มีอยู่เสียหาย
ซึ่งจะทำให้บริษัทขาดทุนมหาศาล ดังนั้นจึงแนะนำให้ทำการทดสอบการถดถอยเสมอเพื่อให้แน่ใจว่าการเพิ่มฟังก์ชันการทำงานใหม่หรือการดัดแปลงใด ๆ สำหรับข้อบกพร่องจะไม่ทำให้โมดูลการทำงานก่อนหน้านี้เสียหาย
ดังนั้น การถดถอยจึงมีบทบาทสำคัญในการทดสอบและจะดำเนินการตลอดวงจรการทดสอบ
ประโยชน์ของการทดสอบการถดถอยคืออะไร?
1. การทดสอบการถดถอยช่วยให้มั่นใจได้ว่าไม่มีข้อผิดพลาดเกิดขึ้นเนื่องจากการดัดแปลงในโค้ด
2.ช่วยให้มั่นใจถึงความถูกต้องของการทำงาน
3.ช่วยให้มั่นใจว่าข้อบกพร่องที่ได้รับการแก้ไขจะไม่เกิดขึ้นอีกเนื่องจากการเปลี่ยนแปลงโค้ดใดๆ
4.ช่วยในการระบุจุดบกพร่องในระยะเริ่มต้นของการพัฒนา
ซีลีเนียมคืออะไร?
ซีลีเนียมมีการใช้กันอย่างแพร่หลายในการทดสอบเว็บแอปพลิเคชัน เนื่องจากเป็นเครื่องมืออัตโนมัติแบบโอเพ่นซอร์ส จึงเป็นที่นิยมใช้ในหมู่ชุมชนการทดสอบ ซีลีเนียมประกอบด้วยส่วนประกอบหลักสี่ส่วนที่ได้รับการออกแบบมาเพื่อวัตถุประสงค์ที่แตกต่างกัน และการเลือกส่วนประกอบเหล่านี้ขึ้นอยู่กับข้อกำหนดในการทดสอบ สี่องค์ประกอบคือ:
- ซีลีเนียม IDE
- ซีลีเนียม RC
- ซีลีเนียม WebDriver
- ซีลีเนียมกริด
Selenium WebDriver เป็นไดรเวอร์เฉพาะของเบราว์เซอร์ที่มีอินเทอร์เฟซสำหรับเขียนและเรียกใช้สคริปต์การทำงานอัตโนมัติของเบราว์เซอร์สำหรับการทดสอบเว็บแอปพลิเคชันต่างๆ มันมีการเชื่อมโยงสำหรับภาษายอดนิยมทั้งหมดเช่น Java, Python, Ruby เป็นต้น รองรับเบราว์เซอร์หลักทั้งหมดเช่น Chrome, Firefox, Opera, เช่น, ขอบ เป็นต้น สามารถรวมเข้ากับเฟรมเวิร์กต่างๆ เช่น Maven หรือ ANT เพื่อรวบรวมซอร์สโค้ด สำหรับการทดสอบและการรายงานแอปพลิเคชัน สามารถรวมเข้ากับเฟรมเวิร์กการทดสอบ เช่น TestNG เพื่อทำให้การทดสอบอัตโนมัติง่ายขึ้น มันสามารถรวมเข้ากับ Jenkins สำหรับการสร้างและการปรับใช้อัตโนมัติของการรวมอย่างต่อเนื่องหรือการส่งมอบอย่างต่อเนื่อง
ให้เราดูว่า Selenium WebDriver สามารถใช้อย่างมีประสิทธิภาพเพื่อทำการทดสอบการถดถอยได้อย่างไร
จะทำการทดสอบการถดถอยโดยใช้ Selenium WebDriver ได้อย่างไร
กรอบงานระบบอัตโนมัติที่ดีควรได้รับการออกแบบและพัฒนาในลักษณะที่มีโค้ดหรือโมดูลที่ใช้ซ้ำได้จำนวนมาก ซึ่งครอบคลุมคุณลักษณะหรือฟังก์ชันหลักๆ ของแอปพลิเคชัน ไม่มีเครื่องมืออัตโนมัติดังกล่าวสำหรับการทดสอบการถดถอยโดยเฉพาะ กรอบการทำงานอัตโนมัติควรนำไปใช้ในลักษณะที่สนับสนุนการทดสอบการถดถอยอย่างมีประสิทธิภาพ Selenium เป็นเครื่องมืออัตโนมัติที่สามารถใช้สำหรับทดสอบเว็บแอปพลิเคชันในเบราว์เซอร์ต่างๆ เมื่อออกแบบเฟรมเวิร์กด้วย Selenium จะต้องมีหลายวิธีที่สามารถนำมาใช้ซ้ำได้ และการเพิ่มโค้ดใหม่ในส่วนใดส่วนหนึ่งของเฟรมเวิร์กก็ควรทำได้อย่างง่ายดาย
จะออกแบบเฟรมเวิร์ก Selenium สำหรับการทดสอบการถดถอยได้อย่างไร
ฉันได้หาวิธีที่จะเป็นประโยชน์อย่างมากในการทำการทดสอบการถดถอยโดยใช้ Selenium WebDriver
1.การกำหนดพารามิเตอร์
พิจารณาสถานการณ์ที่บริษัทเปิดตัวเว็บไซต์ที่มีฟังก์ชันการทำงานหลักที่รองรับในเบราว์เซอร์ Chrome เท่านั้น เมื่อสร้าง ปรับใช้ และทดสอบเว็บไซต์แล้วจะใช้งานได้จริง หลังจากนั้นไม่กี่วัน บริษัทวางแผนที่จะขยายการรองรับเบราว์เซอร์ใน Firefox เมื่อขยายการรองรับเบราว์เซอร์แล้ว บิลด์ใหม่จะถูกปรับใช้สำหรับการทดสอบ หากกรอบงานที่มีอยู่ไม่ได้ออกแบบมาเพื่อทำการเปลี่ยนแปลงเพื่อรองรับการทดสอบการถดถอย มันจะเป็นงานที่ต้องใช้เวลามาก เพื่อจัดการกับสิ่งนี้ เราสามารถใช้การกำหนดพารามิเตอร์เพื่อเพิ่มค่าต่างๆ และดำเนินการทดสอบการถดถอยโดยใช้ความพยายามเพียงเล็กน้อย รวมถึงการเปลี่ยนแปลงโค้ดเพียงเล็กน้อยในเฟรมเวิร์ก Selenium การกำหนดพารามิเตอร์นี้สามารถทำได้สองวิธีง่ายๆ
1. การใช้คำอธิบายประกอบพารามิเตอร์ใน TestNG
2.กำหนดพารามิเตอร์และอ่านจากไฟล์คุณสมบัติ
ให้เราติดตั้งโค้ดโดยใช้สองวิธีข้างต้นซึ่งจะมีประโยชน์มากในการถดถอย
จะใช้คำอธิบายประกอบพารามิเตอร์สำหรับการทดสอบการถดถอยได้อย่างไร
คำอธิบายประกอบนี้ใช้เพื่อส่งผ่านค่าภายในเมธอดโดยกำหนดค่าและชื่อของพารามิเตอร์ในไฟล์ testing.xml
คุณสงสัยหรือไม่ว่าสิ่งนี้จะเป็นประโยชน์ในการถดถอยโดยใช้ Selenium Webdriver อย่างไร
ให้เราดูการใช้งานด้านล่าง
ตามที่กล่าวไว้ในส่วนแนะนำ เมื่อบริษัทต้องการขยายการสนับสนุนเบราว์เซอร์ไปยังเบราว์เซอร์อื่น การกำหนดค่าในช่องพารามิเตอร์ในไฟล์ testing.xml นั้นทำได้ง่าย
แพ็คเกจ com.LoginPage;
นำเข้า java.util.concurrent.TimeUnit; นำเข้า org.openqa.selenium.By; นำเข้า org.openqa.selenium.WebDriver; นำเข้า org.openqa.selenium.chrome.ChromeDriver; นำเข้า org.openqa.selenium.firefox.FirefoxDriver; นำเข้า org.openqa.selenium.opera.OperaDriver; นำเข้า org.testng.annotations.AfterClass; นำเข้า org.testng.annotations.AfterTest; นำเข้า org.testng.annotations.BeforeTest; นำเข้า org.testng.annotations.Parameters; นำเข้า org.testng.annotations.Test; คลาสสาธารณะ LoginTest { ไดรเวอร์ WebDriver สาธารณะ @ก่อนสอบ @พารามิเตอร์("เบราว์เซอร์") การตั้งค่าโมฆะสาธารณะ (เบราว์เซอร์สตริง) { if (browser.equalsIgnoreCase (“Firefox”)) { System.setProperty("WebDriver.gecko.driver", "C:\\Users\\shalini\\Downloads\\geckodriver-v0.26.0-win64\\geckodriver.exe"); ไดรเวอร์ = FirefoxDriver ใหม่ (); } อื่น if (browser.equalsIgnoreCase (“GoogleChrome”)) { System.setProperty (“WebDriver.chrome.driver”, “C:\\Users\\shalini\\Downloads\\chromedriver\\chromedriver.exe”); ไดรเวอร์ = ChromeDriver ใหม่ (); } } @ทดสอบ โมฆะสาธารณะเข้าสู่ระบบ () { driver.get(“https://opensource-demo.orangehrmlive.com/”); driver.manage().timeouts().implicitlyWait(10, TimeUnit.วินาที); สตริง pageTitle = driver.getTitle(); System.out.println(“ชื่อของเพจนี้คือ ===> ” +pageTitle); driver.findElement(By.id("txtUsername")).clear(); driver.findElement(By.id("txtUsername")).sendKeys("Admin"); driver.findElement(By.id("txtPassword")).clear(); driver.findElement(By.id("txtPassword")).sendKeys("admin123"); driver.findElement(By.id("btnLogin")).คลิก(); } @หลังทดสอบ โมฆะสาธารณะ tearDown () { ไดรเวอร์.quit(); } } |
ไฟล์ TestNG.xml
ในโค้ดด้านบน เมื่อแอปพลิเคชันรองรับเฉพาะเบราว์เซอร์ Firefox และ Chrome เราได้กำหนดพารามิเตอร์การทดสอบกับเบราว์เซอร์ทั้งสองนี้โดยใช้ชื่อพารามิเตอร์และค่าในไฟล์ testNG.xml ตอนนี้แอปพลิเคชันได้รับการทดสอบเรียบร้อยแล้วและโค้ดถูกปรับใช้ในการผลิต
จะเกิดอะไรขึ้นหากในรุ่นถัดไป บริษัทวางแผนที่จะขยายการสนับสนุนเบราว์เซอร์ใน Opera?
คำตอบนั้นค่อนข้างง่าย เพียงเพิ่มค่าเบราว์เซอร์อื่นในแท็กพารามิเตอร์ใน TestNG.xml ดังด้านล่าง
หลังจากแก้ไขไฟล์ Testng.xml ให้ขยายฟังก์ชันในโค้ดหลักดังนี้
if(browser.equalsIgnoreCase (“Opera”)) { System.setProperty (“WebDriver.opera.driver”,”C:\\Users\\shalini\\Downloads\\operadriver\\operadriver_win64\\operadriver.exe”);
ไดรเวอร์ = OperaDriver ใหม่ (); } |
โดยการทำเช่นนั้น บิลด์ใหม่สามารถทดสอบโดยมีการเปลี่ยนแปลงเล็กน้อยในการใช้งานที่มีอยู่แล้ว และคุณยังสามารถทำการทดสอบการถดถอยสำหรับรุ่นก่อนหน้าได้อีกด้วย ฉันใช้เฉพาะฟังก์ชันการเข้าสู่ระบบในแอปพลิเคชันเพื่อวัตถุประสงค์ในการสาธิต เมื่อเรามีโมดูลหลายโมดูลที่จะทดสอบ วิธีนี้จะทำการทดสอบการถดถอยได้ง่ายมาก ไม่เพียงแต่ประเภทเบราว์เซอร์เท่านั้น คุณยังสามารถกำหนดพารามิเตอร์อื่นๆ ได้เช่นกันในส่วนพารามิเตอร์เพื่อดำเนินการถดถอยตามความต้องการของคุณ
จะกำหนดพารามิเตอร์ในไฟล์คุณสมบัติสำหรับการทดสอบการถดถอยได้อย่างไร
ไฟล์ Properties เป็นหนึ่งในคุณสมบัติหลักในกรอบงานอัตโนมัติซึ่งช่วยในการทำการทดสอบการถดถอยอย่างมีประสิทธิภาพ
เราสามารถกำหนดคีย์และค่าต่างๆ ในไฟล์คุณสมบัติ ซึ่งสามารถนำไปใช้ในสคริปต์การทำงานอัตโนมัติหลักได้ โมดูลทั้งหมดของเว็บแอปพลิเคชันสามารถรวมเข้าด้วยกัน และสามารถกำหนดคีย์และค่าสำหรับโมดูลต่างๆ ได้ เมื่อมีการเปลี่ยนแปลงใดๆ ในรีลีส ไฟล์คุณสมบัติสามารถปรับเปลี่ยนเพื่อรองรับการเปลี่ยนแปลงได้ แนวทางนี้ตรงไปตรงมามาก ง่ายต่อการนำไปใช้และจัดระเบียบ
ด้านล่างนี้เป็นโค้ดง่ายๆ เพื่อกำหนดคุณสมบัติในไฟล์คุณสมบัติและอ่านคุณสมบัติที่ต้องการในโค้ดหลัก
แพ็คเกจ หน้า;
นำเข้า java.io.FileInputStream; นำเข้า java.io.FileNotFoundException; นำเข้า java.io.IOException; นำเข้า java.util.คุณสมบัติ; นำเข้า org.openqa.selenium.By; นำเข้า org.openqa.selenium.WebDriver; นำเข้า org.openqa.selenium.chrome.ChromeDriver; นำเข้า org.testng.annotations.AfterTest; นำเข้า org.testng.annotations.BeforeTest; นำเข้า org.testng.annotations.Test; สาธารณะ ชั้น การสาธิต { Webไดรเวอร์โปรแกรมควบคุม @ก่อนสอบ สาธารณะ ถือเป็นโมฆะ ติดตั้ง() { ระบบตั้งค่าคุณสมบัติ(“webdriver.chrome.driver”, “C:\\Users\\Shalini\\Downloads\\chrom86_driver\\chromedriver.exe”); คนขับรถ = ใหม่ ไดร์เวอร์ Chrome(); } @ทดสอบ สาธารณะ ถือเป็นโมฆะ เข้าสู่ระบบ() พ่น IOข้อยกเว้น { พร็อพพร็อพเพอร์ตี้ = ใหม่ คุณสมบัติ(); อินพุต FileInputStream = ใหม่ FileInputStream (“D:\\eclipse-workspace\\SeleniumRegression\\src\\Properties\\webpage.properties”); prop.load(อินพุต); //อ่านค่าของ URL ล็อกอินจากไฟล์คุณสมบัติ สตริง login_url =prop.getProperty(“loginURL”); ไดรเวอร์.get(login_url); //อ่านค่าชื่อผู้ใช้จากไฟล์คุณสมบัติ ชื่อผู้ใช้สตริง = prop.getProperty(“ชื่อผู้ใช้”); //อ่านค่าของรหัสผ่านจากไฟล์คุณสมบัติ รหัสผ่านสตริง = prop.getProperty("รหัสผ่าน"); driver.findElement(โดยid(“txtUsername”)).sendKeys(ชื่อผู้ใช้); driver.findElement(โดยid(“txtPassword”)).sendKeys(รหัสผ่าน); ระบบออก.println(driver.getTitle()); } @หลังทดสอบ สาธารณะ ถือเป็นโมฆะ การถอดออก() { ไดรเวอร์.quit(); } } |
เว็บเพจ.คุณสมบัติ
########## คุณสมบัตินี้มี URL ของเว็บแอปพลิเคชัน################ LoginURL = https://opensource-demo.orangehrmlive.com/ ชื่อผู้ใช้ = ผู้ดูแลระบบ รหัสผ่าน = admin123 |
TestNG.xml
<?xml เวอร์ชัน="1.0" การเข้ารหัส=“ยูทีเอฟ-8”?>
<ชื่อชุด=“ชุดทดสอบ”> <ชื่อการทดสอบ=“ทดสอบการเข้าสู่ระบบ”> <ชื่อคลาส=“เพจสาธิต”> |
2.รันการทดสอบการถดถอยโดยใช้กลุ่ม
การใช้กลุ่มเพื่อทำการทดสอบการถดถอยเป็นหนึ่งในแนวทางที่นิยมใช้กันมากที่สุด TestNG มีคุณสมบัติที่เรียกว่า “กลุ่ม” ซึ่งช่วยให้ผู้ทดสอบรวมกลุ่มการทดสอบในกลุ่มบางกลุ่มด้วยชื่อเฉพาะ จากนั้นจึงดำเนินการเฉพาะกลุ่มหรือกลุ่มเฉพาะเท่านั้น ด้วยคุณสมบัตินี้ เราสามารถสร้างกลุ่มสำหรับการทดสอบการถดถอยและดำเนินการเมื่อจำเป็น
ด้านล่างนี้คือโค้ดอย่างง่ายที่มีการทดสอบต่างๆ สำหรับการทดสอบเว็บแอปพลิเคชันที่มีการทดสอบที่จัดกลุ่มไว้ภายใต้กลุ่ม "RegressionTest" เพื่อเรียกใช้การทดสอบสำหรับการทดสอบการถดถอยโดยเฉพาะ
แพ็คเกจ หน้า;
นำเข้า คงที่ org.testng.ยืนยันยืนยันเท่ากับ; นำเข้า java.util.concurrent.TimeUnit; นำเข้า org.openqa.selenium.By; นำเข้า org.openqa.selenium.WebDriver; นำเข้า org.openqa.selenium.chrome.ChromeDriver; นำเข้า org.testng.annotations.AfterTest; นำเข้า org.testng.annotations.BeforeTest; นำเข้า org.testng.annotations.Test; สาธารณะ ชั้น หน้าเข้าสู่ระบบ { Webไดรเวอร์โปรแกรมควบคุม @ก่อนสอบ สาธารณะ ถือเป็นโมฆะ ติดตั้ง() { ระบบตั้งค่าคุณสมบัติ(“webdriver.chrome.driver”, “C:\\Users\\Shalini\\Downloads\\chrom86_driver\\chromedriver.exe”); คนขับรถ = ใหม่ ไดร์เวอร์ Chrome(); } @Test(กลุ่ม =”การทดสอบการถดถอย”) สาธารณะ ถือเป็นโมฆะ เข้าสู่ระบบ() { สตริง login_url = “https://opensource-demo.orangehrmlive.com/”; ไดรเวอร์.get(login_url); ไดรเวอร์.manage().window().maximize(); driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.) โปรแกรมควบคุม.วินาที); driver.findElement(โดยid(“txtUsername”)).sendKeys(“ผู้ดูแลระบบ”); driver.findElement(โดยid(“txtPassword”)).sendKeys(“admin123”); ระบบออก.println(driver.getTitle()); } @ทดสอบ สาธารณะ ถือเป็นโมฆะ แผงควบคุม() { driver.findElement(โดยid(“menu_dashboard_index”)).คลิก(); สตริง textPresent = driver.findElement(By.เอ็กซ์พาธ(“//*[@id=\"content\"]/div/div[1]/h1″)).getText(); สตริง textToBePresent = “แดชบอร์ด”; ยืนยันเท่ากับ(ข้อความปัจจุบัน, ข้อความToBePresent); } @ทดสอบ สาธารณะ ถือเป็นโมฆะ ทดสอบ 3 () { ระบบออก.println("นี่คือการทดสอบ 3"); } @Test (กลุ่ม = "การทดสอบการถดถอย") สาธารณะ ถือเป็นโมฆะ ทดสอบ 4 () { ระบบออก.println("นี่คือการทดสอบ 4"); } @ทดสอบ สาธารณะ ถือเป็นโมฆะ ทดสอบ 5 () { ระบบออก.println("นี่คือการทดสอบ 5"); } @Test (กลุ่ม = "การทดสอบการถดถอย") สาธารณะ ถือเป็นโมฆะ ทดสอบ 6 () { ระบบออก.println("นี่คือการทดสอบ 6"); } @ทดสอบ สาธารณะ ถือเป็นโมฆะ ทดสอบ 7 () { ระบบออก.println("นี่คือการทดสอบ 7"); } @หลังทดสอบ สาธารณะ ถือเป็นโมฆะ การถอดออก() { ไดรเวอร์.quit(); } } |
<?xml เวอร์ชัน="1.0" การเข้ารหัส=“ยูทีเอฟ-8”?>
<ชื่อชุด=“ชุดทดสอบ”> <ชื่อการทดสอบ=“ทดสอบการเข้าสู่ระบบ”> <รวมชื่อ=“การทดสอบการถดถอย”/> <ชื่อคลาส=“เพจ.ล็อกอินเพจ”> |
ด้วยการใช้แนวทางนี้ในเฟรมเวิร์กของเรา เรายังสามารถจัดกลุ่มการทดสอบได้หลายวิธี เช่น กลุ่มสำหรับการทดสอบควัน กลุ่มสำหรับการทดสอบสติ เป็นต้น ในไฟล์ TestNG.xml เราต้องระบุชื่อกลุ่ม (RegressionTest ในกรณีของเรา) ) เพื่อดำเนินการทดสอบเฉพาะสำหรับกลุ่มนั้น
3. การใช้แท็กสำหรับการทดสอบการถดถอย
กรอบงานแตงกวามีฟังก์ชันพิเศษเพื่อจัดกลุ่มการทดสอบตามเกณฑ์ที่กำหนดและดำเนินการได้ทุกเมื่อที่ต้องการ ฟังก์ชันพิเศษนี้เรียกว่า “แท็ก” ถูกกำหนดไว้ในไฟล์ TestRunner ของเฟรมเวิร์ก Cucumber การทดสอบทั้งหมดที่กำหนดด้วยแท็กเฉพาะสามารถดำเนินการได้ในแต่ละครั้ง ซึ่งเป็นวิธีที่ง่ายและตรงไปตรงมาที่สุดในการทดสอบการถดถอยสำหรับกรณีทดสอบในเว็บแอปพลิเคชันโดยใช้ Selenium Webdriver
ไฟล์คุณลักษณะ
คุณสมบัติ: เพื่อทดสอบการเข้าสู่ระบบของเว็บแอปพลิเคชัน
@การทดสอบการถดถอย สถานการณ์สมมติ: ตรวจสอบว่าผู้ใช้สามารถลงชื่อเข้าใช้บัญชีของเขาได้สำเร็จหรือไม่ ให้ ผู้ใช้นำทางไปยังหน้าเว็บ เมื่อ ผู้ใช้ป้อน “ผู้ดูแลระบบ” และ “admin123” แล้วก็ ผู้ใช้ควรเข้าสู่ระบบสำเร็จ สถานการณ์สมมติ: ตรวจสอบว่าผู้ใช้สามารถเพิ่มสินค้าในรถเข็นได้หรือไม่ ให้ ผู้ใช้ถูกนำไปที่หน้าแรก เมื่อ ผู้ใช้เลือกและเพิ่มผลิตภัณฑ์ แล้วก็ สินค้าที่เลือกต้องอยู่ในตะกร้า @การทดสอบการถดถอย สถานการณ์สมมติ: ตรวจสอบว่าผู้ใช้สามารถอัปเดตรายละเอียดของเขาในบัญชีของฉันได้หรือไม่ ให้ ผู้ใช้คลิกปุ่มบัญชีของฉัน เมื่อ ผู้ใช้อัปเดตรายละเอียดที่อยู่ของเขา แล้วก็ ต้องบันทึกและอัปเดตรายละเอียดใหม่ในหน้าข้อมูลผู้ใช้ |
ไฟล์ TestRunner
แพ็คเกจ ทดสอบ;
นำเข้า org.junit.runner.RunWith; นำเข้า Cucumber.api.Cucumber ตัวเลือก; นำเข้า Cucumber.api.junit.แตงกวา; @วิ่งด้วย(แตงกวา.ชั้น) @CucumberOptions (คุณสมบัติ = “D:\\eclipse-workspace\\CucumberDemo\\src\\main\\resources\\Features\\Login.Feature”, กาว = "ขั้นตอน", ปลั๊กอิน = {"สวย", "html:target/cucumber"}, ขาวดำ = จริง, แท็ก = {"การทดสอบการถดถอย"} ) สาธารณะ ชั้น ผู้ทดสอบ { } |
ตามรหัสข้างต้น กรณีทดสอบที่จัดกลุ่มภายใต้ "การทดสอบการถดถอย" จะถูกดำเนินการ ดังนั้น การใช้แท็กเพื่อทำการทดสอบการถดถอยเป็นหนึ่งในวิธีที่มีประสิทธิภาพที่สามารถนำไปใช้ในเฟรมเวิร์กการทำงานอัตโนมัติของ Selenium
ห่อ…!
กรอบงานระบบอัตโนมัติควรได้รับการออกแบบในลักษณะที่การเปลี่ยนแปลงใด ๆ สามารถทำได้ง่ายในกรอบงาน คำนึงถึงการทดสอบการถดถอยในขณะที่ออกแบบกรอบงานจะขจัดการทำงานซ้ำส่วนใหญ่ที่เกี่ยวข้องออกไป จนถึงตอนนี้ ฉันได้แสดงวิธีทดสอบการถดถอยขณะทดสอบเว็บแอปพลิเคชันด้วย ซีลีเนียม WebDriver. แจ้งให้เราทราบถึงแนวทางที่มีประสิทธิภาพอื่น ๆ ที่คุณจัดการขณะทำการทดสอบการถดถอยโดยใช้ Selenium Webdriver ในส่วนความคิดเห็นด้านล่าง โปรดแบ่งปันบทความนี้กับเพื่อนร่วมงานและเพื่อนของคุณและแบ่งปันความรู้ของคุณ มีความสุขในการทดสอบ…!