PMC:QA:Sahi with Hudson

From ADempiere
Revision as of 03:59, 17 March 2010 by Sunny (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Hudson with Sahi=

please review document Sahi integrate with Ant brfore browse this document

Integrate Hudson with Sahi

job Sahi

open Hudson and create a new job(eg.Sahi)

Husa.png

Configuration

Sahi -> Configure -> Build -> Add build step -> Invoke Ant

configure it as follow:

Husa1.png

save your configuration,then you can build it.

view result by Build History -> Console Output

    • result:**

Husa2.png

logs

Sahi test has log,the default directory is sahi_HOME/userdata/logs/playback

In order to view the log by hudson,we need to make the log directory point to the job's workspace

goto Sahi's workspace,in linux the directory is /root/.hudson/jobs/Sahi/workspace

create a new directory logs

>workbox workspace # mkdir logs

and add script as follow to zkdemo.xml after script "threads="3" >"

><report type="html" logdir="/root/.hudson/jobs/Sahi/workspace/logs"/>

Built it again.

after build,you can view logs by Workspace -> logs

Husa3.png

Husa4.png

Problem

you can find the name of log file include chinese(i haven't research that),so maybe cause problem can't open log page:

Husa5.png

    • Solution:**

modify server.xml(tomcat_Home/conf),

add Template:CodeURIEncoding="UTF-8"Template:/code

like this:

Template:Code<Connector debug="0" maxProcessors="100" minProcessors="5" port="8080" URIEncoding="UTF-8" />Template:/code

restart tomcat,then you can access log page.

Playing Back Headless with Sahi

the above test,we must install Firefox.

In order to run your Sahi tests in headless mode you must do two things:

  * Provide a virtual graphical environment in which to run the browser. To do this we'll use Xvfb, the X-Windows virtual frame buffer.
  * Instruct the browser to use the virtual graphical environment. To accomplish this, we'll modify the <sahi> ANT task.

install Xvfb

In the X Window System, Xvfb or X virtual framebuffer is an X11 server that performs all graphical operations in memory, not showing any screen output. From the point of view of the client, it acts exactly like any other server, serving requests and sending events and errors as appropriate. However, no output is shown. This virtual server does not require the computer it is running on to even have a screen or any input device. Only a network layer is necessary.

Actually you don't need install it if you have installed xorg-server,you can just type Xvfb to test whether it works.

Assuming you've installed Xvfb successfully, you can launch it into a background process with the following command:

>$ Xvfb :99 -ac &

Here we have instructed Xvfb to use the DISPLAY number :99 and to allow all connections (-ac).

or we can create a new file in /etc/init.d named xvfb

the content is:

Template:Code XVFB=/usr/bin/Xvfb XVFBARGS=":99 -screen 0 800x600x8 -fbdir home" PIDFILE=/var/run/xvfb.pid case "$1" in

 start)
   echo -n "Starting virtual X frame buffer: Xvfb"
   start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
   echo "."
   ;;
 stop)
   echo -n "Stopping virtual X frame buffer: Xvfb"
   start-stop-daemon --stop --quiet --pidfile $PIDFILE
   echo "."
   ;;
 restart)
   $0 stop
   $0 start
   ;;
 *)
       echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
       exit 1

esac exit 0 Template:/code

Then We can use **/etc/init.d/xvfb** start to run it.

update Ant task

Now, the only modification we must make to our previous ANT script is to instruct Firefox to use this DISPLAY that is being provided by Xvfb. To accomplish this, we only need to modify the browseroption line within the sahi ANT task by adding the argument "--display=:99". The updated sahi ANT task is now:

Template:Code

       <sahi suite="${user.data}/scripts/zkdemo/zkdemo.suite"
             browser="/usr/lib/firefox-3.0.16/firefox"
             baseurl="${urlbase}"
             sahihost="localhost"
             sahiport="9999"
             failureproperty="sahi.failed"
             haltonfailure="false"
             browseroption="--display=:99 -profile ${user.data}/browser/ff/profiles/sahi1 -no-remote"
             browserProcessName="firefox"
             threads="1">
           <report type="html"/>
           <report type="junit" logdir="${user.data}/temp/junit"/>
       </sahi>

Template:/code

Now that you have Xvfb running in the background, and the updated ANT script, you won't see the browser launch during the tests; it's all happening in memory. This is exactly what we need for our continuous integration system.

built the job.

Result:

Husa6.png

you can see **the test is failed**

may be because Xvfb.in console i get info

Template:CodeAUDIT: Tue Mar 16 17:37:29 2010: 26941 Xvfb: client 1 rejected from local host (uid 0)Template:/code

    • my test about Xvfb**

Template:Codeworkbox bin # Xvfb :99 -screen 0 1024x768x24 & [5] 27261 Template:/code

but test follow is failed

Template:Codebin # DISPLAY=:99 firefox & [6] 27266 AUDIT: Tue Mar 16 17:59:11 2010: 27261 Xvfb: client 1 rejected from local host (uid 0) Xlib: connection to ":99.0" refused by server Xlib: No protocol specified

Error: cannot open display: :99 Template:/code

    • solution:**

made a file

Template:Code/etc/X99.hostsTemplate:/code

containing the single line:

Template:CodelocalhostTemplate:/code

and call Xvfb thus:

Template:CodeXvfb :99 -auth /etc/X99.hosts -screen 0 800x600x24 &Template:/code


modify /etc/init.d/xvfb

Template:Code# nano /etc/init.d/xvfbTemplate:/code

Template:CodeXVFBARGS=":99 -auth /etc/X99.hosts -screen 0 800x600x24" Template:/code

then start Xvfb

Template:Code/etc/init.d/xvfb startTemplate:/code

can see we have started xvfb:

Template:Code# ps aux|grep Xvfb root 15643 0.3 0.6 11280 6532 ? Ss 13:36 0:00 /usr/bin/Xvfb :99 -auth /etc/X99.hosts -screen 0 800x600x24 Template:/code

you can run follow command to test xvfb.

Template:CodeDISPLAY=:99 firefox & [3] 11821Template:/code

also have error info:

Template:Code workbox bin # sh: kde-config: command not found sh: kde-config: command not found Xlib: extension "XInputExtension" missing on display ":99.0". Failed to get list of devices Template:/code

test again

the result:

Husa9.png

you can find the last step testing is failed,i don't konw why?

if delete the last step and test again,it is successful!

Husa8.png


Reference