selenium database testing using webdriver
Στο τελευταίο μας σεμινάριο σεληνίου, μάθαμε πώς να το κάνουμε αντιμετώπιση ορισμένων επαναλαμβανόμενων προβλημάτων σε σενάρια σεληνίου . Συζητήσαμε κάποιες προγενέστερες έννοιες στις οποίες θα ασχοληθήκαμε με συμβάντα ποντικιού και πληκτρολογίου, προσπελάζοντας πολλαπλούς συνδέσμους εφαρμόζοντας λίστες.
Προχωράμε με το δικό μας προχωρημένα θέματα στη σειρά προπόνησης Selenium , θα σας παρουσιάζαμε την έννοια του Δοκιμή βάσης δεδομένων με χρήση του Selenium WebDriver.
Θα συζητούσαμε τις βασικές διαδικασίες όπως σύνδεση βάσης δεδομένων, εκτέλεση ερωτημάτων, ανάκτηση δεδομένων και αποσύνδεση παρουσιών βάσης δεδομένων κ.λπ. Θα συζητούσαμε επίσης διάφορες πρακτικές επιπτώσεις όπου χρειαζόμαστε δοκιμή βάσης δεδομένων με δοκιμές αυτοματισμού για να δοκιμάσουμε το πλήρη σενάρια από άκρο σε άκρο.
καθαρές ερωτήσεις συνέντευξης και απαντήσεις για έμπειρους
Πριν προχωρήσουμε στις τεχνικές επιπτώσεις που σχετίζονται με τον έλεγχο αυτοματοποιημένων βάσεων δεδομένων. Ας συζητήσουμε μερικά σενάρια όπου απαιτούμε την εκτέλεση δοκιμών βάσης δεδομένων μαζί με τον έλεγχο αυτοματισμού. Αλλά πριν από αυτό, θα ήθελα να επιβεβαιώσω εδώ ότι η δοκιμή βάσης δεδομένων είναι ένας πολύ περίεργος τύπος δοκιμών, ενώ το Selenium WebDriver είναι ένα εργαλείο που χρησιμοποιείται για την προσομοίωση και την αυτοματοποίηση των αλληλεπιδράσεων των χρηστών με το UI εφαρμογής.
Από τεχνικής απόψεως, δεν πραγματοποιούμε ακριβείς δοκιμές βάσεων δεδομένων, αλλά δοκιμάζουμε την εφαρμογή μας σε συνδυασμό με τη βάση δεδομένων, προκειμένου να διασφαλίσουμε ότι οι αλλαγές αντικατοπτρίζονται και στα δύο άκρα, αναγνωρίζοντας έτσι ελαττώματα νωρίς.
Απολύτως όλες οι διαδικτυακές εφαρμογές χρειάζονται ένα backend για την αποθήκευση των δεδομένων. Βάσεις δεδομένων όπως MySQL, Oracle και SQL Server είναι αρκετά δημοφιλείς αυτές τις μέρες.
Τώρα επιστρέφοντας στο αρχικό θέμα, ας συζητήσουμε μερικά σενάρια για να δείξουμε τη ζήτηση των δοκιμών βάσης δεδομένων μαζί με τον έλεγχο αυτοματισμού.
Τι θα μάθετε:
- Εξετάστε τα ακόλουθα σενάρια
- Δημιουργία δεδομένων δοκιμής στη βάση δεδομένων
- Δημιουργία νέας βάσης δεδομένων
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Εξετάστε τα ακόλουθα σενάρια
# 1) Κατά καιρούς, πρέπει να διασφαλίσουμε ότι τα δεδομένα που εισάγονται από το περιβάλλον χρήστη αντικατοπτρίζονται με συνέπεια στη βάση δεδομένων. Έτσι, ανακτούμε τις πληροφορίες από τη βάση δεδομένων και επαληθεύουμε τις ανακτημένες πληροφορίες έναντι των πληροφοριών που παρέχονται από τη διεπαφή χρήστη. Για παράδειγμα, φόρμες εγγραφής, δεδομένα χρήστη, προφίλ χρήστη, ενημερώσεις και διαγραφές δεδομένων χρήστη. Έτσι, το σενάριο δοκιμής για αυτοματοποίηση μπορεί να είναι «Για να επαληθεύσετε ότι οι πληροφορίες του χρήστη αποθηκεύονται επιτυχώς στη βάση δεδομένων μόλις ο χρήστης εγγραφεί στην εφαρμογή».
#δύο) Μια άλλη περίπτωση χρήσης της εκτέλεσης δοκιμών βάσης δεδομένων με το Selenium WebDriver ενδέχεται να προκύψει όταν ο χρήστης έχει οδηγίες να φορτώσει τα δεδομένα δοκιμής ή τα αναμενόμενα δεδομένα από τη βάση δεδομένων. Έτσι, σε μια τέτοια περίπτωση, ο χρήστης θα έκανε τη σύνδεση με τη βάση δεδομένων χρησιμοποιώντας ένα API τρίτου μέρους, θα εκτελούσε ερωτήματα για να ανακτήσει δεδομένα από το σύνολο δεδομένων και στη συνέχεια να επιβεβαιώσει τα δεδομένα που ανακτήθηκαν από τη βάση δεδομένων με τα πραγματικά δεδομένα που συμπληρώνονται στη διεπαφή χρήστη της εφαρμογής .
# 3) Μια άλλη περίπτωση χρήσης είναι η πραγματοποίηση συναφών δοκιμών βάσης δεδομένων. Ας υποθέσουμε ότι πραγματοποιήσαμε μια λειτουργία στο περιβάλλον χρήστη της εφαρμογής και θέλουμε να δοκιμάσουμε τον προβληματισμό στη βάση δεδομένων. Ίσως τα δεδομένα που επηρεάζονται να βρίσκονται σε διάφορους πίνακες της βάσης δεδομένων λόγω της συσχέτισης. Επομένως, συνιστάται πάντα να δοκιμάζετε την αντανάκλαση δεδομένων σε όλες τις περιοχές που επηρεάζονται.
Το σελήνιο, όπως είπα, προσομοιώνει τις αλληλεπιδράσεις των χρηστών με την υπό δοκιμή εφαρμογή. Μπορεί να προσομοιώσει συμβάντα πληκτρολογίου, ενέργειες ποντικιού κ.λπ. Αλλά αν ο χρήστης επιθυμεί να αυτοματοποιήσει οτιδήποτε έξω από το πρόγραμμα περιήγησης - αλληλεπιδράσεις εφαρμογών ιστού, τότε το σελήνιο δεν μπορεί να βοηθήσει πολύ. Επομένως, απαιτούμε άλλα εργαλεία ή δυνατότητες για να εκτελέσουμε δοκιμές end-to-end.
Έτσι, σε όλα τα παραπάνω σενάρια, ενδέχεται να χρειαστεί να εκτελέσουμε δοκιμές βάσης δεδομένων μαζί με τον αυτοματισμό UI. Μπορούμε να ελέγξουμε τη λογική των επιχειρήσεων χειραγώγηση των δεδομένων και επαληθεύοντας τον προβληματισμό τους. Μπορούμε επίσης να ελέγξουμε τις τεχνικές πτυχές της ίδιας της βάσης δεδομένων, όπως απαλή διαγραφή, επικύρωση πεδίου κ.λπ.
Ας προχωρήσουμε τώρα με την πραγματική εφαρμογή. Πριν από την ανάπτυξη σεναρίων Selenium WebDriver για εξαγωγή δεδομένων από την πηγή δεδομένων, ας δημιουργήσουμε δοκιμαστικά δεδομένα στη βάση δεδομένων. Για αυτό το σεμινάριο, θα χρησιμοποιούσαμε τη MySQL ως βάση δεδομένων.
Δημιουργία δεδομένων δοκιμής στη βάση δεδομένων
Εάν δεν έχετε κατεβάσει ακόμα τη βάση δεδομένων, πραγματοποιήστε λήψη χρησιμοποιώντας το Σύνδεσμος . Ο χρήστης αναμένεται να ακολουθήσει ορισμένα βασικά βήματα για τη λήψη και εγκατάσταση της βάσης δεδομένων.
= >> Διαβάστε αυτό το σεμινάριο λήψη και εγκατάσταση της βάσης δεδομένων MySQL .
Μόλις η βάση δεδομένων εγκατασταθεί με επιτυχία, ο χρήστης μπορεί να ξεκινήσει τη γραμμή εντολών MySQL που θα μοιάζει με το ακόλουθο στιγμιότυπο οθόνης. Η εφαρμογή ενδέχεται να ζητήσει από τον χρήστη να εισαγάγει τον κωδικό πρόσβασης. Ο προεπιλεγμένος κωδικός πρόσβασης είναι 'root'.
Σημείωση : Ο χρήστης μπορεί επίσης να βρει πελάτες με βάση το GUI μέσω του Διαδικτύου για σύνδεση με τη βάση δεδομένων. Για να αναφέρουμε μερικά, ο χρήστης μπορεί να πραγματοποιήσει λήψη και εγκατάσταση του Query Browser ή του Work Bench.
Δημιουργία νέας βάσης δεδομένων
Το επόμενο βήμα είναι να δημιουργήσετε τη δοκιμαστική βάση δεδομένων με μερικούς πίνακες και εγγραφές αποθηκευμένους σε αυτούς τους πίνακες, προκειμένου να κάνετε μια σύνδεση με τη βάση δεδομένων και να εκτελέσετε ερωτήματα.
Βήμα 1) Πληκτρολογήστε 'εμφάνιση βάσεων δεδομένων' για να δείτε όλες τις ήδη διαθέσιμες βάσεις δεδομένων
εμφάνιση βάσεων δεδομένων;
Βήμα 2) Πληκτρολογήστε 'δημιουργία βάσης δεδομένων χρήστη'. για να δημιουργήσετε μια βάση δεδομένων με το όνομα 'χρήστης'.
δημιουργία χρήστη βάσης δεδομένων.
Λάβετε υπόψη ότι το όνομα της βάσης δεδομένων ως χρήστης έχει δημιουργηθεί και μπορεί να δει στη λίστα των βάσεων δεδομένων.
Βήμα 3) Πληκτρολογήστε 'use user;' για να επιλέξετε τη νέα βάση δεδομένων. Επίσης, πληκτρολογήστε 'show tables;' για να δείτε όλους τους διαθέσιμους πίνακες στη βάση δεδομένων χρήστη.
χρήση χρήστη
εμφάνιση πινάκων
Σημειώστε ότι το άδειο σετ εμφανίζεται στο αποτέλεσμα των 'πινάκων εμφάνισης'. ερώτημα καθώς δεν υπήρχαν διαθέσιμοι πίνακες στη βάση δεδομένων χρήστη.
Ας τώρα μερικούς πίνακες και προσθέστε εγγραφές σε αυτά.
Βήμα 4) Πληκτρολογήστε την ακόλουθη εντολή για να δημιουργήσετε έναν πίνακα με 4 πεδία / στήλες (userId, userName, userAge, userAddress).
δημιουργία πίνακα userinfo
(
userId int,
όνομα χρήστη varchar (255),
userAge int,
userAddress varchar (255)
);
Το επόμενο βήμα είναι να προσθέσετε ορισμένες εγγραφές δεδομένων στον πίνακα 'userinfo'.
Βήμα 5) Πληκτρολογήστε την ακόλουθη εντολή για να εισαγάγετε δεδομένα στον πίνακα έναν πίνακα και για τα τέσσερα πεδία 4 πεδία / στήλες (userId, userName, userAge, userAddress).
εισαγάγετε τις τιμές userinfo (userID, userName, userAge, userAddress) ('1', 'shruti', '25', 'Noida');
Για να δείτε τα πρόσθετα δεδομένα, πληκτρολογήστε την ακόλουθη εντολή:
επιλέξτε * από το userinfo.
Ομοίως, μπορείτε να προσθέσετε περισσότερα δεδομένα στον πίνακα σας και να δημιουργήσετε και άλλους πίνακες.
Τώρα, που δημιουργήσαμε τη βάση δεδομένων μας. Μπορούμε να προχωρήσουμε και να κατανοήσουμε το εφαρμογή αυτοματοποιημένων ερωτημάτων για τη λήψη των εγγραφών από τη βάση δεδομένων.
Όπως επαναλάβαμε και νωρίτερα, το Selenium WebDriver είναι ένα εργαλείο για τον αυτοματισμό UI. Επομένως, το Selenium WebDriver από μόνο του δεν είναι επιλέξιμο για εκτέλεση δοκιμών βάσης δεδομένων, αλλά αυτό μπορεί να γίνει χρησιμοποιώντας το Java Database Connectivity API (JDBC). Το API επιτρέπει στο χρήστη να συνδεθεί και να αλληλεπιδράσει με την πηγή δεδομένων και να πάρει τα δεδομένα με τη βοήθεια αυτοματοποιημένων ερωτημάτων. Για να μπορέσετε να εκμεταλλευτείτε το JDBC API, απαιτείται να εκτελείται το Java Virtual Machine (JVM) στο σύστημα.
Ροή εργασίας JDBC
Θα διατηρούσαμε την εστίασή μας ευθυγραμμισμένη με τις ακόλουθες διαδικασίες:
- Δημιουργία σύνδεσης με τη βάση δεδομένων
- Εκτέλεση ερωτημάτων και ενημέρωση δηλώσεων για εξαγωγή / ανάκτηση δεδομένων (CRUD Operations)
- Χρήση και χειρισμός των δεδομένων που εξάγονται από τη βάση δεδομένων με τη μορφή του συνόλου αποτελεσμάτων. (Το σύνολο αποτελεσμάτων είναι μια συλλογή δεδομένων που οργανώνονται στις σειρές και τις στήλες)
- Αποσύνδεση της σύνδεσης βάσης δεδομένων.
Όπως ειπώθηκε νωρίτερα, για να μπορέσουμε να δοκιμάσουμε τη βάση δεδομένων αυτόματα από τα σενάρια δοκιμής Selenium WebDriver, θα συνδεόμασταν με τη βάση δεδομένων μέσω σύνδεσης JDBC εντός των δοκιμαστικών σεναρίων μας. Δημοσίευση στη σύνδεση, μπορούμε να ενεργοποιήσουμε όσες λειτουργίες CRUD (Δημιουργία, Ανάγνωση, Ενημέρωση και Διαγραφή) στη βάση δεδομένων.
Σε αυτό το σεμινάριο, θα συζητήσουμε «Λειτουργία ανάγνωσης και τις παραλλαγές της» και σχετικά με την εφαρμογή τους στο σενάριο Selenium WebDriver. Αλλά πριν από αυτό, ας ελέγξουμε το δοκιμαστικό σενάριο χειροκίνητα χρησιμοποιώντας τη «γραμμή εντολών MySQL».
Σενάριο:
1) Ανοίξτε το διακομιστή βάσης δεδομένων και συνδεθείτε στη βάση δεδομένων «χρήστη».
δύο) Καταγράψτε όλες τις εγγραφές από τον πίνακα 'userinfo'.
Σύνταξη: επιλέξτε * από το userinfo.
3) Κλείστε τη σύνδεση βάσης δεδομένων.
Σημειώστε ότι το ερώτημα ανάγνωσης θα εμφανίσει όλα τα δεδομένα χρήστη που υπάρχουν στον πίνακα userinfo. Ο πίνακας αποτελείται από τις ακόλουθες στήλες.
- ταυτότητα χρήστη
- όνομα χρήστη
- userAge
- διεύθυνση χρήστη
Το αποτέλεσμα δείχνει επίσης ότι υπάρχει μόνο ένα σύνολο δεδομένων που υπάρχει στον πίνακα.
Τώρα, ας εκτελέσουμε το ίδιο σενάριο χρησιμοποιώντας το Java Class.
Για να μπορεί να έχει πρόσβαση στη Βάση δεδομένων, ο χρήστης είναι μοχλός για να επιλέξει μεταξύ των διαφορετικών διαθέσιμων επιλογών σύνδεσης για σύνδεση με τη Βάση δεδομένων. Οι περισσότεροι από τους συνδέσμους βάσης δεδομένων διανέμονται ελεύθερα ως αρχεία 'jar'. Δεδομένου ότι χρησιμοποιούμε το MySQL ως πηγή δεδομένων, επομένως απαιτείται να κατεβάσουμε το αρχείο βάζου που είναι ειδικό για τη MySQL.
Μπορείτε να κατεβάσετε το αρχείο βάζου από: εδώ ή εδώ.
Βήμα 1 : Το πρώτο και κύριο βήμα είναι να διαμορφώσετε τη διαδρομή κατασκευής του έργου και να προσθέσετε το αρχείο 'mysql-connector-java-3.1.13-bin.jar' ως εξωτερική βιβλιοθήκη.
Βήμα 2 : Δημιουργήστε μια κλάση java που ονομάζεται 'DatabaseTesingDemo'.
Βήμα 3 : Αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στην κλάση που δημιουργήθηκε στο παραπάνω βήμα.
Δείγμα κώδικα
import org.junit.After; import org.junit.Before; import org.junit.Test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class DatabaseTesingDemo { // Connection object static Connection con = null; // Statement object private static Statement stmt; // Constant for Database URL public static String DB_URL = 'jdbc:mysql://localhost:3306/user'; // Constant for Database Username public static String DB_USER = 'root'; // Constant for Database Password public static String DB_PASSWORD = 'root'; @Before public void setUp() throws Exception { try{ // Make the database connection String dbClass = 'com.mysql.jdbc.Driver'; Class.forName(dbClass).newInstance(); // Get connection to DB Connection con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); // Statement object to send the SQL statement to the Database stmt = con.createStatement(); } catch (Exception e) { e.printStackTrace(); } } @Test public void test() { try{ String query = 'select * from userinfo'; // Get the contents of userinfo table from DB ResultSet res = stmt.executeQuery(query); // Print the result untill all the records are printed // res.next() returns true if there is any next record else returns false while (res.next()) { System.out.print(res.getString(1)); System.out.print(' ' + res.getString(2)); System.out.print(' ' + res.getString(3)); System.out.println(' ' + res.getString(4)); } } catch(Exception e) { e.printStackTrace(); } } @After public void tearDown() throws Exception { // Close DB connection if (con != null) { con.close(); } } }
Η έξοδος του παραπάνω κώδικα είναι:
1 shruti 25 Noida
2 shrivastava 55 Βομβάη
Διαβάστε παραλλαγές δήλωσης
Όπου η ρήτρα με έναν όρο
String query = 'select * from userinfo όπου userId = '' + 1 + '' ';
ResultSet res = stmt.executeQuery (ερώτημα);
Παραγωγή:
1 shruti 25 Noida
Όπου ρήτρα με πολλαπλούς όρους
String Διεύθυνση = 'Βομβάη';
String query = 'select * from userinfo όπου userId = '' + 2 + '' και userAddress =' '+ Διεύθυνση +' '';
ResultSet res = stmt.executeQuery (ερώτημα);
καλύτερο εργαλείο καθαρισμού για υπολογιστή
Παραγωγή:
2 shrivastava 55 Βομβάη
Εμφάνιση UserId
String query = 'select userId from userinfo';
ResultSet res = stmt.executeQuery (ερώτημα);
Παραγωγή:
1
δύο
Εμφάνιση του UserId με το σημείο όπου
String Διεύθυνση = 'Noida';
String query = 'select userId, userName από userinfo όπου userAddress = '' + Διεύθυνση + '' ';
ResultSet res = stmt.executeQuery (ερώτημα);
Παραγωγή:
δύο
shrivastava
Έτσι, με τον ίδιο τρόπο ο χρήστης μπορεί να εκτελέσει διάφορα ερωτήματα στη βάση δεδομένων.
Με αυτό, ας ρίξουμε λίγο φως στις μεθόδους προσβασιμότητας αποτελεσμάτων επίσης.
Μέθοδοι προσβασιμότητας αποτελεσμάτων:
Όνομα μεθόδου | Περιγραφή |
---|---|
διπλό getDouble () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων διπλού τύπου από το σύνολο αποτελεσμάτων |
String getString () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων τύπου συμβολοσειράς από το σύνολο αποτελεσμάτων |
int getInt () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων ακέραιου τύπου από το σύνολο αποτελεσμάτων |
boolean getBoolean () | Χρησιμοποιείται μέθοδος για τη λήψη της δυαδικής τιμής από το σύνολο αποτελεσμάτων |
float getFloat () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων τύπου float από το σύνολο αποτελεσμάτων |
μακρύ getLong () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων μεγάλου τύπου από το σύνολο αποτελεσμάτων |
σύντομο getShort () | Χρησιμοποιείται μέθοδος για τη λήψη δεδομένων μικρού τύπου από το σύνολο αποτελεσμάτων |
Ημερομηνία getDate () | Χρησιμοποιείται μέθοδος για τη λήψη του αντικειμένου τύπου ημερομηνίας από το σύνολο αποτελεσμάτων |
Μέθοδοι πλοήγησης αποτελεσμάτων:
Όνομα μεθόδου | Περιγραφή |
---|---|
boolean επόμενο () | Χρησιμοποιείται μέθοδος για να μεταβείτε στην επόμενη εγγραφή στο σύνολο αποτελεσμάτων |
boolean προηγούμενο () | Χρησιμοποιείται μέθοδος για να μετακινηθείτε στην προηγούμενη εγγραφή στο σύνολο αποτελεσμάτων |
boolean πρώτα () | Χρησιμοποιείται μέθοδος για να μετακινηθείτε στην πρώτη εγγραφή στο σύνολο αποτελεσμάτων |
boolean τελευταία () | Χρησιμοποιείται μέθοδος για να μετακινηθείτε στην τελευταία εγγραφή στο σύνολο αποτελεσμάτων |
boolean απόλυτος (int σειράNumber) | Χρησιμοποιείται μέθοδος για να μετακινηθείτε στη συγκεκριμένη εγγραφή στο σύνολο αποτελεσμάτων |
συμπέρασμα
Μέσω αυτού του σεμιναρίου, προσπαθήσαμε να σας εξοικειώσουμε με την έννοια του Αυτόματος έλεγχος βάσης δεδομένων . Έχουμε δώσει σαφή έμφαση στις τεχνικές επιπτώσεις και τις ανάγκες της δοκιμής βάσεων δεδομένων.
Καθώς ολόκληρη η σειρά μας επικεντρώθηκε στο Selenium, ο αναγνώστης μπορεί να παραπλανηθεί και να δημιουργήσει την εντύπωση ότι αυτό το σεμινάριο θα διδάξει να εκτελεί δοκιμές βάσης δεδομένων χρησιμοποιώντας το Selenium, αλλά όπως ανέφερα αρκετές φορές νωρίτερα, οτιδήποτε βρίσκεται εκτός της περιφέρειας των δοκιμών UI , δεν μπορεί να αντιμετωπιστεί από το Selenium. Επομένως, παρουσιάζουμε το Java Java Database Connectivity (JDBC) API για να εκτελέσουμε τον έλεγχο βάσεων δεδομένων ενσωματώνοντας τον κώδικα στα σενάρια Selenium WebDriver.
Το JDBC επιτρέπει την κλάση java να συνδεθεί στη βάση δεδομένων, να ανακτήσει δεδομένα από τη βάση δεδομένων ή στην πραγματικότητα να πραγματοποιήσει οποιαδήποτε από τις λειτουργίες CRUD, να χειριστεί τα προκύπτοντα δεδομένα και να κλείσει τη σύνδεση.
Έτσι, το σεμινάριο αποτελεί το βασικό δείγμα υλοποίησης της παραπάνω διαδικασίας.
Επόμενο σεμινάριο # 29 : Θα προχωρήσουμε με προηγμένα θέματα σεληνίου. Στο επόμενο σεμινάριο, θα καλύψουμε το Selenium GRID - το οποίο χρησιμοποιείται όταν πρέπει να εκτελέσετε δοκιμές πολλαπλών προγραμμάτων περιήγησης και έχετε μεγάλο αριθμό δοκιμαστικών περιπτώσεων.
Συνιστώμενη ανάγνωση
- Δοκιμή βάσης δεδομένων με JMeter
- Ενσωμάτωση σεληνίου με JMeter
- Cucumber Selenium Tutorial: Αγγούρι Java Selenium WebDriver Integration
- Εισαγωγή στο Selenium WebDriver - Selenium Tutorial # 8
- Τα καλύτερα εργαλεία δοκιμής λογισμικού 2021 (QA Test Automation Tools)
- Υλοποίηση του πρώτου σεναρίου WebDriver - Selenium WebDriver Tutorial # 10
- Το καλύτερο διαδικτυακό σεμινάριο Selenium WebDriver + JAVA
- Spock για ενσωμάτωση και λειτουργική δοκιμή με σελήνιο