Chuyển đến nội dung chính

Hướng dẫn sử dụng Selenium với Intellij IDEA và Eclipse

Trong bài viết này, mình xin hướng dẫn các bạn các tạo project Selenium bằng Intellij IDEA và Eclipse.
Bạn nên chọn cài đặt các công cụ sau để thực hiện auto test
  1. JDK.
  2. Firefox (phiên bản hỗ trợ hiện tại là 45). Bạn có thể tìm kiếm trên Google. Thường thì thư viện Selenium sẽ hỗ trợ phiên bản Firefox thấp hơn.
  3. Chrome (nếu bạn sử dụng).
  4. Intellij IDEA (nếu bạn sử dụng thay vì sử dụng Eclipse).
  5. Eclipse (nếu bạn sử dụng thay vì Intellij IDEA).
  6. Selenium library.
  7. Test NG (dùng để xuất report)
  8. Firebug: tìm xpath trong Firefox
Lưu ý: Bạn nên cài đặt phần mềm vào thư mục mặc định (thường là C). Việc đổi thư mục đôi khi sẽ làm lỗi trong quá trình biên dịch và chạy phần mềm.
Mình đã thử cài đặt Intellij IDEA vào phân vùng E và nó không nhận ra Java. Cài đặt Firefox vào phân vùng E, và kết quả không chạy được project do không tìm thấy Gecko library.

Cài đặt Java

Đầu tiên, bạn cần cài đặt JDK (Java development kit) vào hệ thống. Bạn vào trang web Oracle để download và cài đặt:

Hoặc bạn có thể chọn JRE để thay thế JDK.

Download Selenium library

Selenium WebDriver hỗ trợ nhiều ngôn ngữ, trong đó bao gồm Java và C#. Mặc dù là dân .NET nhưng mình muốn thử sử dụng Selenium bằng ngôn ngữ Java.
Bạn vào trang Selenium để download thư viện

Nhưng trong bài viết này, mình sử dụng Selenium 2, nên sẽ download phiên bản cũ hơn:


Bạn chọn “previous releases”, nó sẽ ra trang hiển thị những phiên bản cũ hơn. Mình chọn phiên bản 2.52

Download tập tin .zip.
Bạn giải nén vào 1 thư mục nào đó trong Windows.
Ở các bước sau, tùy theo công cụ bạn sử dụng (Intellij IDEA hay Eclipse), bạn copy tất cả các file vào thư mục tương ứng và thêm vào project.

Cài đặt Web Driver cho Intellij IDEA

Bạn vào trang jetbrains để download Intellij IDEA.
Intellij IDEA là công cụ khá trực quan, dễ sử dụng hơn Eclipse nhiều, nhưng bạn phải tốn phí mua bản quyền.
Bạn nên cài đặt vào phân vùng C nếu không muốn bị những lỗi không mong muốn.
Trong khi cài đặt, nó sẽ có 1 option là cài đặt Intellij IDEA 64 bit. Cài đặt thêm chả sao cả :).

Tạo 1 project mới

File->New-> Project


Chọn Java -> Next

Click Next tiếp tục. Bạn gõ tên Project và chọn đường dẫn để lưu project

Click Finish để hoàn tất.
Sau đó, bạn copy tất cả các file Selenium đã giải nén vào thư mục lib.
Thêm thư viện *.jar vào dự án: File-> Project Structure -> Modules. Bạn chọn tab Dependencies. Click vào dấu + để thêm thư viện.
Lưu ý: Bạn phải add từng file thay vì chọn thư mục.


Bạn có thể cấu trúc project như sau:

Tạo 1 test case đơn giản: 


/**
 * Created by anbin on 3/4/2017.
 */
public class FirstTestCase {

    public static void main(String[] args) throws Exception {

        // Create a new instance of the Firefox driver
        WebDriver driver = new FirefoxDriver();

        //Launch the Online Store Website
        driver.get("http://www.store.demoqa.com");

        // Print a Log In message to the screen
        System.out.println("Successfully opened the website www.Store.Demoqa.com");

        //Wait for 5 Sec
        Thread.sleep(5);

        // Close the driver
        driver.quit();
    }
}
Bạn bấm Ctrl+F9 để biên dịch. Nhưng sẽ bị báo lỗi vì thiếu khai báo package.
Bạn nhấp vào dòng chữ WebDriver màu đỏ, sẽ có gợi ý package.

Ngoài ra trong trường hợp không có gợi ý, trong trường hợp này là FirefoxDriver. Bạn nhấp vào chữ FirefoxDriver, nhấn Alt+Enter, Intellij IDEA sẽ gợi ý cho bạn.
Sau khi biên dịch thành công, bạn bấm Alt+Shift+F10 để chạy chương trình.
Note: Nếu bạn muốn dùng project này với Eclipse, bạn cần thực hiện: File ->Export to Eclipse. Intellij IDEA sẽ tự động thêm 2 file .project và .classpath để bạn có thể import và sử dụng trong Eclipse.
Trường hợp bạn sử dụng git để quản lý project, bạn cần tạo thêm file .gitignore với nội dung:
*.class

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
#*.jar
*.war
*.ear

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*


# User-specific stuff:
/.idea/workspace.xml
/.idea/tasks.xml
/.idea/dictionaries
/.idea/vcs.xml
/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
/.idea/dataSources.ids
/.idea/dataSources.xml
/.idea/dataSources.local.xml
/.idea/sqlDataSources.xml
/.idea/dynamic.xml
/.idea/uiDesigner.xml

# Gradle:
/.idea/gradle.xml
/.idea/libraries

# Mongo Explorer plugin:
/.idea/mongoSettings.xml

## File-based project format:
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
/.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

### Intellij Patch ###
# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721

# *.iml
# modules.xml


Cài đặt Selenium với Eclipse

Bạn download Eclipse tại địa chỉ: http://www.eclipse.org/downloads/

Sau khi cài đặt, bạn tạo project mới.
File -> New -> Java Project.

Gõ tên Project, chọn đường dẫn để lưu -> Finish.

Thêm thư viện Selenium

Bạn copy toàn bộ file *.jar vào thư mục libs
Project -> Properties -> Java Build Path. Click vào nút Add External JARs… để thêm thư viện Selenium.

Tạo 1 testcase mới

File -> New -> Class

Bạn thêm nội dung này vào:
package automationFramework;
public class FirstTestCase {

 public static void main(String[] args) throws Exception {
  
        // Create a new instance of the Firefox driver
        WebDriver driver = new FirefoxDriver();

        //Launch the Online Store Website
        driver.get("http://www.store.demoqa.com");

        // Print a Log In message to the screen
        System.out.println("Successfully opened the website www.Store.Demoqa.com");

        //Wait for 5 Sec
        Thread.sleep(5);

        // Close the driver
        driver.quit();
    }
}

Tương tư Intellij IDEA, Eclipse cũng gợi ý (theo mình nghĩ tốt hơn). Nhấp chọn Import… để thêm package vào project.

Bây giờ để chạy test case, bạn chọn Run > Run As > Java Application hoặc Right Click trên Eclipse code vả Click Run As  > Java Application.

Kết quả trả về:
Successfully opened the website www.Store.Demoqa.com

Giải thích về đoạn code

 import Packages/Statements;
Trong Java, chúng ta sử dụng câu lệnh import để sử dụng class được khai báo trong package khác. Nó tương tự namespace trong .NET.
Package hiểu đơn giản là 1 thư mục chứa các file. Khi bạn ở package B, bạn muốn sử dụng class được khai báo ở package A, bạn phải viết:
 A.classA a = new A.classA();
Để giảm sự lặp lại nhàm chán, ta có thể viết:
 class A = new classA();
VD 2:
 
org.openqa.selenium.WebDriver driver = new FirefoxDriver();
Bạn có thể viết:
import org.openqa.selenium.WebDriver; 
public class TestCase {
      public static void main(String[] args) {
             WebDriver driver = new FirefoxDriver();
        }
}

Sleep Statement

Trong lập trình, bạn hạn chế sử dụng câu lệnh sleep() vì nó chặn đứng luồng thực thi chính của chương trình. Trong lập trình automation testing, bạn sử dụng sleep (hoặc câu lệnh khác) để chờ đợi 1 thực thi bên ngoài xong, rồi mới thực hiện tiếp.
  //Wait for 5 Sec
  Thread.sleep(5);
Giả sử, bạn thực hiện tìm kiếm và chờ Google site trả về kết quả. Nếu bạn thực thi liên tục, thì website sẽ không trả về kết quả khi bạn run program, mà chỉ trả về kết quả khi bạn debug.

Kết luận

Qua bài viết này, bạn sẽ nắm được cách tạo 1 project Selenium đơn giản bằng Intellij IDEA hoặc Eclipse.
Chúc các bạn thành công

Tham khảo

http://toolsqa.com/selenium-webdriver/download-and-install-java/

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.