Tech

Automation Framework Selenium: Theo hướng dữ liệu, Theo hướng từ khóa & kết hợp

Selenium Framework là gì?

Các Selenium framework là một cấu trúc code code làm cho code bảo trì dễ dàng và hiệu quả. Nếu không có khuôn khổ, người dùng có thể đặt “code” và “dữ liệu” ở cùng một vị trí code không thể sử dụng lại cũng như không thể đọc được. Các framework công tác tạo ra các kết quả có lợi như tăng khả năng tái sử dụng code, tính di động cao hơn, giảm chi phí bảo trì tập lệnh, khả năng đọc code tốt hơn, v.v.

Chủ yếu có ba loại framework công tác được tạo bởi Selenium WebDriver để tự động hóa các trường hợp kiểm thử thủ công

  • framework kiểm tra theo hướng dữ liệu
  • framework kiểm tra theo hướng từ khóa
  • Data Driven hỗn hợp

framework theo hướng dữ liệu trong Selenium

Data Driven Framework trong Selenium là một phương pháp tách tập dữ liệu khỏi test case. Khi các tập dữ liệu được tách ra khỏi trường hợp thử nghiệm, nó có thể dễ dàng được sửa đổi cho một chức năng cụ thể code không cần thay đổi code. Nó được sử dụng để tìm nạp các trường hợp và bộ thử nghiệm từ các tệp bên ngoài như Excel , .csv, .xml hoặc một số bảng cơ sở dữ liệu.

Để đọc hoặc viết Excel, Apache cung cấp một thư viện POI rất nổi tiếng. Thư viện này đủ khả năng để đọc và ghi cả định dạng tệp XLSXLSX của Excel.

Để đọc các tệp XLS , một triển khai HSSF được cung cấp bởi thư viện POI.

Để đọc XLSX, việc triển khai XSSF của thư viện POI sẽ là lựa chọn. Hãy nghiên cứu chi tiết các triển khai này.

Chúng tôi đã tìm hiểu về Kiểm tra theo hướng dữ liệu trong hướng dẫn trước của chúng tôiframework theo hướng từ khóa trong Selenium

Keyword Driven Framework trong Selenium là một phương pháp được sử dụng để tăng tốc độ kiểm tra tự động bằng cách tách các từ khóa cho bộ chức năng và hướng dẫn chung. Tất cả các thao tác và hướng dẫn cần thực hiện đều được viết trong một số tệp bên ngoài như trang tính Excel. Người dùng có thể dễ dàng kiểm soát và chỉ định các chức năng code họ muốn kiểm tra.

Đây là cách framework hoàn chỉnh trông như thế nào

Như bạn có thể thấy, đó là một khuôn khổ 5 bước. Hãy nghiên cứu nó từng bước một cách chi tiết

Bước 1)

  • Tập lệnh trình điều khiển Execute.java sẽ gọi ReadGuru99ExcelFile.java
  • ReadGuru99ExcelFile.java có tập lệnh POI để đọc dữ liệu từ Excel

Bước 2)

  • ReadGuru99ExcelFile.java sẽ đọc dữ liệu từ TestCase.xlsx
  • Đây là cách trang tính trông như thế nào-
  • Theo các từ khóa được viết trong tệp Excel, framework công tác sẽ thực hiện hoạt động trên UI.
  • Ví dụ, chúng ta cần nhấp vào nút ‘Đăng nhập’. Tương ứng, Excel của chúng ta sẽ có từ khóa ‘Nhấp chuột’. Bây giờ AUT có thể có hàng trăm nút trên một trang, để xác định một nút Đăng nhập, trong Excel, chúng ta sẽ nhập Tên đối tượng làm tên loginButton & loại đối tượng làm tên (xem hàng được đánh dấu ở hình trên). Loại đối tượng có thể là Xpath, CSS tên hoặc bất kỳ giá trị nào khác

Bước 3) ReadGuru99ExcelFile.java sẽ chuyển dữ liệu này đến tập lệnh trình điều khiển Execute.java

Bước 4)

  • Đối với tất cả các phần tử web giao diện người dùng của chúng tôi, chúng tôi cần tạo một kho lưu trữ đối tượng nơi chúng tôi sẽ đặt bộ định vị phần tử của chúng (như Xpath, tên, đường dẫn CSS, tên lớp, v.v.)
  • Execute.java (tập lệnh trình điều khiển của chúng tôi) sẽ đọc toàn bộ Kho lưu trữ đối tượng và lưu trữ nó trong một biến
  • Để đọc kho lưu trữ đối tượng này, chúng ta cần một lớp ReadObject có phương thức getObjectRepository để đọc nó.

LƯU Ý: Bạn có thể nghĩ tại sao chúng ta cần tạo một kho lưu trữ đối tượng. Câu trả lời giúp bảo trì code. Ví dụ: chúng tôi đang sử dụng nút có tên = btnlogin trong 10 trường hợp thử nghiệm khác nhau. Trong tương lai, nhà phát triển quyết định thay đổi tên từ btnlogin để gửi. Bạn sẽ phải thực hiện một thay đổi trong tất cả 10 trường hợp thử nghiệm. Trong trường hợp kho lưu trữ đối tượng, bạn sẽ thực hiện thay đổi chỉ một lần trong kho lưu trữ.

Bước 5)

  • Trình điều khiển sẽ chuyển dữ liệu từ Kho lưu trữ đối tượng & Excel sang lớp UIOperation
  • Lớp UIOperation có các chức năng thực hiện các thao tác tương ứng với các từ khóa như CLICK, SETTEXT, v.v. được đề cập trong excel
  • Lớp UIOperation là một lớp Java có triển khai code thực tế để thực hiện các hoạt động trên các phần tử web

Dự án hoàn chỉnh sẽ giống như-

Hãy xem xét một ví dụ:

Kịch bản thử nghiệm

  • Chúng tôi đang thực hiện 2 trường hợp thử nghiệm
  • Trường hợp thử nghiệm 1:
  • Goto  http://demo.guru99.com/V4/
  • Nhập ID người dùng
  • Nhập codet khẩu
  • Nhấp vào Đặt lại
  • Trường hợp thử nghiệm 2:
  • Goto  http://demo.guru99.com/V4/
  • Nhập ID người dùng
  • Nhập codet khẩu
  • Bấm Đăng nhập

object.properties

url = http://demo.guru99.com/V4/

tên người dùng = uid

password = codet khẩu

title = barone

loginButton = btnLogin

resetButton = btnReset

ReadGuru99ExcelFile.java

package excelExportAndFileIO;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadGuru99ExcelFile {

    public Sheet readExcel(String filePath,String fileName,String sheetName) throws IOException{

    //Create a object of File class to open xlsx file

    File file =    new File(filePath+”\\”+fileName);

    //Create an object of FileInputStream class to read excel file

    Workbook guru99Workbook = null;

    //Find the file extension by spliting file name in substing and getting only extension name

    String fileExtensionName = fileName.substring(fileName.indexOf(“.”));

    //Check condition if the file is xlsx file

    if(fileExtensionName.equals(“.xlsx”)){

    //If it is xlsx file then create object of XSSFWorkbook class

    guru99Workbook = new XSSFWorkbook(inputStream);

    }

    //Check condition if the file is xls file

    else if(fileExtensionName.equals(“.xls”)){

        //If it is xls file then create object of XSSFWorkbook class

        guru99Workbook = new HSSFWorkbook(inputStream);

    }

    //Read sheet inside the workbook by its name

    Sheet guru99Sheet = guru99Workbook.getSheet(sheetName);

     return guru99Sheet;    

    }

}

ReadObject.java

package operation;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ReadObject {

    Properties p = new Properties();

    public Properties getObjectRepository() throws IOException{

        //Read object repository file

        InputStream stream = new FileInputStream(new File(System.getProperty(“user.dir”)+”\\src\\objects\\object.properties”));

        //load all objects

        p.load(stream);

         return p;

    }

}

UIOperation.java

package operation;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ReadObject {

    Properties p = new Properties();

    public Properties getObjectRepository() throws IOException{

        //Read object repository file

        InputStream stream = new FileInputStream(new File(System.getProperty(“user.dir”)+”\\src\\objects\\object.properties”));

        //load all objects

        p.load(stream);

         return p;

    }

}

ExecuteTest.java

package operation;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ReadObject {

    Properties p = new Properties();

    public Properties getObjectRepository() throws IOException{

        //Read object repository file

        InputStream stream = new FileInputStream(new File(System.getProperty(“user.dir”)+”\\src\\objects\\object.properties”));

        //load all objects

        p.load(stream);

         return p;

    }

}

Sau khi thực thi, đầu ra sẽ giống như sau:

Tải xuống Tệp dự án Selenium cho Bản trình diễn trong Hướng dẫn này

framework kết hợp

framework kết hợp trong Selenium là một khái niệm code chúng tôi đang sử dụng lợi thế của cả framework hướng từ khóa cũng như framework hướng dữ liệu. Đây là một framework công tác dễ sử dụng cho phép người thử nghiệm thủ công tạo các trường hợp thử nghiệm bằng cách chỉ cần xem các từ khóa, dữ liệu thử nghiệm và kho lưu trữ đối tượng code không cần viết code trong framework công tác.

Ở đây đối với từ khóa, chúng tôi sẽ sử dụng tệp Excel để duy trì các trường hợp thử nghiệm và đối với dữ liệu thử nghiệm, chúng tôi có thể sử dụng dữ liệu, nhà cung cấp framework Testng .

Ở đây trong khuôn khổ kết hợp của chúng tôi, chúng tôi không cần thay đổi bất kỳ điều gì trong khuôn khổ điều khiển từ khóa, ở đây chúng tôi chỉ cần thay thế tệp ExecuteTest.java bằng tệp HybridExecuteTest.java.

Tệp HybridExecuteTest này có tất cả code cho từ khóa được điều khiển với khái niệm nhà cung cấp dữ liệu.

Biểu diễn hình ảnh hoàn chỉnh của framework kết hợp sẽ trông như thế nào

HybridExecuteTest.java

package testCases;

import java.io.IOException;

import java.util.Properties;

import operation.ReadObject;

import operation.UIOperation;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.DataProvider;

import org.testng.annotations.Test;

import excelExportAndFileIO.ReadGuru99ExcelFile;

public class HybridExecuteTest {

    WebDriver webdriver = null;

    public void testLogin(String testcaseName,String keyword,String objectName,String objectType,String value) throws Exception {

     return object;    

    }

}

Bản tóm tắt:

  • Chúng ta có thể tạo ba loại framework kiểm tra bằng cách sử dụng Selenium WebDriver.
  • Đây là Data Driven Theo hướng dữ liệu, Theo hướng từ khóa và Kết hợp.
  • Chúng tôi có thể đạt được framework hướng dữ liệu bằng cách sử dụng nhà cung cấp dữ liệu của TestNG.
  • Trong framework điều khiển từ khóa, từ khóa được viết trong một số tệp bên ngoài như tệp excel và code java sẽ gọi tệp này và thực thi các trường hợp thử nghiệm.
  • framework kết hợp là sự kết hợp của framework theo hướng từ khóa và theo hướng dữ liệu.

Blog Tiền Điện Tử

Blog tiền điện tử công thông tin tổng hợp uy tín nhất tất cả các mảng xã hội, giáo dục , công nghệ số. Với khả năng số hóa mạnh mẽ hy vọng sẽ mang lại cho quý bạn đọc những thông tin chính xác nhất 24/24
Check Also
Close
Back to top button