ซีลีเนียม - รีโมทคอนโทรล

Selenium RC คืออะไร?

Selenium Remote Control (RC) เป็นโครงการหลักของซีลีเนียมที่คงอยู่เป็นเวลานานก่อนที่ Selenium WebDriver (Selenium 2.0) จะมีขึ้น ตอนนี้ Selenium RC แทบไม่ได้ใช้งานเนื่องจาก WebDriver มีคุณสมบัติที่มีประสิทธิภาพมากขึ้นอย่างไรก็ตามผู้ใช้ยังคงสามารถพัฒนาสคริปต์โดยใช้ RC ได้

ช่วยให้เราสามารถเขียนการทดสอบ UI ของเว็บแอปพลิเคชันอัตโนมัติด้วยความช่วยเหลือของภาษาโปรแกรมเช่น Java, C #, Perl, Python และ PHP เพื่อสร้างการทดสอบที่ซับซ้อนมากขึ้นเช่นการอ่านและเขียนไฟล์การสืบค้นฐานข้อมูลและการส่งอีเมลผลการทดสอบ .

สถาปัตยกรรม Selenium RC

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

เบราว์เซอร์เรียกใช้คำสั่ง Selenium โดยใช้ตัวแปล JavaScript

Selenium RC มีสองส่วน

  • Selenium Server เปิดตัวและฆ่าเบราว์เซอร์ นอกจากนั้นยังตีความและดำเนินการคำสั่ง Selenese นอกจากนี้ยังทำหน้าที่เป็นพร็อกซี HTTP โดยดักจับและตรวจสอบข้อความ HTTP ที่ส่งผ่านระหว่างเบราว์เซอร์และแอปพลิเคชันที่อยู่ระหว่างการทดสอบ

  • ไลบรารีไคลเอ็นต์ที่จัดเตรียมอินเทอร์เฟซระหว่างภาษาโปรแกรม (Java, C #, Perl, Python และ PHP) และเซิร์ฟเวอร์ Selenium-RC

การเขียนสคริปต์ RC

ตอนนี้ให้เราเขียนสคริปต์ตัวอย่างโดยใช้ Selenium Remote Control ให้เราใช้http://www.calculator.net/เพื่อความเข้าใจ Selenium RC เราจะทำการคำนวณเปอร์เซ็นต์โดยใช้ 'เครื่องคำนวณเปอร์เซ็นต์' ที่มีอยู่ในโมดูล 'เครื่องคำนวณทางคณิตศาสตร์'

Step 1 - เริ่มการควบคุมระยะไกล Selenium (ด้วยความช่วยเหลือของพรอมต์คำสั่ง)

Step 2 - หลังจากเปิดตัว Selenium RC แล้วให้เปิด Eclipse และสร้าง "New Project" ดังที่แสดงด้านล่าง

Step 3 - ป้อนชื่อโครงการและคลิกปุ่ม 'ถัดไป'

Step 4 - ตรวจสอบโฟลเดอร์ Source, Projects, Libraries และ Output แล้วคลิก 'Finish'

Step 5 - คลิกขวาที่ 'project' container แล้วเลือก 'Configure Build Path'

Step 6- คุณสมบัติสำหรับ 'selrcdemo' จะเปิดขึ้น ไปที่แท็บ 'Libraries' และเลือก 'Add External JARs' เลือกไฟล์ Selenium RC jar ที่เราดาวน์โหลดมาและจะปรากฏดังที่แสดงด้านล่าง

Step 7 - ไลบรารีอ้างอิงจะแสดงดังที่แสดงด้านล่าง

Step 8 - สร้างไฟล์คลาสใหม่โดยคลิกขวาที่โฟลเดอร์ 'src' แล้วเลือก 'New' >> 'class'

Step 9 - ป้อนชื่อของไฟล์คลาสและเปิดใช้งาน 'public static void main' ดังที่แสดงด้านล่าง

Step 10 - Created Class ถูกสร้างขึ้นภายใต้โครงสร้างโฟลเดอร์ดังที่แสดงด้านล่าง

Step 11- ตอนนี้ได้เวลาเขียนโค้ดแล้ว โค้ดต่อไปนี้มีความคิดเห็นฝังอยู่เพื่อให้ผู้อ่านเข้าใจถึงสิ่งที่นำเสนอ

package selrcdemo;

import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class rcdemo {
   public static void main(String[] args) throws InterruptedException {

      // Instatiate the RC Server
      Selenium selenium = new DefaultSelenium("localhost", 4444 , "firefox", "http://www.calculator.net");
      selenium.start();   // Start
      selenium.open("/");  // Open the URL
      selenium.windowMaximize();

      // Click on Link Math Calculator
      selenium.click("xpath = .//*[@id = 'menu']/div[3]/a");
      Thread.sleep(2500); // Wait for page load

      // Click on Link Percent Calculator
      selenium.click("xpath = .//*[@id = 'menu']/div[4]/div[3]/a");
      Thread.sleep(4000); // Wait for page load

      // Focus on text Box
      selenium.focus("name = cpar1");
      
      // enter a value in Text box 1
      selenium.type("css=input[name = \"cpar1\"]", "10");
      
      // enter a value in Text box 2
      selenium.focus("name = cpar2");
      selenium.type("css = input[name = \"cpar2\"]", "50");

      // Click Calculate button
      selenium.click("xpath = .//*[@id = 'content']/table/tbody/tr/td[2]/input");

      // verify if the result is 5
      String result = selenium.getText(".//*[@id = 'content']/p[2]");

      if (result == "5") {
         System.out.println("Pass");
      } else {
         System.out.println("Fail");
      }
   }
}

Step 12 - ตอนนี้ให้เรารันสคริปต์โดยคลิกปุ่ม 'เรียกใช้'

Step 13 - สคริปต์จะเริ่มดำเนินการและผู้ใช้จะสามารถดูประวัติคำสั่งภายใต้แท็บ "ประวัติคำสั่ง"

Step 14- สถานะสุดท้ายของแอปพลิเคชันแสดงดังต่อไปนี้ คำนวณเปอร์เซ็นต์และแสดงผลลัพธ์บนหน้าจอดังที่แสดงด้านล่าง

Step 15- ผลลัพธ์ของการทดสอบจะพิมพ์บนคอนโซล Eclipse ดังที่แสดงด้านล่างขณะที่เราได้พิมพ์เอาต์พุตไปยังคอนโซล ตามเวลาจริงผลลัพธ์จะถูกเขียนลงในไฟล์ HTML หรือในไฟล์ Text แบบธรรมดา