Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Γεια σε όλους, ορίστε TestMace! Ίσως πολλοί άνθρωποι γνωρίζουν για εμάς από του μας προηγούμενος άρθρα. Για όσους μόλις εγγράφηκαν: αναπτύσσουμε ένα IDE για να συνεργαστούμε με το TestMace API. Η πιο συχνή ερώτηση κατά τη σύγκριση του TestMace με ανταγωνιστικά προϊόντα είναι "Πώς διαφέρετε από τον Postman;" Αποφασίσαμε ότι ήρθε η ώρα να δώσουμε μια λεπτομερή απάντηση σε αυτό το ερώτημα. Παρακάτω έχουμε περιγράψει τα πλεονεκτήματά μας Ταχυδρόμος.

Χωρισμός σε κόμβους

Εάν εργάζεστε με τον Postman, τότε γνωρίζετε ότι η διεπαφή αιτήματος περιέχει όλες τις απαραίτητες λειτουργίες. Υπάρχουν σενάρια, δοκιμές και, στην πραγματικότητα, τα ίδια τα ερωτήματα. Αυτό διευκολύνει τους αρχάριους, αλλά σε μεγάλα σενάρια αυτή η προσέγγιση δεν είναι ευέλικτη. Τι γίνεται αν θέλετε να δημιουργήσετε πολλά ερωτήματα και να πραγματοποιήσετε συγκέντρωση σε αυτά; Τι γίνεται αν θέλετε να εκτελέσετε ένα σενάριο χωρίς αίτημα ή πολλά λογικά διαχωρισμένα σενάρια στη σειρά; Σε τελική ανάλυση, είναι καλή ιδέα να διαχωρίσετε τις δοκιμές από τα κανονικά σενάρια βοηθητικών προγραμμάτων. Επιπλέον, η προσέγγιση "προσθήκη όλης της λειτουργικότητας σε έναν κόμβο" δεν είναι επεκτάσιμη - η διεπαφή υπερφορτώνεται γρήγορα.

Το TestMace αρχικά χωρίζει όλες τις λειτουργίες σε διαφορετικούς τύπους κόμβων. Θα θέλατε να κάνετε ένα αίτημα; Είναι για σένα βήμα αίτησης κόμβος Θέλετε να γράψετε ένα σενάριο; Είναι για σένα γραφή κόμβος Χρειάζεστε εξετάσεις; Σας παρακαλούμε - Ισχυρισμός κόμβος Ω ναι, μπορείτε ακόμα να το ολοκληρώσετε όλο αυτό το θέμα φάκελο κόμβος Και όλα αυτά μπορούν εύκολα να συνδυαστούν μεταξύ τους. Αυτή η προσέγγιση δεν είναι μόνο πολύ ευέλικτη, αλλά επίσης, σύμφωνα με την αρχή της ενιαίας ευθύνης, σας επιτρέπει να χρησιμοποιείτε μόνο αυτό που πραγματικά χρειάζεστε αυτήν τη στιγμή. Γιατί χρειάζομαι σενάρια και δοκιμές αν θέλω απλώς να υποβάλω ένα αίτημα;

Μορφή έργου αναγνώσιμη από τον άνθρωπο

Υπάρχει μια εννοιολογική διαφορά μεταξύ TestMace και Postman στον τρόπο αποθήκευσης. Στο Postman, όλα τα αιτήματα αποθηκεύονται κάπου στον τοπικό χώρο αποθήκευσης. Εάν υπάρχει ανάγκη κοινής χρήσης αιτημάτων μεταξύ πολλών χρηστών, τότε πρέπει να χρησιμοποιήσετε τον ενσωματωμένο συγχρονισμό. Στην πραγματικότητα, αυτή είναι μια γενικά αποδεκτή προσέγγιση, αλλά όχι χωρίς τα μειονεκτήματά της. Τι γίνεται με την ασφάλεια των δεδομένων; Άλλωστε, η πολιτική ορισμένων εταιρειών ενδέχεται να μην επιτρέπει την αποθήκευση δεδομένων με τρίτους. Ωστόσο, πιστεύουμε ότι το TestMace έχει κάτι καλύτερο να προσφέρει! Και το όνομα αυτής της βελτίωσης είναι «μορφή έργου αναγνώσιμη από τον άνθρωπο».

Ας ξεκινήσουμε με το γεγονός ότι στο TestMace, καταρχήν, υπάρχει μια οντότητα «έργου». Και η εφαρμογή αναπτύχθηκε αρχικά με στόχο την αποθήκευση έργων σε συστήματα ελέγχου εκδόσεων: το δέντρο του έργου προβάλλεται σχεδόν ένα προς ένα στη δομή του αρχείου, το yaml χρησιμοποιείται ως μορφή αποθήκευσης (χωρίς επιπλέον αγκύλες και κόμματα) και το Η αναπαράσταση του αρχείου κάθε κόμβου περιγράφεται λεπτομερώς στην τεκμηρίωση με σχόλια. Αλλά στις περισσότερες περιπτώσεις δεν θα κοιτάξετε εκεί - όλα τα ονόματα πεδίων έχουν λογικά ονόματα.

Τι δίνει αυτό στον χρήστη; Αυτό σας επιτρέπει να αλλάξετε τη ροή εργασίας της ομάδας πολύ ευέλικτα, χρησιμοποιώντας γνωστές προσεγγίσεις. Για παράδειγμα, οι προγραμματιστές μπορούν να αποθηκεύσουν ένα έργο στο ίδιο αποθετήριο με το backend. Στα υποκαταστήματα, εκτός από την αλλαγή της ίδιας της βάσης κώδικα, ο προγραμματιστής μπορεί να διορθώσει υπάρχοντα σενάρια ερωτημάτων και δοκιμές. Αφού πραγματοποιήσετε αλλαγές στο αποθετήριο (git, svn, mercurial - ό,τι σας αρέσει περισσότερο), το CI (το αγαπημένο σας, δεν επιβάλλεται από κανέναν) ξεκινά το βοηθητικό πρόγραμμα κονσόλας μας testmace-cli, και η αναφορά που λαμβάνεται μετά την εκτέλεση (για παράδειγμα, σε μορφή junit, η οποία υποστηρίζεται επίσης στο testmace-cli) αποστέλλεται στο κατάλληλο σύστημα. Και το προαναφερθέν ζήτημα ασφάλειας δεν αποτελεί πλέον πρόβλημα.

Όπως μπορείτε να δείτε, το TestMace δεν επιβάλλει το οικοσύστημα και το παράδειγμά του. Αντίθετα, ταιριάζει εύκολα σε καθιερωμένες διαδικασίες.

Δυναμικές Μεταβλητές

Το TestMace ακολουθεί την έννοια χωρίς κώδικα: εάν ένα πρόβλημα μπορεί να λυθεί χωρίς τη χρήση κώδικα, προσπαθούμε να παρέχουμε αυτήν την ευκαιρία. Η εργασία με μεταβλητές είναι ακριβώς το είδος της λειτουργικότητας όπου στις περισσότερες περιπτώσεις μπορείτε να κάνετε χωρίς προγραμματισμό.

Παράδειγμα: λάβαμε μια απάντηση από τον διακομιστή και θέλουμε να αποθηκεύσουμε μέρος της απάντησης σε μια μεταβλητή. Στο Postman, σε ένα δοκιμαστικό σενάριο (που είναι από μόνο του περίεργο) θα γράφαμε κάτι σαν:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Αλλά κατά τη γνώμη μας, η σύνταξη ενός σεναρίου για ένα τόσο απλό και συχνά χρησιμοποιούμενο σενάριο φαίνεται περιττό. Επομένως, στο TestMace είναι δυνατό να αντιστοιχίσετε ένα κομμάτι της απάντησης σε μια μεταβλητή χρησιμοποιώντας τη γραφική διεπαφή. Δείτε πόσο απλό είναι:

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Και τώρα με κάθε αίτημα αυτή η δυναμική μεταβλητή θα ενημερώνεται. Αλλά μπορείτε να αντιταχθείτε, υποστηρίζοντας ότι η προσέγγιση του Postman είναι πιο ευέλικτη και σας επιτρέπει όχι μόνο να κάνετε μια εργασία, αλλά και να εκτελέσετε κάποια προεπεξεργασία. Δείτε πώς μπορείτε να τροποποιήσετε το προηγούμενο παράδειγμα:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Λοιπόν, για αυτό το σκοπό έχει το TestMace γραφή κόμβος, ο οποίος καλύπτει αυτό το σενάριο. Για να αναπαραγάγετε την προηγούμενη περίπτωση, αλλά έχει ήδη εκτελεστεί από το TestMace, πρέπει να δημιουργήσετε έναν κόμβο σεναρίου ακολουθώντας το αίτημα και να χρησιμοποιήσετε τον ακόλουθο κώδικα ως σενάριο:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Όπως μπορείτε να δείτε, η σύνθεση των κόμβων εξυπηρετούσε καλά και εδώ. Και για μια τόσο απλή περίπτωση όπως περιγράφεται παραπάνω, μπορείτε απλά να αντιστοιχίσετε την έκφραση ${crypto.MD5($response.data)} μεταβλητή που δημιουργήθηκε μέσω του GUI!

Δημιουργία δοκιμών μέσω GUI

Ο Postman σάς επιτρέπει να δημιουργείτε δοκιμές γράφοντας σενάρια (στην περίπτωση του Postman, αυτό είναι JavaScript). Αυτή η προσέγγιση έχει πολλά πλεονεκτήματα - σχεδόν απεριόριστη ευελιξία, διαθεσιμότητα έτοιμων λύσεων κ.λπ.

Ωστόσο, η πραγματικότητα είναι συχνά τέτοια (δεν είμαστε έτσι, η ζωή είναι έτσι) που ένας δοκιμαστής δεν έχει δεξιότητες προγραμματισμού, αλλά θα ήθελε να ωφελήσει την ομάδα αυτή τη στιγμή. Για τέτοιες περιπτώσεις, ακολουθώντας την έννοια χωρίς κώδικα, το TestMace σάς επιτρέπει να δημιουργείτε απλές δοκιμές μέσω ενός GUI χωρίς να καταφεύγετε στη σύνταξη σεναρίων. Εδώ, για παράδειγμα, είναι πώς μοιάζει η διαδικασία δημιουργίας ενός τεστ που συγκρίνει τιμές για ισότητα:

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Ωστόσο, η δημιουργία δοκιμών σε ένα πρόγραμμα επεξεργασίας γραφικών δεν εξαλείφει τη δυνατότητα γραφή δοκιμών σε κώδικα. Όλες οι ίδιες βιβλιοθήκες είναι εδώ όπως στον κόμβο σεναρίου και chai για γραπτά τεστ.

Συχνά προκύπτουν καταστάσεις όταν ένα συγκεκριμένο ερώτημα ή ακόμα και ένα ολόκληρο σενάριο πρέπει να εκτελεστεί πολλές φορές σε διαφορετικά μέρη του έργου. Ένα παράδειγμα τέτοιων αιτημάτων θα μπορούσε να είναι η προσαρμοσμένη εξουσιοδότηση πολλαπλών σταδίων, η μεταφορά του περιβάλλοντος στην επιθυμητή κατάσταση κ.λπ. Σε γενικές γραμμές, μιλώντας από την άποψη των γλωσσών προγραμματισμού, θα θέλαμε να έχουμε συναρτήσεις που μπορούν να επαναχρησιμοποιηθούν σε διαφορετικά μέρη της εφαρμογής. Στο TestMace αυτή η λειτουργία εκτελείται από σύνδεσμος κόμβος Είναι πολύ εύκολο στη χρήση:
1) δημιουργήστε ένα ερώτημα ή ένα σενάριο
2) δημιουργήστε έναν κόμβο τύπου Link
3) στις παραμέτρους, καθορίστε έναν σύνδεσμο προς το σενάριο που δημιουργήθηκε στο πρώτο βήμα

Σε μια πιο προηγμένη έκδοση, μπορείτε να καθορίσετε ποιες δυναμικές μεταβλητές από το σενάριο μεταβιβάζονται σε υψηλότερο επίπεδο σε σχέση με τη σύνδεση. Ακούγεται μπερδεμένο; Ας πούμε ότι δημιουργήσαμε έναν Φάκελο με το όνομα δημιουργία-ανάρτηση, εντός του οποίου έχει εκχωρηθεί μια δυναμική μεταβλητή σε αυτόν τον κόμβο postId. Τώρα στον κόμβο Link δημιουργία-ανάρτηση-σύνδεσμος μπορείτε να ορίσετε ρητά ότι η μεταβλητή postId ανατέθηκε σε έναν πρόγονο δημιουργία-ανάρτηση-σύνδεσμος. Αυτός ο μηχανισμός (και πάλι, στη γλώσσα προγραμματισμού) μπορεί να χρησιμοποιηθεί για την επιστροφή ενός αποτελέσματος από μια «συνάρτηση». Γενικά, είναι ωραίο, το DRY είναι σε πλήρη εξέλιξη και πάλι δεν έχει καταστραφεί ούτε μια γραμμή κώδικα.

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Όσον αφορά τον Ταχυδρόμο, υπάρχει αίτημα δυνατότητας για επαναχρησιμοποίηση αιτημάτων κρέμεται από το 2015, και φαίνεται ότι υπάρχει ακόμη μερικές υποδείξειςότι εργάζονται για αυτό το πρόβλημα. Στην τρέχουσα μορφή του, ο Postman, φυσικά, έχει τη δυνατότητα να αλλάξει το νήμα της εκτέλεσης, κάτι που θεωρητικά καθιστά πιθανώς δυνατή την εφαρμογή παρόμοιας συμπεριφοράς, αλλά αυτό είναι περισσότερο ένα βρώμικο χακάρισμα παρά μια πραγματικά λειτουργική προσέγγιση.

Άλλες διαφορές

  • Μεγαλύτερος έλεγχος του εύρους των μεταβλητών. Το μικρότερο εύρος εντός του οποίου μπορεί να οριστεί μια μεταβλητή στο Postman είναι η συλλογή. Το TestMace σάς επιτρέπει να ορίζετε μεταβλητές για οποιοδήποτε ερώτημα ή φάκελο. Στη συλλογή Postman Share σας επιτρέπει να εξάγετε μόνο συλλογές, ενώ στο TestMace η κοινή χρήση λειτουργεί για οποιονδήποτε κόμβο
  • Το TestMace υποστηρίζει κληρονομούμενες κεφαλίδες, το οποίο μπορεί να αντικατασταθεί σε θυγατρικά ερωτήματα από προεπιλογή. Ο Ταχυδρόμος έχει κάτι για αυτό: την εργασία, και μάλιστα είναι κλειστό, αλλά προσφέρεται ως λύση... χρησιμοποιήστε σενάρια. Στο TestMace, όλα αυτά ρυθμίζονται μέσω του GUI και υπάρχει η επιλογή να απενεργοποιήσετε προαιρετικά τις κληρονομημένες κεφαλίδες σε συγκεκριμένους απογόνους
  • Ξεκανω ξανακανω. Λειτουργεί όχι μόνο κατά την επεξεργασία κόμβων, αλλά και κατά τη μετακίνηση, τη διαγραφή, τη μετονομασία και άλλες λειτουργίες που αλλάζουν τη δομή του έργου
  • Τα αρχεία που επισυνάπτονται σε αιτήματα γίνονται μέρος του έργου και αποθηκεύονται μαζί του, ενώ συγχρονίζονται τέλεια, σε αντίθεση με τον Postman. (Ναι, δεν χρειάζεται πλέον να επιλέγετε μη αυτόματα αρχεία κάθε φορά που ξεκινάτε και να τα μεταφέρετε σε συναδέλφους στα αρχεία)

Χαρακτηριστικά που είναι ήδη στο δρόμο

Δεν μπορέσαμε να αντισταθούμε στον πειρασμό να σηκώσουμε το πέπλο της μυστικότητας στις επόμενες κυκλοφορίες, ειδικά όταν η λειτουργικότητα είναι πολύ νόστιμη και ήδη υποβάλλεται σε στίλβωση πριν από την κυκλοφορία. Λοιπόν, ας συναντηθούμε.

Λειτουργίες

Όπως γνωρίζετε, ο Postman χρησιμοποιεί τις λεγόμενες δυναμικές μεταβλητές για να δημιουργήσει τιμές. Η λίστα τους είναι εντυπωσιακή και η συντριπτική πλειοψηφία των συναρτήσεων χρησιμοποιούνται για τη δημιουργία ψεύτικων τιμών. Για παράδειγμα, για να δημιουργήσετε ένα τυχαίο email πρέπει να γράψετε:

{{$randomEmail}}

Ωστόσο, δεδομένου ότι πρόκειται για μεταβλητές (αν και δυναμικές), δεν μπορούν να χρησιμοποιηθούν ως συναρτήσεις: δεν είναι παραμετροποιήσιμες, επομένως δεν θα είναι δυνατό να ληφθεί ένας κατακερματισμός από μια συμβολοσειρά.

Σκοπεύουμε να προσθέσουμε «τίμιες» συναρτήσεις στο TestMace. Ακριβώς μέσα στο ${} θα είναι δυνατή όχι μόνο η πρόσβαση σε μια μεταβλητή, αλλά και η κλήση μιας συνάρτησης. Εκείνοι. αν χρειαστεί να δημιουργήσετε το περιβόητο ψεύτικο email, θα γράψουμε απλώς

${faker.internet.email()}

Εκτός από το γεγονός ότι είναι μια συνάρτηση, θα παρατηρήσετε ότι είναι δυνατό να καλέσετε μια μέθοδο σε ένα αντικείμενο. Και αντί για μια μεγάλη επίπεδη λίστα δυναμικών μεταβλητών, έχουμε ένα σύνολο λογικά ομαδοποιημένων αντικειμένων.

Τι γίνεται αν θέλουμε να υπολογίσουμε τον κατακερματισμό μιας συμβολοσειράς; Εύκολα!

${crypto.MD5($dynamicVar.data)}

Θα παρατηρήσετε ότι μπορείτε ακόμη και να περάσετε μεταβλητές ως παραμέτρους! Σε αυτό το σημείο, ένας περίεργος αναγνώστης μπορεί να υποψιαστεί ότι κάτι δεν πάει καλά...

Χρήση JavaScript σε εκφράσεις

... Και για καλό λόγο! Όταν διαμορφώνονταν οι απαιτήσεις για συναρτήσεις, ξαφνικά καταλήξαμε στο συμπέρασμα ότι το έγκυρο javascript πρέπει να γράφεται σε εκφράσεις. Έτσι τώρα είστε ελεύθεροι να γράψετε εκφράσεις όπως:

${1 + '' + crypto.MD5('asdf')}

Και όλα αυτά χωρίς σενάρια, ακριβώς στα πεδία εισαγωγής!

Όσο για τον Postman, εδώ μπορείτε να χρησιμοποιήσετε μόνο μεταβλητές και όταν προσπαθείτε να γράψετε την παραμικρή έκφραση, ο επικυρωτής βρίζει και αρνείται να την υπολογίσει.

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Προηγμένη αυτόματη συμπλήρωση

Επί του παρόντος, το TestMace έχει μια τυπική αυτόματη συμπλήρωση που μοιάζει με αυτό:

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Εδώ, εκτός από τη γραμμή αυτόματης συμπλήρωσης, υποδεικνύεται σε τι ανήκει αυτή η γραμμή. Αυτός ο μηχανισμός λειτουργεί μόνο σε εκφράσεις που περιβάλλονται από αγκύλες ${}.

Όπως μπορείτε να δείτε, έχουν προστεθεί οπτικοί δείκτες που υποδεικνύουν τον τύπο της μεταβλητής (για παράδειγμα, συμβολοσειρά, αριθμός, πίνακας κ.λπ.). Μπορείτε επίσης να αλλάξετε τις λειτουργίες αυτόματης συμπλήρωσης (για παράδειγμα, μπορείτε να επιλέξετε αυτόματη συμπλήρωση με μεταβλητές ή κεφαλίδες). Αλλά ούτε αυτό είναι το πιο σημαντικό πράγμα!

Πρώτον, η αυτόματη συμπλήρωση λειτουργεί ακόμη και σε εκφράσεις (όπου είναι δυνατόν). Έτσι φαίνεται:

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Και δεύτερον, η αυτόματη συμπλήρωση είναι πλέον διαθέσιμη σε σενάρια. Ρίξτε μια ματιά στο πώς λειτουργεί!

Γιατί το TestMace είναι καλύτερο από τον Ταχυδρόμο

Δεν έχει νόημα να συγκρίνουμε αυτήν τη λειτουργία με τον Postman - η αυτόματη συμπλήρωση περιορίζεται μόνο σε στατικές λίστες μεταβλητών, κεφαλίδων και των τιμών τους (διορθώστε με αν ξέχασα κάτι). Τα σενάρια δεν συμπληρώνονται αυτόματα :)

Συμπέρασμα

Ο Οκτώβριος συμπλήρωσε ένα χρόνο από την έναρξη της ανάπτυξης του προϊόντος μας. Σε αυτό το διάστημα, καταφέραμε να κάνουμε πολλά πράγματα και, από ορισμένες απόψεις, προλάβαμε τους ανταγωνιστές μας. Ωστόσο, όπως και να έχει, στόχος μας είναι να δημιουργήσουμε ένα πραγματικά βολικό εργαλείο για την εργασία με API. Έχουμε ακόμη πολλή δουλειά να κάνουμε, εδώ είναι ένα πρόχειρο σχέδιο για την ανάπτυξη του έργου μας για την επόμενη χρονιά: https://testmace.com/roadmap.

Τα σχόλιά σας θα μας επιτρέψουν να πλοηγηθούμε καλύτερα στην αφθονία των λειτουργιών και η υποστήριξή σας μας δίνει δύναμη και σιγουριά ότι κάνουμε το σωστό. Συμβαίνει ότι σήμερα είναι μια σημαντική ημέρα για το έργο μας - την ημέρα που δημοσιεύτηκε το TestMace ProductHunt. Υποστηρίξτε το έργο μας, είναι πολύ σημαντικό για εμάς. Επιπλέον, υπάρχει μια δελεαστική προσφορά στη σελίδα μας στο PH σήμερα και είναι περιορισμένη

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο