7 Các trường hợp test chức năng đặt hàng

Một phần của tài liệu NGHIÊN CỨU WEBDRIVERIO VÀ ÁP DỤNG TRONG KIỂM THỬ TỰ ĐỘNG ỨNG DỤNG WEB (Trang 55 - 62)

STT Hành động Phản hồi từ hệ thống

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

1 1. Nhập giá trị hợp lệ vào các trường: Ngày giao hàng, Nơi giao hàng

2. Click nút “Xác nhận thanh tốn”

Hệ thống đưa ra thơng báo “Bạn Đã Đặt Hàng Thành Công !”

Nhập giá trị không hợp lệ vào các trường 1 1. Bỏ trống trường “Ngày giao hàng”

và thêm thông tin hợp lệ vào trường “Nơi giao hàng”

2. Click nút “Xác nhận thanh toán”

Hệ thống đưa ra cảnh báo “vui lịng nhập ngày giao hàng!”

2 1. Nhập kí tự chữ và kí tự đặc biệt vào trường “Ngày giao hàng”

2. Click nút “Xác nhận thanh toán”

Hệ thống đưa ra cảnh báo “vui lòng nhập lại ngày giao hàng!”

3.2. PHƯƠNG HƯỚNG GIẢI QUYẾT VẤN ĐỀ VÀ THỰC THI KIỂM THỬ TỰ ĐỘNG TỰ ĐỘNG

3.2.1. Yêu cầu về cơng nghệ

• Trình duyệt Google Chrome • Cơng cụ lập trình JavaScript

• Sử dụng khung kiểm tra JavaScript WebdriverIO và cài đặt các framework Mocha, thư viện mở Chai

• Phần mềm Xampp để chạy giả lập web “Siêu thị hoa online”

3.2.2. Hướng thực thi kiểm thử tự động

Các ứng dụng Web cũng là phần mềm, nên các loại kiểm thử áp dụng cho phần mềm cũng được áp dụng khi kiểm thử ứng dụng Web. Một ứng dụng Web thường có rất nhiều nhóm người sử dụng với nhiều nền tảng khác nhau (hệ điều hành, trình duyệt…), nên rất khó đốn được số lượng người sử dụng một ứng dụng Web là bao nhiêu, thời gian hồi đáp yêu cầu của người sử dụng đối với ứng dụng …dẫn đến việc kiểm thử ứng dụng Web có những khác biệt nhất định so với kiểm thử phần mềm

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

truyền thống. Trong đó, kiểm thử giao diện người dùng, kiểm thử hiệu năng và kiểm thử bảo mật là những loại kiểm thử mà ứng dụng Web cần chú trọng.

Dưới đây là các bước kiểm thử ứng dụng Web: • Kiểm thử chức năng

Kiểm tra form của các trang như: bỏ trống các truờng bắt buộc, nhập dữ liệu đầu vào không hợp lệ,... Thực hiện test tất cả các link trong trang web, định dạng được sử dụng trong các trang Web để gửi và nhận các thơng tin cần thiết từ người dùng.

Kiểm thử tính khả dụng

Tính khả dụng của trang Web được định nghĩa là trang Web dễ sử dụng, mỗi trang đều có menu chính và menu này phải nhất quán. Khi kiểm thử tính khả dụng cần thực hiện kiểm thử các điều khiển chuyển hướng như button, text box, link test…, nội dung của trang Web phải dễ hiểu và thân thiện với người sử dụng. Khơng có lỗi chính tả, khơng khó để đọc chữ, hình ảnh được sắp xếp gọn gàng, hợp lý.

Kiểm thử khả năng tương thích

Người dùng khác nhau có thể sử dụng trình duyệt khác nhau tùy theo nhu cầu, thói quen…của họ. Cần phải kiểm tra sự tương thích của ứng dụng Web trên nhiều trình duyệt như IE, Firefox, Chrome, Safari, Opera…

Kiểm thử bảo mật

o Thêm trực tiếp url vào thanh địa chỉ của trình duyệt mà khơng qua thực hiện các yêu cầu bắt buộc trước khi truy cập vào trang đó.

o Thay đổi url trực tiếp bằng cách đổi tham số kiểm tra tính hợp lệ của trang đó để chuyển tới một trang khác.

o Thử các giá trị đầu vào không hợp lệ vào các trường của trang Web. ❖ Mơ hình q trình kiểm thử tự động

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

Hình 3. 5 Quá trình kiểm thử tự động

a) Chuẩn bị:

• Một ứng dụng Web với tập hợp các chức năng cơ bản của một website bán hàng online.

• Tập hợp các ca kiểm thử ứng với từng chức năng của hệ thống được liệt kê dưới dạng Excel.

• Cài đặt môi trường và thư viện, framework cần thiết o Cài đặt Visual Studio Code

o Cài đặt NodeJs

o Cài đặt tiện ích kiểm thử với mã nguồn sử dụng ngôn ngữ NodeJs là WebdriverIO vào dự án test

▪ Nếu đang ở trong thư mục của dự án test hiện tại:

npm init wdio .

▪ Nếu muốn tạo một dự án test mới

Chuẩn bị

• Ứng dụng web

• Tổng hợp các ca kiểm thử được liệt kê dưới dạng excel • Cài đặt mơi trường và thư viện, framework cần thiết

Thực thi

• Tạo test script • Tạo dữ liệu đầu vào • Thực thi các ca kiểm thử

Kết quả

• Báo cáo phân tích lỗi

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

npm init wdio ./path/to/new/project

o Cài framework Mocha

npm install @wdio/mocha-framework --save-dev

o Cài đặt Chaijs là một assertion library cho node và trình duyệt sử dụng cho verification value

npm install chai --save-dev

o Cài đặt Allure Reporter

npm install @wdio/allure-reporter --save-dev

b) Thực thi:

• Tạo test script trên Visual Studio Code bằng ngơn ngữ JavaScript • Tạo dữ liệu đầu vào cho test scripts bằng cách chuyển đổi dữ liệu từ file

excel sang Json

• Thực thi các ca kiểm thử với WebDriverIO và framework Mocha

c) Kết quả:

• Đưa ra được kết quả kiểm thử các chức năng của ứng dụng, • Nhập kết quả test vào file Excel

 Từ các phân tích trên ta xây dựng được chương trình kiểm thử tự động qua các bước sau:

- Bước 1: Tạo test script trên Visual Studio Code dựa theo các ca kiểm

thử

- Bước 2: Tạo dữ liệu đầu vào để truyền vào cho test script

- Bước 3: Thực thi các test script với WebdriverIO và NodeJs

- Bước 4: Nhập kết quả kiểm thử vào file Excel 3.2.3. Các bước thực hiện kiểm thử tự động

Bước 1: Tạo test script

Dựa trên các ca kiểm thử để tạo ra các test script trên Visual Studio Code để thực hiện các hành vi tự động tương tác với website.

Trước khi tạo Test Script ta nên thiết kế một Page Object, đó là một kho lưu trữ đối tượng (Object Repository) cho các phần tử giao diện web. Theo mơ hình này, đối

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

với mỗi trang web trong ứng dụng, sẽ có lớp trang tương ứng. Lớp trang này sẽ chứa các WebElements của trang web đó và cũng chứa các phương thức thực hiện các thao tác trên các WebElements đó. Nhờ đó các hoạt động trong giao diện người dùng được tách biệt. Làm cho các test script của chúng ta sạch hơn và dễ hiểu hơn, dễ bảo trì hơn. Tên của các phương thức này nên được đưa ra theo nhiệm vụ mà chúng đang thực hiện.

Vì trong một project các page object sẽ sử dụng nhiều phương thức chung. Để tránh phải lặp lại các phương thức đó nhiều lần ta cũng nên tạo một file .js chứa các phương thức chung ở trong đó, và các page object sẽ kế thừa từ nó và dùng chung trong test script.

Ví dụ tạo một file có tên Base.js để chứa các phương thức chung cho page object

Bảng 3. 8 Ví dụ về file .js chứa các phương thức dùng chung cho các object page class Base { async OpenPage(pageUrl){ await browser.url(pageUrl); return this; } async inputUsernameLogin(username){ await $(USERNAME_LOGIN).setValue(username); return this; } async inputPasswordLogin(password){ await $(PASSWORD_LOGIN).setValue(password); return this; } async clickLogin(){ await $(LOGIN_BTN).click(); }

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58 async clickProduct(){ await $(SAN_PHAM).click(); return this; } async clickAddCart(){ await $(DAT_MUA).click(); return this; } }; module.exports = Base;

Ví dụ về page_object với các Element sử dụng cho chức năng chỉnh sửa giỏ hàng

Bảng 3. 9 Ví dụ về file page_object.js chứa các element sử dụng cho chức năng chỉnh sửa giỏ hàng

const Base = require('../page_objects/Base');

const SOLUONG_DAT = '[name="txtsl0"]';

const CAPNHAT_GIOHANG = '=Cập Nhật Giỏ Hàng';

class EditCart extends Base {

async inputQuanity(sl_dat) { await $(SOLUONG_DAT).setValue(sl_dat); return this; } async onClickUpdateCart() { await $(CAPNHAT_GIOHANG).click(); return this;

SVTH: Tạ Hữu Đức Lớp: KTĐT & THCN K58

} }

module.exports = new EditCart();

Ví dụ về một Test Script sử dụng để kiểm thử cho chức năng chỉnh sửa số lượng sản phẩm của giỏ hàng

Một phần của tài liệu NGHIÊN CỨU WEBDRIVERIO VÀ ÁP DỤNG TRONG KIỂM THỬ TỰ ĐỘNG ỨNG DỤNG WEB (Trang 55 - 62)