Μετάβαση στο περιεχόμενο

Αυτοματοποίηση των δοκιμών API σε συνεχή ενσωμάτωση

Ένα σενάριο που κατασκευάστηκε μέσα στη διεπαφή τρέχει ως έχει μέσα στο pipeline σας. Αυτός ο οδηγός καλύπτει τη μετάβαση σε κλίμακα.

  • Ένα πλάνο Pro ή Enterprise.
  • Ένα token οργανισμού (rstk_…) που θα τοποθετήσετε στο θησαυροφυλάκιο μυστικών του CI σας. (Η δημιουργία αυτού του token αυτοεξυπηρετούμενα από τον πίνακα ελέγχου έρχεται σύντομα.)
Terminal window
RESTORM_TOKEN=$RESTORM_TOKEN restorm \
--open ./api.restorm \
--run "Tests de fumée" \
--headless \
--all-logs \
--out run.log \
--param baseUrl=$BASE_URL

Κωδικός εξόδου 0 = επιτυχία, 1 = αποτυχία του σεναρίου, 2 = σφάλμα κλήσης, 3 = άρνηση δικαιώματος.

Απαιτείται μια εικονική οθόνη

Section titled “Απαιτείται μια εικονική οθόνη”

Το Restorm είναι εφαρμογή υπολογιστή: ακόμη και χωρίς παράθυρο, χρειάζεται έναν διακομιστή οθόνης. Σε έναν runner Linux, προσθέστε το πρόθεμα xvfb-run -a.

Terminal window
xvfb-run -a restorm --open ./api.restorm --run "Tests de fumée" --headless

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

env:
API_TOKEN: ${{ secrets.API_TOKEN }}

Παραμετροποίηση ανά περιβάλλον

Section titled “Παραμετροποίηση ανά περιβάλλον”

Δύο συμπληρωματικές προσεγγίσεις:

  1. Μια παράμετρος σεναρίου τύπου environment: --param Env=staging. Το ίδιο σενάριο τρέχει έναντι οποιουδήποτε στόχου.
  2. Απλές παράμετροι: --param baseUrl=…, --param tenant=….

Η μετατροπή ακολουθεί τον δηλωμένο τύπο της παραμέτρου, και μια αδύνατη μετατροπή προκαλεί αμέσως αποτυχία της εκκίνησης αντί να εκτελεστεί με λανθασμένη τιμή. Δείτε Μεταβλητές και δεδομένα.

Δημοσίευση του αρχείου καταγραφής

Section titled “Δημοσίευση του αρχείου καταγραφής”

Το --out run.log γράφει το αρχείο καταγραφής προοδευτικά. Δημοσιεύστε το ως τεχνούργημα, ακόμη και όταν η εργασία αποτυγχάνει — ακριβώς τότε χρειάζεται.

- uses: actions/upload-artifact@v4
if: always()
with:
name: journal-restorm
path: run.log

Γράψτε σενάρια ευανάγνωστα σε CI

Section titled “Γράψτε σενάρια ευανάγνωστα σε CI”

Μερικές συνήθειες που αλλάζουν τα πάντα όταν εμφανίζεται μια κόκκινη εργασία στις 3 τα ξημερώματα:

  • Ρητά μηνύματα ισχυρισμού. Το πεδίο message της ενέργειας Ισχυρισμός είναι αυτό που θα εμφανιστεί στο αρχείο καταγραφής: γράψτε εκεί τι περιμέναμε.
  • Καταγραφή στα βασικά βήματα. Χωρίς --all-logs, εκπέμπονται μόνο οι καταχωρίσεις της ενέργειας Log: αυτό είναι το αφηγηματικό σας νήμα.
  • Επικύρωση σχήματος αντί για ισχυρισμό πεδίο προς πεδίο. Συνδέστε την έξοδο errors της Επικύρωσης σχήματος σε ένα Log: λαμβάνετε την ακριβή λίστα των παραβάσεων.
  • Throw στις κρίσιμες εξόδους else, ώστε ο κωδικός εξόδου να αντικατοπτρίζει την αποτυχία.
  • Retry γύρω από τις ασταθείς κλήσεις δικτύου, αντί να δεχτείτε διακοπτόμενες δοκιμές. Δείτε Έλεγχος.

Αλυσιδώστε τον καθαρισμό στη θύρα done του κύριου σεναρίου: το done περιμένει να τελειώσει ολόκληρο το υπογράφημα. Δείτε Θύρες και σύνδεσμοι.

Παγίδες που πρέπει να γνωρίζετε

Section titled “Παγίδες που πρέπει να γνωρίζετε”
ΠαγίδαΛύση
Η εργασία περιμένει εισαγωγή δεδομένωνΔώστε όλες τις παραμέτρους με --param· σε headless, τίποτα δεν μπορεί να ζητηθεί
Μια ενέργεια Toast δεν εμφανίζεταιΕίναι φυσιολογικό: δεν έχει αποτέλεσμα σε headless. Χρησιμοποιήστε το Log
Ο διακομιστής MCP δεν εμφανίζεταιΕίναι σκόπιμο: χωρίς πραγματική οθόνη, δεν εκκινεί ποτέ
Έξοδος 3Το token ή το πλάνο — το μήνυμα διευκρινίζει ποια από τις τέσσερις περιπτώσεις
Το αρχείο του έργου μετακινήθηκεΤο --open δέχεται διαδρομή σχετική ως προς το αποθετήριο: κρατήστε την σχετική

Τα pipelines GitHub Actions και GitLab CI βρίσκονται στο Εκτέλεση headless και CI.