10 βήματα Πώς να αυτοματοποιήσετε αποτελεσματικά τις δοκιμές API σας

Πριν διαβάσετε αυτήν την ανάρτηση, βεβαιωθείτε ότι έχετε τουλάχιστον ένα από αυτά τα προβλήματα:

  1. Έχετε πρόβλημα ή εξακολουθείτε να κάνετε δοκιμές API με μη αυτόματο τρόπο;
  2. Δουλεύετε ως QA / QE / TE / SET χρησιμοποιώντας Postman / Insomnia / Paw συχνά για να ελέγξετε τα τελικά σημεία σας REST API επειδή δεν ξέρετε ακριβώς πώς να ελέγξετε τα τελικά σημεία σας αυτόματα;
  3. Εργάζεστε ως QA / QE / TE / SET που θέλει να χωρίσει τη δοκιμή από την εφαρμογή;

Ο κύριος σκοπός αυτής της εργασίας είναι να λύσει όλα τα προβλήματα που αναφέρθηκαν παραπάνω αυτοματοποιώντας τον έλεγχο API και ενσωματώνοντάς τον με το Jenkins CI. Είναι πιο εύκολο από ό, τι νομίζετε αν επιλέξετε τα σωστά εργαλεία και τεχνικές για αυτή τη δουλειά.

ΠΡΟΚΑΤΑΡΚΤΙΚΑ

  1. Node.js: Το Node.js είναι ένα runtime JavaScript που βασίζεται στη μηχανή JavaScript V8 του Chrome. Το Node.js χρησιμοποιεί ένα μοντέλο εισόδου / εξόδου μη αποκλεισμού, το οποίο καθιστά ελαφρύ και αποδοτικό. Το οικοσύστημα πακέτων Node.js, npm, είναι το μεγαλύτερο οικοσύστημα βιβλιοθηκών ανοικτού κώδικα στον κόσμο.
  2. Mocha: Το Mocha είναι ένα πλαίσιο δοκιμών javascript που διευκολύνει τον ασύγχρονο έλεγχο.
  3. Chai: Σε αντίθεση με την Jasmine, μια πρόσθετη βιβλιοθήκη ισχυρισμού πρέπει να χρησιμοποιηθεί για να συμπληρώσει το Mocha. Το Chai είναι μια βιβλιοθήκη βεβαιώσεων που σας επιτρέπει να επιλέξετε τη διασύνδεση διεκδίκησης που σας αρέσει περισσότερο, συμπεριλαμβανομένων των λέξεων "assert", "expect" και "should".
  4. SuperTest: Το SuperTest είναι μια επέκταση του SuperAgent, μιας ελαφριάς βιβλιοθήκης αιτημάτων AJAX HTTP. Το SuperTest παρέχει abstractions υψηλού επιπέδου για τη δοκιμή των απαντήσεων του τελικού σημείου API node.js με εύληπτες υποθέσεις.
  5. Docker: Το Docker είναι μια ανοιχτή πλατφόρμα για προγραμματιστές και sysadmins για την κατασκευή, την αποστολή και την εκτέλεση κατανεμημένων εφαρμογών, είτε σε φορητούς υπολογιστές, VM κέντρων δεδομένων είτε στο σύννεφο.
  6. Jenkins CI: Ο Jenkins είναι ένας διακομιστής αυτοματισμού ανοιχτού κώδικα γραμμένο σε Java. Ο Jenkins συμβάλλει στην αυτοματοποίηση του μη ανθρωπίνου μέρους ολόκληρης της διαδικασίας ανάπτυξης λογισμικού, με πλέον κοινά πράγματα όπως η συνεχής ενσωμάτωση, αλλά με την περαιτέρω εξουσιοδότηση των ομάδων για την υλοποίηση του τεχνικού μέρους μιας συνεχούς παράδοσης.

Αυτό το σεμινάριο προϋποθέτει ότι έχετε ήδη:

  1. Το Node.js και το docker είναι εγκατεστημένα στο μηχάνημά σας.
  2. Εφαρμογή με το API που θέλετε να δοκιμάσετε ήδη. (Εδώ είναι το παράδειγμα της εφαρμογής https://github.com/rifkyalikiki/example-api-app)
  3. Jenkins CI έχει ήδη εγκατασταθεί.

ΑΣ ΑΡΧΙΣΟΥΜΕ

  1. Δημιουργήστε το φάκελο δοκιμαστικού έργου. Για παράδειγμα: test-api-test
  2. Δημιουργήστε το αρχείο package.json για να προσθέσετε όλες τις εξαρτήσεις.

3. Εγκαταστήστε όλες τις εξαρτήσεις εκτελώντας αυτές τις εντολές.

cd your_test_project_folder
npm install -g mocha
npm install

Ο φάκελος node_modules θα πρέπει να προστεθεί στο φάκελο του δοκιμαστικού έργου σας και όλες οι εξαρτήσεις θα πρέπει να εγκατασταθούν με επιτυχία.

4. Δημιουργήστε φάκελο δοκιμής στον φάκελο δοκιμαστικού έργου σας.

cd your_test_project_folder
test mkdir

Ο κατάλογος πρέπει να ονομάζεται δοκιμή για το Mocha για να βρει τα αρχεία δοκιμών που θα εκτελεστούν.

5. Δημιουργήστε το πρώτο αρχείο δοκιμής API

Μπορείτε να ονομάσετε τα αρχεία μου. Ωστόσο, αν δοκιμάζετε πολλαπλά σημεία που σχετίζονται με σύνολα μοντέλων, προτείνω να τα ονομάσετε "yourModel_test.js". Για αυτό το παράδειγμα, απλά δημιουργήστε ένα αρχείο user_test.js στον κατάλογο δοκιμών. Μην ξεχάσετε να ορίσετε επίσης την url σας API σε μια παγκόσμια μεταβλητή. Θα καλείτε αυτήν τη μεταβλητή όταν κάνετε τα RESTful αιτήματά σας χρησιμοποιώντας το SuperTest.

6. Ας εκτελέσουμε την πρώτη σας δοκιμή API εκτελώντας αυτές τις εντολές

cd your_test_project_folder
npm start
ή
cd your_test_project_folder
JUNIT_REPORT_PATH = test-result / result.xml JUNIT_REPORT_STACK = 1 mocha -timeout 25000 -colors -reporter mocha-jenkins-ρεπόρτερ

Εδώ είναι το αποτέλεσμα της δοκιμής

αποτελέσματα δοκιμής από το τερματικόresult.xml

7. Δημιουργήστε το entrypoint.sh για να τοποθετήσετε την εντολή του δρομέα δοκιμής.

8. Δημιουργήστε το dockerfile που θα χρησιμοποιηθεί στο Jenkins CI.

9. Δημιουργήστε τα αντικείμενα εργασίας Jenkins

Νέο Θέμα εργασίας JenkinsΘέση εργασίας Jenkins (1)Θέση εργασίας Jenkins (2)Jenkins θέση εργασίας (3)

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

Στη συνέχεια, κάντε κλικ στο κουμπί ΑΠΟΘΗΚΕΥΣΗ για να δημιουργήσετε τη δουλειά.

10. Εκτελέστε την δουλειά Jenkins και δείτε τα αποτελέσματα των δοκιμών.

Εκτελέστε την εργασία Jenkins κάνοντας κλικ στο κουμπί αναπαραγωγήςΑποτέλεσμα δοκιμής από τη δουλειά του Jenkins

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

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

Happy Testing!

Πηγή: http://developmentnow.com/2015/02/05/make-your-node-js-api-bulletproof-how-to-test-with-mocha-chai-and-supertest/