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

1/22/2019

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



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!!!

Cảm ơn bạn đã đọc bài viết của Cuộc Sống Tối Giản. Đây là một blog cá nhân, được lập ra nhằm mục đích lưu trữ và chia sẻ mọi thứ hay ho theo chủ quan của chủ sở hữu. Có lẽ vì vậy mà bạn sẽ thấy blog này hơi (rất) tạp nham. Mọi chủ đề đều có thể được tìm thấy ở đây, từ tâm sự cá nhân, kinh nghiệm sống, phim ảnh, âm nhạc, lập trình, cho tới cả các bạn gái xinh đẹp nữa. Phần lớn các bài đăng trong blog này đều được tự viết, trừ các bài có tag "Sponsored" là được tài trợ hoặc quảng cáo. Để ủng hộ blog, bạn có thể share những bài viết hay tới bạn bè, người thân, hoặc có thể follow Kênh YouTube của chúng tôi. Nếu cần liên hệ giải đáp thắc mắc hoặc đặt quảng cáo, vui lòng gửi mail theo địa chỉ cstoigian@gmail.com. Một lần nữa xin được cảm ơn rất nhiều!!!

Bài viết liên quan

Không có nhận xét nào:

© Copyright 2018 by Minimalism Life
Loading...
Minimalism Life