Như đã trình bày ở bài trước, nếu chỉ sử dụng behat và Mink, chúng ta sẽ chỉ kiểm tra được tính đúng đắn của chức năng ở cấp độ logic mà chưa có giao diện. Để kiểm thử được giao diện của website có đúng với chức năng hay không, chúng ta cần đến một công cụ giúp thể hiện phần giao diện của từng chức năng. Công cụ đó chính là Selenium Server- công cụ giúp cho các scenario được thực hiện trên browser thực- tương ứng với từng hành động của người dùng.
Cách cài đặt và sử dụng Selenium cùng với behat sẽ được giới thiệu ngay sau đây.
1. Cách cài đặt SeleniumWeb Driver
Để cài đặt SeleniumServer chúng ta thực hiện các bước sau:-
Truy cập vào link: http://docs.seleniumhq.org/download/
-
Download Selenium Server version: 2.44.0
-
Sau khi download thành công, chúng ta sẽ được 1 file có tên: selenium-server-standalone-2.44.0.jar
- Tạo một thư mục selenium trong thư mục Behat đã tạo trước đó, đưa file selenium vừa download vào thư mục selenium
-
Mở Git Bash, gõ lệnh: java –jar selenium-server-standalone-2.44.0 để khởi động selenium
- Sau khi gõ lệnh, ta sẽ được kết quả như hình sau:
2. Cách kết hợp behat và selenium
Như ở bài trước, chúng ta đã sử dụng behat và mink để thực thi các scenario, để sử dụng selenium, chúng ta sẽ làm thêm các bước sau đây:- Tạo file .feature với cấu trúc như sau:
@javascript
User story
Title (one line describing the story)
Narrative:
As a [role]
I want [feature]
So that [benefit]
Scenario 1: Title
Given [context]
When [event]
And [some more context]...
Then [outcome]
And [another outcome]...
Scenario 2: ...
Trong đó từ khóa [@javascript] được dùng để khởi động selenium server
trước khi thực thi các scenario. Và phải có từ khóa trên thì các
scenario mới được thực thi trên browser thực.User story và scenario đã được giải thích ở bài trước.
Ví dụ: Như ở bài trước, ta đã tạo 1 file feature để kiểm thử chức năng search trên Wikipedia như hình sau:

- Để sử dụng selenium, chúng ta chỉ cần thêm từ khóa @javascript ở dòng đầu tiên trong file. Và khi đó file feature sẽ như hình sau:


Với trường hợp trên, các scenario đều thành công và đưa ra kết quả passed cho toàn bộ các steps, vậy trong trường hợp có 1 steps không thành công, kết quả sẽ thay đổi như thế nào? Chúng ta hãy cùng tìm hiểu ví dụ tiếp theo sau đây:
- Bước 1: Chúng ta thay đổi một steps trong scenario như sau:

- Bước 2: Chạy lại lệnh: bin/behat feature/search.feature

Với việc sử dụng công cụ kiểm thử tự động như trên vào các dự án dài hạn và có ít thay đổi, kiểm thử viên có thể tiết kiệm được khá nhiều thời gian và công sức. Tuy nhiên nếu sử dụng vào các dự án ngắn hạn và có nhiều thay đổi, việc sử dụng công cụ này sẽ không còn tối ưu nữa, vì lúc đó kiểm thử viên sẽ phải thường xuyên thay đổi, chỉnh sửa các scenario hoặc có thể là cả user’s story. Vì vậy, chúng ta cần xem xét kỹ càng các yếu tố của dự án trước khi triển khai việc sử dụng behat cũng như các công cụ kiểm thử khác để có thể sử dụng chúng một cách hiệu quả mà không gây ảnh hưởng đến công việc của các bộ phận tham gia vào quá trình phát triển phần mềm.
