Hướng dẫn dựng project cơ bản sử dụng JBehave và Serenity BDD frameworks trong Windows

Wednesday, January 23, 2019
Edit this post


Về mặt định nghĩa của JBehave và Serenity BDD thì các bạn tự google nhé. Về mặt technical thì JBehave giúp map giữa story và script implementation một cách đơn giản, không cần phải cấu hình phức tạp. Serenity hỗ trợ sẵn bên trong nó JUnit cùng khả năng tạo report chi tiết và đẹp mắt.

Project mẫu có thể tải về ở link bên dưới, sau đó import vào Eclipse dưới dạng Maven project.


Vì sử dụng ngôn ngữ lập trình Java nên hẳn nhiên chúng ta cần phải cài JDK trước. Hướng dẫn cài JDK các bạn xem thêm ở link sau.

Để bắt đầu, trong Eclipse, hãy tạo mới một Maven project. Tất nhiên là máy tính bạn đang sử dụng phải có kết nối Internet thì Maven mới có thể tải các thư viện về được.

Để apply JBehave và Serenity, trong file pom.xml, chỉ cần đơn giản edit lại section dependencies như sau (version của các dependency bên dưới chạy ổn định trên máy tính của tôi ở thời điểm viết bài):


Tạo class AppTest kế thừa SerenityStory với nội dung như bên dưới. Class này sẽ là class main run. Khi chạy class này, nó sẽ tự động tìm và chạy tất cả các story trong thư mục stories.


Và đây là nội dung file test.story của chúng ta.


Trong file story, một scenario tương đương với một test case. Test case này bao gồm 2 step When, một là mở trang Facebook, hai là đăng nhập vào Facebook sử dụng account data từ bảng Examples bên dưới. Khi chạy, bạn sẽ thấy scenario này được chạy 2 lần với lần đầu sử dụng data cstoigian@gmail.com và lần thứ hai sử dụng data cstoigian@yahoo.com. Data-driven này được hỗ trợ hoàn toàn bởi framework, chúng ta không cần phải làm gì hết.


Tạo mới class BaseSteps với nội dung như bên dưới. Đây chính là phần implementation cụ thể map với 2 step When trong story test.story. Như đã thấy, các step này được map với nhau bởi annotation @When, bản chất của các step này là một Java method. Bên trong tôi chỉ đơn giản là in ra console các câu thông báo mà thôi. Tùy vào requirement cụ thể mà các bạn sẽ có các implement phức tạp hơn vào bên trong chúng.


Vậy BDD định nghĩa nghe có vẻ rắc rối và cao siêu nhưng thực tế ứng dụng thì các bạn sẽ thấy chúng ta viết các story và implement cụ thể bằng Java ở bên dưới. Tại sao phải phức tạp như vậy? Điều này thực ra sẽ giúp tối ưu resource cho team automation. Với cách viết script thuần code thông thường, bạn sẽ phải có 1 team automation gồm toàn những người biết code và có dev skills mới có thể làm được. Nhưng với cách viết này, chỉ cần 1-2 người chuyên làm nhiệm vụ code phần implementation bên dưới, còn để viết story bên trên, có thể load vào team manual QA cũng được, họ sẽ không cần phải care tới việc cấu hình cũng như dev skills. Hơn nữa, viết scenario story sử dụng ngôn ngữ cực kỳ con người nên sẽ map dễ dàng hơn với các manual test case.

Sau khi chạy xong, report của Serenity sẽ được tạo ra ở đường dẫn [đường dẫn tới project]/target/site/serenity/index.html. Ví dụ: D:\workspace\cstoigian.bdd.test\target\site\serenity\index.html

Còn đây là tổng quan cấu trúc project mẫu của chúng ta. Rất đơn giản phải không nào? Từ project mẫu này, các bạn có thể phát triển lên tiếp để adapt vào các dự án với quy mô lớn hơn.


Đơn giản vậy thôi, chúc các bạn thành công!!!

.
Xin vui lòng chờ đợi
Dữ liệu bài viết đang được tải về

© Copyright by CUỘC SỐNG TỐI GIẢN
Loading...