Πώς να χρησιμοποιήσετε το Selenium IDE με σενάρια & Εντολές (Assert, Verify)

Πίνακας περιεχομένων:

Anonim

Θα χρησιμοποιήσουμε τον ιστότοπο Mercury Tours ως δοκιμαστική εφαρμογή ιστού. Είναι ένα διαδικτυακό σύστημα κρατήσεων πτήσεων που περιέχει όλα τα στοιχεία που χρειαζόμαστε για αυτό το σεμινάριο. Η διεύθυνση URL της είναι http://demo.guru99.com/test/newtours/ και αυτή θα είναι η βασική διεύθυνση URL.

Δημιουργήστε ένα σενάριο με εγγραφή

Ας δημιουργήσουμε τώρα το πρώτο δοκιμαστικό σενάριο στο Selenium IDE χρησιμοποιώντας την πιο κοινή μέθοδο - καταγράφοντας. Στη συνέχεια, θα εκτελέσουμε το σενάριό μας χρησιμοποιώντας τη δυνατότητα αναπαραγωγής.

Βήμα 1

  • Εκκινήστε το Firefox και το Selenium IDE.
  • Πληκτρολογήστε την τιμή για το Βασικό URL: http://demo.guru99.com/test/newtours/.
  • Ενεργοποιήστε το κουμπί Εγγραφή ενεργοποιημένο (εάν δεν είναι ακόμη ενεργοποιημένο από προεπιλογή).
Βήμα 2

Στο Firefox, μεταβείτε στη διεύθυνση http://demo.guru99.com/test/newtours/. Ο Firefox θα σας οδηγήσει στη σελίδα παρόμοια με αυτήν που φαίνεται παρακάτω.

Βήμα 3
  • Κάντε δεξί κλικ σε οποιοδήποτε κενό διάστημα στη σελίδα, όπως στο λογότυπο Mercury Tours στην επάνω αριστερή γωνία. Αυτό θα εμφανίσει το μενού περιβάλλοντος Selenium IDE. Σημείωση: Μην κάνετε κλικ σε υπερσυνδεδεμένα αντικείμενα ή εικόνες
  • Ορίστε την επιλογή "Εμφάνιση διαθέσιμων εντολών".
  • Στη συνέχεια, επιλέξτε "assertTitle ακριβής: Καλώς ορίσατε: Mercury Tours." Αυτή είναι μια εντολή που διασφαλίζει ότι ο τίτλος της σελίδας είναι σωστός.
Βήμα 4
  • Στο πλαίσιο κειμένου "Όνομα χρήστη" της Mercury Tours, πληκτρολογήστε ένα μη έγκυρο όνομα χρήστη, "validUNN".
  • Στο πλαίσιο κειμένου "Κωδικός πρόσβασης", πληκτρολογήστε έναν μη έγκυρο κωδικό πρόσβασης, "validPWD".
Βήμα 5
  • Κάντε κλικ στο κουμπί "Σύνδεση". Ο Firefox θα σας οδηγήσει σε αυτήν τη σελίδα.
Βήμα 6

Απενεργοποιήστε το κουμπί εγγραφής για να σταματήσετε την εγγραφή. Το σενάριό σας θα πρέπει τώρα να μοιάζει με αυτό που φαίνεται παρακάτω.

Βήμα 7

Τώρα που τελειώσαμε με το δοκιμαστικό σενάριό μας, θα το αποθηκεύσουμε σε δοκιμαστική θήκη. Στο μενού Αρχείο, επιλέξτε "Αποθήκευση δοκιμαστικής θήκης". Εναλλακτικά, μπορείτε απλά να πατήσετε Ctrl + S.

Βήμα 8
  • Επιλέξτε την τοποθεσία που θέλετε και, στη συνέχεια, ονομάστε το Test Case ως "Invalid_login".
  • Κάντε κλικ στο κουμπί "Αποθήκευση".
Βήμα 9.

Παρατηρήστε ότι το αρχείο αποθηκεύτηκε ως HTML.

Βήμα 10.

Επιστρέψτε στο Selenium IDE και κάντε κλικ στο κουμπί Αναπαραγωγή για να εκτελέσετε ολόκληρο το σενάριο. Το Selenium IDE θα πρέπει να μπορεί να αναπαράγει τα πάντα άψογα.

Εισαγωγή στο Selenium Commands - Selenese

  • Οι εντολές Selenese μπορούν να έχουν έως και δύο παραμέτρους: στόχο και τιμή.
  • Οι παράμετροι δεν απαιτούνται συνεχώς. Εξαρτάται από τον αριθμό των εντολών που θα χρειαστούν.

3 τύποι εντολών

Ενέργειες

Αυτές είναι εντολές που αλληλεπιδρούν άμεσα με στοιχεία σελίδας.

Παράδειγμα: η εντολή "κλικ" είναι μια ενέργεια επειδή αλληλεπιδράτε άμεσα με το στοιχείο στο οποίο κάνετε κλικ.

Η εντολή "type" είναι επίσης μια ενέργεια επειδή βάζετε τιμές σε ένα πλαίσιο κειμένου και το πλαίσιο κειμένου τις εμφανίζει σε αντάλλαγμα. Υπάρχει αμφίδρομη αλληλεπίδραση μεταξύ εσάς και του πλαισίου κειμένου.

Αξεσουάρ

Είναι εντολές που σας επιτρέπουν να αποθηκεύετε τιμές σε μια μεταβλητή.

Παράδειγμα: η εντολή "storeTitle" είναι προσπελάστης επειδή "διαβάζει" μόνο τον τίτλο της σελίδας και την αποθηκεύει σε μια μεταβλητή. Δεν αλληλεπιδρά με κανένα στοιχείο της σελίδας.

Ισχυρισμοί

Είναι εντολές που επαληθεύουν εάν πληρούται μια συγκεκριμένη συνθήκη.

3 Τύποι ισχυρισμών

  • Επιβεβαιώστε . Όταν μια εντολή "assert" αποτύχει, ο έλεγχος διακόπτεται αμέσως.
  • Επαλήθευση . Όταν μια εντολή "επαλήθευση" αποτύχει, το Selenium IDE καταγράφει αυτήν την αποτυχία και συνεχίζει με την εκτέλεση της δοκιμής.
  • WaitFor . Πριν προχωρήσουμε στην επόμενη εντολή, οι εντολές "waitFor" θα περιμένουν πρώτα να γίνει πραγματικότητα μια συγκεκριμένη συνθήκη.
    • Εάν η κατάσταση γίνει αληθινή εντός της περιόδου αναμονής, το βήμα περνά.
    • Εάν η συνθήκη δεν γίνει πραγματικότητα, το βήμα αποτυγχάνει. Η αποτυχία καταγράφεται και η εκτέλεση δοκιμής προχωρά στην επόμενη εντολή.
    • Από προεπιλογή, η τιμή χρονικού ορίου ορίζεται στα 30 δευτερόλεπτα. Μπορείτε να το αλλάξετε στο παράθυρο διαλόγου Επιλογές IDE Selenium στην καρτέλα Γενικά.

Επιβεβαίωση έναντι επαλήθευσης

Κοινές εντολές

Εντολή Αριθμός παραμέτρων Περιγραφή
Άνοιξε 0 - 2

Ανοίγει μια σελίδα χρησιμοποιώντας μια διεύθυνση URL.

click / clickAndWait 1

Κάντε κλικ σε ένα καθορισμένο στοιχείο.

type / typeKeys 2

Πληκτρολογεί μια ακολουθία χαρακτήρων.

verifikasiTitle / assertTitle 1

Συγκρίνει τον πραγματικό τίτλο της σελίδας με την αναμενόμενη τιμή.

verifikasiTextPresent 1

Ελέγχει εάν κάποιο συγκεκριμένο κείμενο βρίσκεται μέσα στη σελίδα.

verifyElementPresent 1

Ελέγχει την παρουσία ενός συγκεκριμένου στοιχείου.

Πίνακας επαλήθευσης 2

Συγκρίνει τα περιεχόμενα ενός πίνακα με τις αναμενόμενες τιμές.

waitForPageToLoad 1

Παύει την εκτέλεση έως ότου φορτωθεί πλήρως η σελίδα.

waitForElementPresent 1

Παύει την εκτέλεση έως ότου εμφανιστεί το καθορισμένο στοιχείο.

Δημιουργήστε ένα σενάριο μη αυτόματα με το Firebug

Τώρα, θα δημιουργήσουμε ξανά την ίδια δοκιμαστική θήκη, πληκτρολογώντας τις εντολές. Αυτή τη φορά, θα πρέπει να χρησιμοποιήσουμε το Firebug.

Βήμα 1
  • Ανοίξτε το Firefox και το Selenium IDE.
  • Πληκτρολογήστε τη βασική διεύθυνση URL (http://demo.guru99.com/test/newtours/).
  • Το κουμπί εγγραφής πρέπει να είναι OFF.
Βήμα 2: Κάντε κλικ στην επάνω κενή γραμμή του προγράμματος επεξεργασίας.

Πληκτρολογήστε "open" στο πλαίσιο κειμένου Command και πατήστε Enter.

Βήμα 3
  • Περιηγηθείτε στον Firefox στη βασική διεύθυνση URL και ενεργοποιήστε το Firebug
  • Στο παράθυρο επεξεργασίας Selenium IDE, επιλέξτε τη δεύτερη γραμμή (η γραμμή κάτω από την εντολή "open") και δημιουργήστε τη δεύτερη εντολή πληκτρολογώντας "assertTitle" στο πλαίσιο Command.
  • Μη διστάσετε να χρησιμοποιήσετε τη δυνατότητα αυτόματης συμπλήρωσης.
Βήμα 4
  • Στο Firebug, αναπτύξτε την ετικέτα για να εμφανιστεί η ετικέτα .</li> <li>Κάντε κλικ στην τιμή της ετικέτας <title> (που είναι "Welcome: Mercury Tours") και επικολλήστε την στο πεδίο Target στο πρόγραμμα επεξεργασίας.</li> </ul> </td> </tr> <tr> <td><strong>Βήμα 5</strong> <ul> <li>Για να δημιουργήσετε την τρίτη εντολή, κάντε κλικ στην τρίτη κενή γραμμή στο πρόγραμμα επεξεργασίας και πληκτρολογήστε "type" στο πλαίσιο κειμένου Command</li> <li>Στο Firebug, κάντε κλικ στο κουμπί "Επιθεώρηση".</li> </ul> </td> </tr> <tr> <td>Κάντε κλικ στο πλαίσιο κειμένου Όνομα χρήστη. Σημειώστε ότι το Firebug εμφανίζει αυτόματα τον κώδικα HTML για αυτό το στοιχείο.</td> </tr> <tr> <td><strong>Βήμα 6</strong> <p>Σημειώστε ότι το πλαίσιο κειμένου Όνομα χρήστη δεν έχει αναγνωριστικό, αλλά έχει ένα χαρακτηριστικό NAME. Ως εκ τούτου, θα χρησιμοποιήσουμε το ΟΝΟΜΑ του ως εντοπιστή. Αντιγράψτε την τιμή NAME και επικολλήστε την στο πεδίο Target στο Selenium IDE.</p> <p>Ακόμα στο πλαίσιο κειμένου Target, πρόθεμα "userName" με "name =", υποδεικνύοντας ότι το Selenium IDE πρέπει να στοχεύει ένα στοιχείο του οποίου το χαρακτηριστικό NAME είναι "userName"</p> <p>Πληκτρολογήστε "validUN" στο πλαίσιο κειμένου Value του Selenium IDE. Το δοκιμαστικό σας σενάριο θα πρέπει τώρα να μοιάζει με την παρακάτω εικόνα. Τελειώσαμε με την τρίτη εντολή. Σημείωση: Αντί για μη έγκυροUN, μπορείτε να εισαγάγετε οποιαδήποτε άλλη συμβολοσειρά κειμένου. Ωστόσο, το Selenium IDE είναι πεζά και γράφετε τιμές / χαρακτηριστικά όπως ακριβώς στην εφαρμογή.</p> </td> </tr> <tr> <td><strong>Βήμα 7</strong> <ul> <li>Για να δημιουργήσετε την τέταρτη εντολή, πληκτρολογήστε "type" στο πλαίσιο κειμένου Command.</li> <li>Και πάλι, χρησιμοποιήστε το κουμπί "Επιθεώρηση" του Firebug για να βρείτε τον εντοπιστή για το πλαίσιο κειμένου "Κωδικός πρόσβασης".</li> </ul> <ul> <li> <p>Επικολλήστε το χαρακτηριστικό NAME ("κωδικός πρόσβασης") στο πεδίο Target και προθέστε το με "name ="</p> </li> <li> <p>Πληκτρολογήστε "validPW" στο πεδίο Value στο Selenium IDE. Το δοκιμαστικό σας σενάριο θα πρέπει τώρα να μοιάζει με την παρακάτω εικόνα.</p> </li> </ul> </td> </tr> <tr> <td><strong>Βήμα 8</strong> <ul> <li>Για την πέμπτη εντολή, πληκτρολογήστε "clickAndWait" στο πλαίσιο κειμένου Command στο Selenium IDE.</li> <li>Χρησιμοποιήστε το κουμπί "Επιθεώρηση" του Firebug για να βρείτε τον εντοπιστή για το κουμπί "Σύνδεση".</li> </ul> <ul> <li>Επικολλήστε την τιμή του χαρακτηριστικού NAME ("login") στο πλαίσιο κειμένου Target και προθέστε το με το "name =".</li> <li>Το δοκιμαστικό σας σενάριο θα πρέπει τώρα να μοιάζει με την παρακάτω εικόνα.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Βήμα 9:</strong> Αποθηκεύστε τη δοκιμαστική θήκη με τον ίδιο τρόπο που κάναμε στην προηγούμενη ενότητα.</p> <a id="menu-6"></a> <h2>Χρησιμοποιώντας το κουμπί Εύρεση</h2> <p><strong>Το κουμπί Εύρεση στο Selenium IDE χρησιμοποιείται για να επιβεβαιώσει εάν αυτό που είχαμε τοποθετήσει στο πλαίσιο κειμένου Target είναι πράγματι το σωστό στοιχείο διεπαφής χρήστη.</strong></p> <p>Ας χρησιμοποιήσουμε τη δοκιμαστική περίπτωση Invalid_login που δημιουργήσαμε στις προηγούμενες ενότητες. Κάντε κλικ σε οποιαδήποτε εντολή με καταχώρηση Target, ας πούμε, την τρίτη εντολή</p> <p>Κάντε κλικ στο κουμπί Εύρεση. Παρατηρήστε ότι το πλαίσιο κειμένου Όνομα χρήστη στη σελίδα Mercury Tours επισημαίνεται για ένα δευτερόλεπτο.</p> <p>Αυτό δείχνει ότι το Selenium IDE μπόρεσε να εντοπίσει και να αποκτήσει πρόσβαση στο αναμενόμενο στοιχείο σωστά. Εάν το κουμπί Εύρεση επισημαίνει ένα διαφορετικό στοιχείο ή καθόλου στοιχείο, τότε πρέπει να υπάρχει κάτι λάθος με το σενάριό σας.</p> <a id="menu-7"></a> <h2>Εκτέλεση εντολής</h2> <p><strong>Αυτό σας επιτρέπει να εκτελέσετε οποιαδήποτε μεμονωμένη εντολή χωρίς να εκτελέσετε ολόκληρη τη δοκιμαστική θήκη</strong> . Απλώς κάντε κλικ στη γραμμή που θέλετε να εκτελέσετε και στη συνέχεια είτε κάντε κλικ στο "Ενέργειες> Εκτέλεση αυτής της εντολής" από τη γραμμή μενού ή απλά πατήστε "X" στο πληκτρολόγιό σας.</p> <p><strong>Βήμα 1.</strong> Βεβαιωθείτε ότι το πρόγραμμα περιήγησής σας βρίσκεται στην αρχική σελίδα του Mercury Tours. Κάντε κλικ στην εντολή που θέλετε να εκτελέσετε. Σε αυτό το παράδειγμα, κάντε κλικ στη γραμμή "type | userName | validUN".</p> <p><strong>Βήμα 2.</strong> Πατήστε "X" στο πληκτρολόγιό σας.</p> <p><strong>Βήμα 3.</strong> Παρατηρήστε ότι το πλαίσιο κειμένου για το όνομα χρήστη συμπληρώνεται με το κείμενο "validUN"</p> <p><strong>Η εκτέλεση εντολών με αυτόν τον τρόπο εξαρτάται σε μεγάλο βαθμό από τη σελίδα που εμφανίζει ο Firefox αυτήν τη στιγμή</strong> . Αυτό σημαίνει ότι εάν δοκιμάσετε το παραπάνω παράδειγμα με την αρχική σελίδα Google που εμφανίζεται αντί για το Mercury Tours ', τότε το βήμα σας θα αποτύχει επειδή δεν υπάρχει πλαίσιο κειμένου με το χαρακτηριστικό "userName" στην αρχική σελίδα του Google.</p> <a id="menu-8"></a> <h2>Σημείο εκκίνησης</h2> <p><strong>Ένα σημείο εκκίνησης είναι ένας δείκτης που λέει στο Selenium IDE ποιες γραμμές θα ξεκινήσει η εκτέλεση</strong> . <strong>Το πλήκτρο συντόμευσης είναι "S".</strong></p> <p>Στο παραπάνω παράδειγμα, η αναπαραγωγή θα ξεκινήσει στην τρίτη γραμμή (τύπος | κωδικός πρόσβασης | άκυρηPW). <strong>Μπορείτε να έχετε μόνο ένα σημείο εκκίνησης σε ένα μόνο σενάριο δοκιμής.</strong></p> <p>Το σημείο εκκίνησης είναι παρόμοιο με το Εκτελέστε την εντολή έτσι ώστε να εξαρτώνται από τη σελίδα που εμφανίζεται αυτήν τη στιγμή. Το σημείο εκκίνησης θα αποτύχει εάν βρίσκεστε σε λάθος σελίδα.</p> <a id="menu-9"></a> <h2>ορια ΑΝΤΟΧΗΣ</h2> <p>Τα σημεία διακοπής είναι δείκτες που λένε στο Selenium IDE πού να διακόψει αυτόματα το τεστ. <strong>Το πλήκτρο συντόμευσης είναι "B".</strong></p> <p>Η κίτρινη επισήμανση σημαίνει ότι το τρέχον βήμα εκκρεμεί. Αυτό αποδεικνύει ότι το Selenium IDE έχει σταματήσει την εκτέλεση σε αυτό το βήμα. <strong>Μπορείτε να έχετε πολλά σημεία διακοπής σε μία δοκιμαστική περίπτωση.</strong></p> <a id="menu-10"></a> <h2>Βήμα</h2> <p>Σας επιτρέπει να εκτελείτε τις επόμενες εντολές μία κάθε φορά μετά την παύση της δοκιμαστικής θήκης. Ας χρησιμοποιήσουμε το σενάριο στην προηγούμενη ενότητα "Breakpoints".</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Πριν κάνετε κλικ στο "Βήμα".</strong></p> <p>Η δοκιμαστική υπόθεση σταματά στη γραμμή "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Αφού κάνετε κλικ στο "Βήμα".</strong></p> <p>Η γραμμή "clickAndWait | login" εκτελείται και σταματά στην επόμενη εντολή (verifikasiTitle | Sign-on: Mercury Tours).</p> <p>Παρατηρήστε ότι η επόμενη γραμμή είναι σε παύση παρόλο που δεν υπάρχει σημείο διακοπής εκεί. Αυτός είναι ο κύριος σκοπός της λειτουργίας Βήμα - εκτελεί τις επόμενες εντολές μία κάθε φορά για να σας δώσει περισσότερο χρόνο για να ελέγξετε το αποτέλεσμα μετά από κάθε βήμα.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Σημαντικά πράγματα που πρέπει να λάβετε υπόψη κατά τη χρήση άλλων μορφών στην προβολή πηγής</h2> <p><strong>Το Selenium IDE λειτουργεί καλά μόνο με HTML - άλλες μορφές βρίσκονται ακόμη σε πειραματική λειτουργία</strong> . <strong>ΔΕΝ</strong> είναι <strong>σκόπιμο</strong> να δημιουργείτε ή να επεξεργάζεστε δοκιμές χρησιμοποιώντας άλλες μορφές στην Προβολή προέλευσης, επειδή χρειάζεται ακόμη πολλή δουλειά για να γίνει σταθερή. Ακολουθούν τα γνωστά σφάλματα από την έκδοση 1.9.1.</p> <ul> <li>Δεν θα μπορείτε να εκτελέσετε αναπαραγωγή ούτε να επιστρέψετε στην Προβολή πίνακα εκτός εάν επιστρέψετε σε HTML.</li> <li>Ο μόνος τρόπος να προσθέσετε εντολές με ασφάλεια στον πηγαίο κώδικα είναι να τις καταγράψετε.</li> <li>Όταν τροποποιείτε τον πηγαίο κώδικα με μη αυτόματο τρόπο, θα χαθεί όταν μεταβείτε σε άλλη μορφή.</li> <li>Αν και μπορείτε να αποθηκεύσετε τη δοκιμαστική θήκη σας ενώ βρίσκεστε στην προβολή προέλευσης, το Selenium IDE δεν θα μπορεί να το ανοίξει.</li> </ul> <p><strong>Ο προτεινόμενος τρόπος για να μετατρέψετε τις δοκιμές σελήνης είναι να χρησιμοποιήσετε την επιλογή "Εξαγωγή υπόθεσης ως…" στο μενού Αρχείο και όχι μέσω της προβολής πηγής.</strong></p> <a id="menu-12"></a> <h2>Περίληψη</h2> <ul> <li>Τα σενάρια δοκιμής μπορούν να δημιουργηθούν είτε καταγράφοντας είτε πληκτρολογώντας χειροκίνητα τις εντολές και τις παραμέτρους.</li> <li>Κατά τη δημιουργία χειρογράφων χειροκίνητα, το Firebug χρησιμοποιείται για να πάρει τον εντοπιστή.</li> <li>Το κουμπί Εύρεση χρησιμοποιείται για να ελέγξει ότι η εντολή μπορεί να έχει πρόσβαση στο σωστό στοιχείο.</li> <li>Η προβολή πίνακα εμφανίζει ένα δοκιμαστικό σενάριο σε μορφή πίνακα, ενώ η προβολή προέλευσης το εμφανίζει σε μορφή HTML.</li> <li>Η αλλαγή της προβολής πηγής σε μορφή εκτός HTML είναι ακόμη πειραματική.</li> <li>Μην χρησιμοποιείτε την προβολή προέλευσης για τη δημιουργία δοκιμών σε άλλες μορφές. Χρησιμοποιήστε τις δυνατότητες εξαγωγής.</li> <li>Οι παράμετροι δεν απαιτούνται συνεχώς. Εξαρτάται από την εντολή.</li> <li>Υπάρχουν τρεις τύποι εντολών:</li> <ul> <li>Ενέργειες - αλληλεπιδρά άμεσα με στοιχεία σελίδας</li> <li>Accessors - "διαβάζει" μια ιδιότητα στοιχείου και την αποθηκεύει σε μια μεταβλητή</li> <li>Assertions - συγκρίνει μια πραγματική τιμή με μια αναμενόμενη</li> </ul> <li>Οι ισχυρισμοί έχουν τρεις τύπους:</li> <ul> <li>Επιβεβαίωση - μετά από αποτυχία, τα επόμενα βήματα δεν εκτελούνται πλέον</li> <li>Επαλήθευση - κατά την αποτυχία, τα επόμενα βήματα εξακολουθούν να εκτελούνται.</li> <li>WaitFor - περνά εάν η καθορισμένη συνθήκη γίνει αληθινή εντός του χρονικού ορίου. Διαφορετικά, θα αποτύχει</li> </ul> <li>Οι πιο κοινές εντολές είναι:</li> <ul> <li>Άνοιξε</li> <li>click / clickAndWait</li> <li>type / typeKeys</li> <li>verifikasiTitle / assertTitle</li> <li>verifikasiTextPresent</li> <li>verifyElementPresent</li> <li>Πίνακας επαλήθευσης</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Δημοφιλείς Αναρτήσεις</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8222607-what-is-benchmark-testing-test-plan-tools-example" title="Τι είναι η δοκιμή συγκριτικής αξιολόγησης; Σχέδιο δοκιμής, εργαλεία, παράδειγμα" rel="bookmark"><img src="https://cdn.css-code.org/6128052/what_is_benchmark_testing_test_plan-_tools-_example.png.webp" loading="lazy" alt="Τι είναι η δοκιμή συγκριτικής αξιολόγησης; Σχέδιο δοκιμής, εργαλεία, παράδειγμα" title="Τι είναι η δοκιμή συγκριτικής αξιολόγησης; Σχέδιο δοκιμής, εργαλεία, παράδειγμα" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8222607-what-is-benchmark-testing-test-plan-tools-example" title="Τι είναι η δοκιμή συγκριτικής αξιολόγησης; Σχέδιο δοκιμής, εργαλεία, παράδειγμα" rel="bookmark">Τι είναι η δοκιμή συγκριτικής αξιολόγησης; Σχέδιο δοκιμής, εργαλεία, παράδειγμα 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8222609-what-is-endurance-testing-in-software-testing-with-example" title="Τι είναι το Endurance Testing στο Software Testing; (με παράδειγμα)" rel="bookmark"><img src="https://cdn.css-code.org/6879435/what_is_endurance_testing_in_software_testing_with_example.png.webp" loading="lazy" alt="Τι είναι το Endurance Testing στο Software Testing; (με παράδειγμα)" title="Τι είναι το Endurance Testing στο Software Testing; (με παράδειγμα)" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8222609-what-is-endurance-testing-in-software-testing-with-example" title="Τι είναι το Endurance Testing στο Software Testing; (με παράδειγμα)" rel="bookmark">Τι είναι το Endurance Testing στο Software Testing; (με παράδειγμα) 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8222611-reliability-testing-tutorial-what-is-methods-tools-example" title="Οδηγός δοκιμών αξιοπιστίας: Τι είναι, μέθοδοι, εργαλεία, παράδειγμα" rel="bookmark"><img src="https://cdn.css-code.org/3438217/reliability_testing_tutorial_what_is-_methods-_tools-_example.png.webp" loading="lazy" alt="Οδηγός δοκιμών αξιοπιστίας: Τι είναι, μέθοδοι, εργαλεία, παράδειγμα" title="Οδηγός δοκιμών αξιοπιστίας: Τι είναι, μέθοδοι, εργαλεία, παράδειγμα" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8222611-reliability-testing-tutorial-what-is-methods-tools-example" title="Οδηγός δοκιμών αξιοπιστίας: Τι είναι, μέθοδοι, εργαλεία, παράδειγμα" rel="bookmark">Οδηγός δοκιμών αξιοπιστίας: Τι είναι, μέθοδοι, εργαλεία, παράδειγμα 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Καλύτερη αξιολογήσεις για το μήνα</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002885-box-shadow" title="Κουτί-σκιά - CSS-Κόλπα" rel="bookmark">Κουτί-σκιά - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002886-caption-side" title="Λεζάντα - CSS-Κόλπα" rel="bookmark">Λεζάντα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002888-break-inside" title="Θραύση - CSS-Κόλπα" rel="bookmark">Θραύση - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002889-box-decoration-break" title="Κουτί-διακόσμηση-διάλειμμα - CSS-Κόλπα" rel="bookmark">Κουτί-διακόσμηση-διάλειμμα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002890-border-image" title="Περίγραμμα-εικόνα - CSS-Κόλπα" rel="bookmark">Περίγραμμα-εικόνα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002892-color" title="Χρώμα - CSS-Κόλπα" rel="bookmark">Χρώμα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002894-column-count" title="Μέτρηση στήλης - CSS-Κόλπα" rel="bookmark">Μέτρηση στήλης - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002895-clear" title="Καθαρός - CSS-Κόλπα" rel="bookmark">Καθαρός - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002896-caret-color" title="Χρώμα καρέ - CSS-Κόλπα" rel="bookmark">Χρώμα καρέ - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002897-column-fill" title="Πλήρωση στήλης - CSS-Κόλπα" rel="bookmark">Πλήρωση στήλης - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002898-caret" title="Χαλί - CSS-Κόλπα" rel="bookmark">Χαλί - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002899-clip-path" title="Διαδρομή κλιπ - CSS-Κόλπα" rel="bookmark">Διαδρομή κλιπ - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002900-column-rule" title="Κανόνας στήλης - CSS-Κόλπα" rel="bookmark">Κανόνας στήλης - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002901-aspect-ratio" title="Λόγος διαστάσεων - CSS-Κόλπα" rel="bookmark">Λόγος διαστάσεων - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8002902-color-adjust" title="Προσαρμογή χρώματος - CSS-Κόλπα" rel="bookmark">Προσαρμογή χρώματος - CSS-Κόλπα</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Κορυφή Άρθρα</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8224421-angularjs-filter-example-lowercase-uppercase-and-json" title="Φίλτρο AngularJS Παράδειγμα: Πεζά, κεφαλαία & JSON" rel="bookmark"><img src="https://cdn.css-code.org/9948212/angularjs_filter_example_lowercase-_uppercase_ampamp_json.png.webp" loading="lazy" alt="Φίλτρο AngularJS Παράδειγμα: Πεζά, κεφαλαία & JSON" title="Φίλτρο AngularJS Παράδειγμα: Πεζά, κεφαλαία & JSON" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224421-angularjs-filter-example-lowercase-uppercase-and-json" title="Φίλτρο AngularJS Παράδειγμα: Πεζά, κεφαλαία & JSON" rel="bookmark">Φίλτρο AngularJS Παράδειγμα: Πεζά, κεφαλαία & JSON 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8224422-angularjs-directive-with-example-ng-init-ng-repeat-ng-app-ng-model" title="Οδηγία AngularJS με Παράδειγμα: ng-init, ng-repeat, ng-app, ng-model" rel="bookmark"><img src="https://cdn.css-code.org/7868475/angularjs_directive_with_example_ng-init-_ng-repeat-_ng-app-_ng-model.png.webp" loading="lazy" alt="Οδηγία AngularJS με Παράδειγμα: ng-init, ng-repeat, ng-app, ng-model" title="Οδηγία AngularJS με Παράδειγμα: ng-init, ng-repeat, ng-app, ng-model" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224422-angularjs-directive-with-example-ng-init-ng-repeat-ng-app-ng-model" title="Οδηγία AngularJS με Παράδειγμα: ng-init, ng-repeat, ng-app, ng-model" rel="bookmark">Οδηγία AngularJS με Παράδειγμα: ng-init, ng-repeat, ng-app, ng-model 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8224423-angularjs-ajax-call-using-resource-http-example" title="Κλήση AngularJS AJAX χρησιμοποιώντας πόρο $, http $ (Παράδειγμα)" rel="bookmark"><img src="https://cdn.css-code.org/3074378/angularjs_ajax_call_using_resource-_http_example.png.webp" loading="lazy" alt="Κλήση AngularJS AJAX χρησιμοποιώντας πόρο $, http $ (Παράδειγμα)" title="Κλήση AngularJS AJAX χρησιμοποιώντας πόρο $, http $ (Παράδειγμα)" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224423-angularjs-ajax-call-using-resource-http-example" title="Κλήση AngularJS AJAX χρησιμοποιώντας πόρο $, http $ (Παράδειγμα)" rel="bookmark">Κλήση AngularJS AJAX χρησιμοποιώντας πόρο $, http $ (Παράδειγμα) 2025</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Δημοφιλείς Αναρτήσεις</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003691-1024768-bookmarklet" title="1024x768 Σελιδοδείκτης - CSS-Κόλπα" rel="bookmark">1024x768 Σελιδοδείκτης - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003692-addeventlistener-polyfill" title="AddEventListener Polyfill - CSS-Κόλπα" rel="bookmark">AddEventListener Polyfill - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003693-add-data-attribute-of-user-agent" title="Προσθήκη χαρακτηριστικού δεδομένων του παράγοντα χρήστη - CSS-Κόλπα" rel="bookmark">Προσθήκη χαρακτηριστικού δεδομένων του παράγοντα χρήστη - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003694-add-a-number-to-two-variables-at-once" title="Προσθέστε έναν αριθμό σε δύο μεταβλητές ταυτόχρονα - CSS-Κόλπα" rel="bookmark">Προσθέστε έναν αριθμό σε δύο μεταβλητές ταυτόχρονα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003695-add-to-favorites-ie" title="Προσθήκη στα αγαπημένα (IE) - CSS-Κόλπα" rel="bookmark">Προσθήκη στα αγαπημένα (IE) - CSS-Κόλπα</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Επιλογή Συντάκτη</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003590-stitched-look" title=""Ραμμένο" Κοίτα - CSS-Κόλπα" rel="bookmark">"Ραμμένο" Κοίτα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003591-sticky-footer" title="Κολλώδες υποσέλιδο - CSS-Κόλπα" rel="bookmark">Κολλώδες υποσέλιδο - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003592-star-wars-crawl-text" title="Κείμενο ανίχνευσης Star Wars - CSS-Κόλπα" rel="bookmark">Κείμενο ανίχνευσης Star Wars - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003593-text-dripping-blood" title="Κείμενο που στάζει αίμα - CSS-Κόλπα" rel="bookmark">Κείμενο που στάζει αίμα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003594-toggle-visibility-when-hiding-elements" title="Εναλλαγή ορατότητας κατά την απόκρυψη στοιχείων - CSS-Κόλπα" rel="bookmark">Εναλλαγή ορατότητας κατά την απόκρυψη στοιχείων - CSS-Κόλπα</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Κορυφή Άρθρα</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004001-truncate-string-by-words" title="Περικοπή συμβολοσειράς με λέξεις - CSS-Κόλπα" rel="bookmark">Περικοπή συμβολοσειράς με λέξεις - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004002-time-ago-function" title="Συνάρτηση Time Ago - CSS-Κόλπα" rel="bookmark">Συνάρτηση Time Ago - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004003-options-to-truncate-strings" title="Επιλογές για περικοπή συμβολοσειρών - CSS-Κόλπα" rel="bookmark">Επιλογές για περικοπή συμβολοσειρών - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004004-update-values-of-entire-table" title="Ενημέρωση τιμών ολόκληρου του πίνακα - CSS-Κόλπα" rel="bookmark">Ενημέρωση τιμών ολόκληρου του πίνακα - CSS-Κόλπα</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004005-url-validation" title="Επικύρωση διεύθυνσης URL - CSS-Κόλπα" rel="bookmark">Επικύρωση διεύθυνσης URL - CSS-Κόλπα</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright el.css-code.org, 2025 Ιούλιος | <a href="https://el.css-code.org/about-site" title="Σχετικά με τον ιστότοπο">Σχετικά με τον ιστότοπο</a> | <a href="https://el.css-code.org/contacts" title="Επαφές">Επαφές</a> | <a href="https://el.css-code.org/privacy-policy" title="Πολιτική απορρήτου">Πολιτική απορρήτου</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>