Selenium-WebDriver và Headless test tích hợp trong Cucumer
Giới thiệu:
Selenium – nói 1 cách đơn giản, là công cụ automator tất cả các thao tác của con người trên browser.
Bạn có thể giả lập 1 set các action, VD như:
Selenium có 2 cách dùng, Selenium Server và Selenium WebDriver. Hiện nay trên firefox đã có plugin Selenium IDE. Bạn có thể dùng nó để record lại hành động của mình và export ra test code in Python, Ruby, C#, hoặc Java. Selenium test code chạy ở chế độ bình thường sẽ tự động bật browser của bạn lên và tự hành động y như bạn đã làm trước dó 😀
Tuy nhiên để quy trình test không tốn quá nhiều tài nguyên, người ta thường hay config để selenium chạy headless trên Linux. VD như Python sẽ có package Xvfb, cho phép tạo display chạy ngầm và bật web driver trên đó.
Bạn muốn chạy Headless thì cần kiểm tra case trước đối với Selenium-WebDriver
Tham khảo http://rdoc.info/github/leonid-shevtsov/headless
Cài đặt:
Với rails app, đặt vào trong gemfile, sau đó chạy lệnh cài đặt bunlde
gem “headless”, “>= 1.0.1”
Headless là một wapper cho Xvfb( package tạo display ảo của Linux ).
Ngoài ra để quay video từ màn hình ta sử dụng gói ffmpeg.
Trên linux có thể cài qua :
yum install ffmpeg
Selenium: là công cụ giả lập action trên browser, bắt chước y hệt thao tác của user và ko loại trừ bất cứ hạn chế nào
Cài đặt Xvfb and ffmpeg
Trong Centos sử dụng lệnh :
yum install Xvfb
Add file /etc/init.d/xvfb nhu sau:
#!/bin/bash # # /etc/rc.d/init.d/xvfbd # # chkconfig: 345 95 28 # description: Starts/Stops X Virtual Framebuffer server # processname: Xvfb # . /etc/init.d/functions [ "${NETWORKING}" = "no" ] && exit 0 PROG="Xvfb" PROG_OPTIONS=":7 -ac -screen 0 1024x768x24" PROG_OUTPUT="/tmp/Xvfb.out" case "$1" in start) echo -n "Starting : X Virtual Frame Buffer " $PROG $PROG_OPTIONS>>$PROG_OUTPUT 2>&1 > disown -ar /bin/usleep 500000 status Xvfb & > /dev/null && echo_success || echo_failure RETVAL=$? if [ $RETVAL -eq 0 ]; then /bin/touch /var/lock/subsys/Xvfb /sbin/pidof -o %PPID -x Xvfb > /var/run/Xvfb.pid fi echo ;; stop) echo -n "Shutting down : X Virtual Frame Buffer" killproc $PROG RETVAL=$? [ $RETVAL -eq 0 ] && /bin/rm -f /var/lock/subsys/Xvfb /var/run/Xvfb.pid echo ;; restart|reload) $0 stop $0 start RETVAL=$? ;; status) status Xvfb RETVAL=$? ;; *) echo $"Usage: $0 (start|stop|restart|reload|status)" exit 1 esac exit $RETVAL
cd /etc/init.d/xvfb
khởi động:
service xvfb start
Cài đặt selenium-server
Download: wget http://selenium.googlecode.com/files/selenium-server-standalone-2.24.1.jar
để chạy vừa là hub vừa là node ta sử dụng câu lệnh
java -jar selenium-server-standalone-2.24.1.jar