Cucumber (P2) - Tạo project bằng Eclipse và quản lý thư viện với Maven
Bản thân mình thân thuộc với ngôn ngữ Java hơn Ruby nên bài viết này mình sẽ giới thiệu qua về Maven - trình quản lý dự án, và cách tạo project test chạy Cucumber trên Eclipse. Maven trong quản lý dự án Maven là một trình quản lý dự án cho phép nhà phát triển quản lý về phiên bản (version), các ...
Bản thân mình thân thuộc với ngôn ngữ Java hơn Ruby nên bài viết này mình sẽ giới thiệu qua về Maven - trình quản lý dự án, và cách tạo project test chạy Cucumber trên Eclipse.
Maven trong quản lý dự án
Maven là một trình quản lý dự án cho phép nhà phát triển quản lý về phiên bản (version), các thư viện (dependencies) , bản build, ... một cách tự động.
Nếu không sử dụng Maven?
Trong một số trường hợp, ví dụ như thêm thư viện project hoặc quản lý cấu trúc project hoặc cập nhật các bản build sau khi sửa đổi, nếu bạn làm thủ công thì công việc sẽ vất vả và đôi khi sự xung đột phiên bản sẽ khiến bạn cảm thấy khổ sở.
- Quản lý cấu trúc dự án
Bạn có thể thấy Maven quản lý projec theo cấu trúc rất rõ ràng với 3 thành phần chính: package src (scr/main/java và src/test/java), target và file pom.xml, trong đó file pom sẽ dùng để khai báo dependency (thư viện, ...) và cập nhật tự động mỗi khi dependency thay đổi.
So với cách thông thường, khi mà các file trong project lẻ tẻ, không hệ thống và bạn khó có thể kiểm soát thì Maven lựa chọn sáng giá hơn cả.
- Thêm thư viện vào dự án
Gỉa sử bạn đang cần thêm thư viện selenium-java để sử dụng API của Selenium, việc bạn thường làm là search google, down file và giải nén, sau đó add tất cả file jar vào mục Libraries của project, nếu bạn vô tình chọn thiếu một 1 file jar thì rất có thể khi chạy test, bạn sẽ gặp lỗi liên tục mà không biết lí do tại sao.
Với Maven, công việc của bạn sẽ được giảm tải đến không ngờ, bạn chỉ cần thêm thẻ <dependency> khai báo trong file pom.xml như sau:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.3.1</version> </dependency>
Đối với các thư viện khác, bạn chỉ cần làm tương tự như vậy là xong.
- Build và Deploying
Vì thư viện được quản lý, tập trung tại một nơi (file pom) và tự động cập nhật sau mỗi lần build nên bạn không lo vấn đề xung đột phiên bản, việc build sản phẩm sẽ trở nên dễ dàng hơn nhiều so với cách làm thủ công. Làm việc trên project trên các máy tính khác nhau cũng tiện lợi hơn rất nhiều, nếu như thông thường mỗi khi bạn chuyển workspace (mục làm việc của project) từ thiết bị này sang thiết bị khác bạn lại phải thay đổi tất cả đường dẫn vật lý của thư viện cho phù hợp thì với Maven, bạn chỉ cần load lại file pom là xong.
Tạo project Cucumber trong Eclipse
Cài đặt môi trường
Java
- Download jdk
- Thêm biến JAVA_HOME trỏ tới thư mục jdk trong máy
- Thêm giá trị cho biến Path
Maven
- Download Maven
- Thêm biến MAVEN_HOME trỏ tới thư mục maven vừa extract trong máy
- Thêm giá trị cho biến Path
Eclipse
- Download eclipse
- Giải nén và mở
- Go to Help → Eclipse Marketplace → Search Maven → Maven Integration for Eclipse → INSTALL.
Vậy là bạn đã hoàn thành xong bước cài đặt môi trường, tiếp theo chúng ta sẽ tạo project và thêm thư viện.
Tạo project và thêm thư viện
- Mở File → New → Others → Maven → Maven Project → Next
- Điền tên Artifact và GroupID cho project
- Sau khi tạo project xong, mở file Pom để thêm <dependency>
Một cách khá nhanh và hiệu quả mà mình thường dùng để thêm <dependency> là vào trang web https://search.maven.org/ tìm thư viện mà mình mong muốn. Ví dụ ở đây mình cần các thư viện sau: selenium-java, cucumber-java, cucumber-junit, cucumber-core, cucumber-jvm-deps, mình sẽ gõ lần lượt để tìm thư viện, sau đó mình sẽ copy thư viện và thêm vào file pom của project.
Chú ý!
- Selenium phiên bản mới nhất là 3.3.1 beta, do đó khi chạy test có thể vẫn còn nhiều lỗi, bạn nên dùng phiên bản cũ hơn để đảm bảo bộ test chạy ổn định hơn. Hơn nữa từ bản này trở đi, WebDriver theo chuẩn W3C nên bạn cần cài đặt thêm Gecko Driver để đảm bảo tính tương thích giữa Firefox và Selenium System.setProperty("webdriver.gecko.driver", " location of Gecko");
- Bạn không nên dùng Firefox phiên bản mới nhất v52 vì nó không tương thích với selenium 3.3.1, khi chạy hay gặp lỗi, bạn nên dùng Firefox thấp hơn version 50 để đảm bảo code chạy ngon lành.
Bạn đã sẵn sàng để viết script test, bài sau sẽ giới thiệu các kĩ thuật trong Cucumber như Background scenario, Datatable, ...
(còn tiếp)
Tham khảo https://www.tutorialspoint.com/cucumber/ http://maven.apache.org/ http://phamquan.com/tutorials/huong-dan-maven/huon-dan-xay-dung-maven-voi-du-an-java.html