Mar 27, 2014

Εκτέλεση σεναρίων ελέγχου (test cases) διαφορετικών browsers στο Robot framework

Ένα εξαιρετικά ενδιαφέρον acceptance testing framework είναι το Robot. Διακρίνεται αφενός για την απλότητα του, καθώς τα βήματα ελέγχου περιγράφονται σε απλή, φυσική γλώσσα που καταχωρείται στην μορφή κελιών, παρόμοιων με αυτών ενός φύλλου εργασίας (spreadsheet) Γι' αυτή τη λειτουργικότητα προσφέρεται το περιβάλλον προγραμματισμού R(obot)IDE. Αφετέρου, διαθέτει μια μεγάλη λίστα από βιβλιοθήκες ή επεκτάσεις αν προτιμάτε, ώστε να καλύψει ελέγχους σε βάσεις δεδομένων, συνδέσεις ssh, web services, web user interfaces κλπ.
Για την εκτέλεση σεναρίων σε web σελίδες μπορεί να χρησιμοποιηθεί η βιβλιοθήκη του Selenium που είναι εξαιρετικά ισχυρή σε επιλογές ώστε να προσομοιώνει την καταχώρηση του χρήστη, τα δυναμικά γεγονότα που συμβαίνουν σε μια σελίδα και να τα αντιπαραβάλει με τα επιθυμητά αποτελέσματα. Προκειμένου να ξεκινήσει ένα τεστ, μια από τις πρώτες Selenium εντολές που θα χρησιμοποιήσουμε είναι αυτή του "Open Browser" που επιδέχεται ως όρισμα και τον τύπο του φυλλομετρητή. Έτσι, μπορούμε να φτιάξουμε μια μεταβλητή στο Robot (πχ "browser") που θα δηλώνει αυτόν τον τύπο (πχ με τιμή "firefox" ή "chrome") και αναλόγως να την τροφοδοτούμε. Για παράδειγμα, η command-line εκτέλεση ενός Robot test suite έχει ως εξής, λαμβάνοντας ως παράμετρο τον τύπο του browser:

pybot -v browser:firefox /home/user/Projects/testing/robot/testsuite1/TestSuite1.robot

Στις δοκιμές μου σε Ubuntu 13.10 (Saucy Salamander) δεν παρουσιάστηκε κανένα πρόβλημα με τον Firefox. Υπάρχει όμως μια μικρή σημείωση για την υποστήριξη του Chromium. Θα χρειαστεί να κατεβάσουμε τον Chrome Webdriver από εδώ και να τον τοποθετήσουμε σε ένα φάκελο που βρίσκεται στο PATH μας. Τέλος, να φτιάξουμε ένα symbolic link του Chromium για το alias google-chrome:

ln -s /usr/bin/chromium-browser /usr/bin/google-chrome

No comments: