How to install selenium test in Centos OS

How to install selenium test in Centos OS

1.PHPUnit và Selenium

  • Selenium Server là một công cụ test mà cho phép bạn có thể viết các bài kiểm trả trên giao diện người dùng một cách tự động cho ứng dụng web với bất kì một ngôn ngữ lập trình nào và với bất kì trang web nào sử dụng HTTP trên trình duyệt chính . Nó tự động thực hiện các công việc, thúc đẩy quá trình hoạt động thông qua hệ điều hành . Các test Selenium sẽ được chạy trực tiếp trên trình duyệt, giống như người dùng thực sự làm . Những test này có thể được sử dụng cho cả 2 loại : thử nghiệm chấp nhận (bằng cách thực thi các test ở mức cao trên các hệ thống tích hợp thay vì chỉ kiểm tra mỗi đơn vị của hệ thống độc lập) và thử nghiệm khả năng tương thích với trình duyệt (bằng việc kiểm tra ứng dụng web trên nhiều hệ điều hành và trình duyệt khác nhau).
  • PHPUnit_Selenium được hỗ trợ qua 1 máy chủ Selenium version hiện tại là 2.x
  • Lý do cho việc này là Selenium 2 có thể tương thích ngược và Selenium RC hiện đã không được hỗ trợ nữa .

2. Installation

  • Download Selenium Server tại đây : http://docs.seleniumhq.org/download/. Tùy theo ngôn ngữ bạn muốn test là gì mà tải server tương ứng . Ở đây chúng ta tải selenium-server-standalone-2.44.0.jar

  • Để chạy được Selenium bạn cần cài đặt Java SDK . Để được danh sách các SDK phù hợp có thể cài đặt trên hệ thống bạn sử dụng lệnh sau :

       yum search java | grep -i --color JDK
    

Screenshot from 2015-05-25 17:02:29.png

Chúng ta nên cài đặt bản mới nhất
`java-1.7.0-openjdk.x86_64 OpenJDK Runtime Environment` và
`java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment`
  • Cài đặt XWindows : Trên Centos OS chỉ là màn hình control nên để chạy trình duyệt firefox(thường sử dụng firefox, bạn cũng thể dùng chrome) bạn cần cài đặt XWindows .

      sudo yum -y install firefox Xvfb libXfont Xorg
    
      sudo yum -y groupinstall "X Window System" "Desktop" "Fonts" "General Purpose Desktop"
    

    Để khởi động XWindows Virtual Frame Buffer(XVFB) ta sử dụng lệnh :

      Xvfb :99 -ac -screen 0 1280x1024x24 &
    

    Kí tự & để nói cho hệ điều hành biết là ứng dụng được chạy ngầm .

    Tiếp theo ta cần cài đặt cồng display port cho XWindows :

      export DISPLAY=:99
    

    Cuối cùng khởi chạy Selenium Server:

      java -jar selenium-server-standalone-2.44.0.jar
    

    Ta cũng có thể gộp 2 lệnh cuối chạy cùng nhau :

      DISPLAY=:99 java -jar selenium-server-standalone-2.44.0.jar
    

    Như vậy là ta đã xong phần cài đặt môi trường để chạy selenium server . Thế nhưng có vấn đề phát sinh ở đây là khi chạy thử các phần mềm trong môi trường thử nghiệm với các chứng chỉ SSL là tự gán . Thì trình duyệt sẽ hiện thông báo kết nối HTTP là không hợp lệ

    496acd0f66e5545722acee5b6333665491572dba.png

    Khi chạy ứng dụng test bằng Selenium bạn cũng sẽ gặp vấn đề này và làm cho quá trình test không thể tiếp tục . Một trong những cách giải quyết vấn đề này là tạo Firefox profile.

3. Creating firefox Profile

Việc tạo chứng chỉ này thì chúng ta nên tạo firefox profile trên một hệ điều hành khác như linux hay windown chẳng hạn .

Dưới đây là 1 ví dụ về việc tạo firefox Profile trên linux :

  • Step 1 : Khởi động profile manager bằng cách gõ firefox -ProfileManager -no-remote trên terminal

Screenshot from 2015-05-26 09:43:48.png

  • Step 2 : Tạo một profile mới có tên selenium như hình trên

  • Step 3 : Truy cập vào địa chỉ trang web bằng https

    83e7ed33bcbb88be56f2acd2bb2f3678e226075b.png

  • Step 4 : Accept the SSL Certification

    Click “I Understand the Risks”

    Click “Add Exception”

    Click “Get Certificate”

    Nhớ check vào hộp “Permanently store this exception” sau đó click vào “Confirm Security Exception”

  • Step 5 : Sau khi thêm Exception thì tiếp trục truy cập trang web sau đó đóng firefox

  • Step 6 : Đi đến thư mục chứa selenium profile. Ví dụ như hình dưới đây :

    Screenshot from 2015-05-26 10:10:57.png

  • Step 7 : Xóa toàn bộ các file trong thư mục selenium ngoài trừ 2 file cert_override.txtcert8.db

  • Step 8 : copy firefox profile lên máy chạy Centos OS đặt cùng thư mục với thư mục chứa selenium server .

  • Chú ý nếu bạn muốn tạo chứng chỉ firefox trên windown có thể tham khảo ở đây :

http://www.shooter-smith.co.uk/how-to-use-a-custom-firefox-profile-with-selenesse-selenium-to-add-exceptions-for-ssl-issues/

4. Tạo test PHPUnit chạy cùng Selenium server

  • Đầu tiên ta chạy selenium server với firefox profile vừa copy vào :

    Screenshot from 2015-05-26 11:03:35.png

    Như hình trên ta khởi chạy selenium trên cổng Display 99 và sử dụng profile selenium

  • Giả sử bạn cần test một ứng dụng web HTTPS ví dụ như :

    f782aa5d71372b7c8edb1180a8f1f0114e8f88d2.png

    Để xác định xem bạn đã có thể truy cập vào trang có kết nối không tin cậy này chưa . Chúng ta hãy viết thử 1 đoạn code test :

    f9c7bc6ece5786b44d7e70a88aa1def1280e6c77.png

  • Đoạn code này chỉ cho trình duyệt firefox sẽ truy cập vào trang login(HTTPS) . Tiếp theo sẽ kiểm tra Title của trang có giống với chuỗi cho trước không . Nếu bạn chưa thêm profile cho selenium server thì sẽ không truy cập vào được và báo lỗi kết nối không tin cậy . Nếu đã làm đầy đủ các bước trên thì Selenium Server sẽ trả về kết quả như sau :

    Screenshot from 2015-05-26 11:24:38.png

    Bạn có thể thấy kết quả trả về đúng với chuỗi cần so sánh . Như vậy ta đã chạy thành công .

5. Ví dụ về việc test giao diện user

  • Để test giao diện user thì bạn phải hướng dẫn cho selenium server các thao tác cần phải làm . Ví dụ như gõ một đoạn text vào 1 thẻ input nào đó , hay đơn giản là click vào 1 nút nào đó trên trang web hiển thị .

  • Chúng ta sẽ xem xét ví dụ sau đây : Giả sử chúng ta cần test 1 form đăng nhập ở trang mà chúng ta vừa truy cập vào 24f39270fe638714efa4856a03074517fdde04a7.png

    Chúng ta cần nhập user và password sau đó nhấn nút login . Đây là 1 đoạn code mẫu :

    Screenshot from 2015-05-26 11:32:51.png

    Đoạn code này sẽ thông báo cho Selenium server rằng cần nhập văn bản vào các thẻ có name tương ứng với các giá trị tương ứng như trên hình . Sau đó click vào 1 đối tượng có css như hình trên Hàm waitForPageToLoad để thông báo cho server đợi page 30s .

    Kết quả :

    Screenshot from 2015-05-26 11:35:37.png

    Bạn có thể thấy Selenium server đã thay bạn công đoạn đăng nhập và với đoạn code này bạn có thể chạy trên các trình duyệt các nhau để kiểm tra sự tương thích của ứng dụng web .

Tài liệu tham khảo : https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/WebappTesting.html

https://gist.github.com/textarcana/5855427

http://www.shooter-smith.co.uk/how-to-use-a-custom-firefox-profile-with-selenesse-selenium-to-add-exceptions-for-ssl-issues/

https://girliemangalo.wordpress.com/2011/11/09/selenium-rc-to-test-unsecured-connection-https/

http://www.cyberciti.biz/faq/centos-linux-6-install-java-sdk/


All Rights Reserved