NỘI DUNG BÀI HỌC

✅ Ôn tập lại kiến thức về OOP - Object-Oriented Programming
✅ Nắm được tư duy kiến trúc project theo POM - Page Object Model
✅ Biết cách tạo và sử dụng Custom Keyword

1. ÔN LẠI KIẾN THỨC VỀ OOP (OBJECT-ORIENTED PROGRAMMING)


Sự khác biệt giữa Class và Object

No Đối tượng Lớp
1. Đối tượng là thể hiện của 1 lớp. Lớp là một khuân mẫu hay thiết kế để tạo ra các đối tượng.
2. Đối tượng là 1 thực thể trong thế giới thực như Bút chì, Xe đạp, ... Lớp là một nhóm các đối tượng tương tự nhau.
3. Đối tượng là 1 thực thể vật lý Lớp là 1 thực thể logic
4. Đối tượng được tạo ra chủ yếu từ từ khóa new.
Ví dụ: Student s1=new Student();
Lớp được khai báo bằng việc sử dụng từ khóa class.
Ví dụ: class Student{}
5. Đối tượng có thể được tạo nhiều lần. Lớp được khai báo 1 lần duy nhất.
6. Đối tượng được cấp bộ nhớ khi nó được tạo ra. Lớp không được cấp bộ nhớ khi nó được tạo ra.
7. Có rất nhiều cách để tạo ra đối tượng trong java như từ khóa new, phương thức newInstance(), phương thức clone(), phương thức factory và deserialization. Chỉ có một cách để định nghĩa lớp trong java sử dụng từ khoá class.


Các tính chất của OOP

        • Tính Đóng gói (Encapsulation) - Cho phép cấu hình phạm vi truy cập đến thuộc tính hoặc phương thức nhằm mục đích hạn chế việc can thiệp đến các thành phần này của một đối tượng một cách trực tiếp thô bạo
        • Tính Kế thừa (Inheritance) - Cho phép các đối tượng hoặc lớp được tái sử dụng những thuộc tính hoặc phương thức mà đối tượng hoặc lớp đã có
        • Tính Đa hình (Polymorphism) - Cho phép một đối tượng hoặc lớp được thể hiện với hình thái khác nhau dựa trên việc xây dựng dựa trên khung của đối tượng hoặc lớp đã có nhưng thay đổi thuộc tính hoặc cách xử lý bên trong phương thức
        • Tính Trừu tượng (Abstraction) - Cho phép tạo ra một khung cấu trúc "một cách chung chung" của Lớp buộc các các Lớp mở rộng (extend) phải tuân theo và định nghĩa thật chi tiết khung đó.


2. MÔ HÌNH PAGE OBJECT MODEL


Page Object Model (POM) là gì?

        • Là 1 design pattern giúp mô hình hóa các Màn hình (Page) thành một đối tượng cụ thể
        • Màn hình có thể hiểu theo nhiều ngữ cảnh của phần mềm, Ví dụ:
          • Một form thực hiện một chức năng (Đăng ký tài khoản, Đăng nhập, Khai báo thông tin "Đăng ký thường trú",...
          • Một pop-up hiển thị lên giao diện để xử lý một sự kiện nào đó có trong kịch bản
          • Đọc và xử lý thông tin trên một biểu đồ


OOP và POM có liên hệ gì với nhau?

Việc mô hình một Page là một đối tượng sẽ đồng nghĩa với việc Page sẽ như một Class/Object có đầy đủ tính chất của OOP cụ thể:
        • Class/Object có thuộc tính và phương thức thì Page cũng sẽ có thuộc tính và phương thức, trong đó:
          • Thuộc tính của Page là các đặc điểm của component trên Page đó như: Locator, input, v.v...
          • Phương thức của Page là các hành động, sự kiện sẽ thực hiện trên Page đó như: click, set text, select dropdown list, v.v...
        • Có thể áp dụng tất cả các tính chất của OOP cho Page


Tại sao nên áp dụng POM để thiết kế project automation test

        • Dễ bảo trì: Khi có bất kỳ thay đổi nào từ phía chương trình, thay vì Automation Tester phải ngồi thay đổi từng component hoặc sự kiện thì với POM, họ chỉ cần phải sửa trên Class của Page
        • Tái sử dụng code: Nếu không tổ chức theo Page, Automation tester sẽ phải ngồi viết lại code của một hàm nào đó đã được sử dụng ở một Page khác và phải lặp lại nhiều lần việc này thì với POM họ hoàn toàn có thể gọi đến một hàm trong một Page hoặc gọi đến cả một Test case của Page đó để thực hiện một công việc (VD: gọi đến một Test case để tạo một dữ liệu độc lập làm dữ liệu đầu vào cho Page hiện tại)
        • Script sẽ tường minh hơn: Khi đọc một script sẽ giúp cho Automation tester biết được phần source code này đang ở Page nào và Page này có thể xử lý những sự kiện nào.


3. GIỚI THIỆU VỀ CUSTOM KEYWORD TRONG KATALON


Các loại Keyword trong Katalon

        • Build-in Keyword
          • Là thư viện các hàm thực hiện các Event/Action có trong kịch bản được Katalon cung cấp và tích hợp sẵn trong công cụ.
          • HDSD Keyword: [Tại đây]
          • Java Docs thư viện: [Tại đây]
        • Custom Keyword
          • Hỗ trợ người dùng lập trình các hàm mà thư viện của Katalon không cung cấp hoặc các hàm của Katalon không thực hiện được


Hướng dẫn tạo CustomKeyword trong Katalon

        • Tạo Package
          • Chuột phải [Keywords] trên cây thư mục
          • Chọn [New]
          • Chọn [Package]
          • Nhập tên "Package"

        • Tạo Keyword
          • Chuột phải vào package muốn tạo Keyword
          • Chọn [New]
          • Chọn [Keyword]
          • Nhập trên Keyword ở phần "Class name" trên dialge "New"
          • Nhấn [OK]


Cách sử dụng CustomKeyword

        • Cách 1: Sử dụng thông qua instance CustomKeywords của Katalon. Để sử dụng gọi được trong script test case, trước mỗi hàm trong Keyword phải có annotation Keyword (@Keyword)
        • Cách 2: Sử dụng Keyword như một static class hoặc object

  Cách 1 Cách 2
Quản lý source code  Dễ quản lý bằng cây thư mục Keywords Browser của Katalon  Các Keyword phải được quản lý chặt chẽ và logic từ package tránh trường hợp không nắm được phần source code được viết ra được xử lý ở đâu (Khi được tổ chức chặt chẽ theo POM sẽ không cần phải lo về vấn đề này)
Hiệu năng  Có thể sẽ chậm hơn do phải thông quan instance CustomKeywords của Katalon  Nhanh hơn do sử dụng trực tiếp Class
Đối tượng sử dụng  Người mới tìm hiểu hoặc mới bắt đầu sử dụng Katalon mà chưa biết nhiều về code vì khi được đã được cấu hình trong Keywords Browser của Katalon sẽ thực hiện được bằng việc kéo thả  Người đã từng học về lập trình cơ bản sẽ hoàn toàn có thế sử dụng một cách trơn tru và mượt mà

Teacher

Teacher

Phạm Đức Hải

QA Automation Engineer

  • Nick name: Chuột Béo Tester cool
  • Kinh nghiệm: 05 năm trong xây dựng và kiến trúc các dự án Kiểm thử tự động bằng sử dụng Công cụ Katalon Studio Enterprise

Cộng đồng Automation Testing Việt Nam:

🌱 Telegram Automation Testing:   Cộng đồng Automation Testing
🌱 
Facebook Group Automation: Cộng đồng Automation Testing Việt Nam
🌱 
Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium
🌱 Telegram
Manual Testing:   Cộng đồng Manual Testing
🌱 
Facebook Group Manual: Cộng đồng Manual Testing Việt Nam

Chia sẻ khóa học lên trang

Bạn có thể đăng khóa học của chính bạn lên trang Anh Tester để kiếm tiền

Danh sách bài học