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

Εκτέλεση headless και συνεχής ενσωμάτωση

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

Το σενάριο «Find pets by status» μέσα στον επεξεργαστή: μια ενέργεια Input/Param με όνομα status, το αίτημα «Finds Pets by status» και ένα Log

Terminal window
restorm \
--open ./projet.restorm \
--run "Find pets by status" \
--headless \
--param status=available
ΌρισμαΡόλος
--open <chemin>, -oΤο έργο που θα ανοίξει. Υποχρεωτικό μαζί με το --run
--run <cible>Το σενάριο που θα εκτελεστεί. Η παρουσία του ενεργοποιεί τη λειτουργία γραμμής εντολών
--by <name|id>Πώς το --run ορίζει το σενάριο: κατά όνομα (προεπιλογή) ή κατά αναγνωριστικό
--headlessΚανένα παράθυρο. Χωρίς αυτό, το παράθυρο εμφανίζεται ενώ το αρχείο καταγραφής κυλά στην κονσόλα
--param nom=valeurΜια τιμή για μια παράμετρο εισόδου του σεναρίου (ένα κουτί Input / Param). Επαναλαμβανόμενο
--all-logsΠεριλαμβάνει τις καταχωρίσεις της μηχανής· εξ ορισμού εκπέμπονται μόνο εκείνες της ενέργειας Log
--out <fichier>Γράφει επίσης το αρχείο καταγραφής σε ένα αρχείο, προοδευτικά
--clear-settings, -clsΕπαναφέρει τις προτιμήσεις πριν από την εκκίνηση

Ένα κακοδιατυπωμένο --param (χωρίς =) επισημαίνεται στην έξοδο σφάλματος και αγνοείται. Το nom= (κενή τιμή) γίνεται δεκτό.

Οι τιμές μετατρέπονται σύμφωνα με τον δηλωμένο τύπο της παραμέτρου — δείτε Μεταβλητές και δεδομένα.

ΚωδικόςΣημασία
0Το σενάριο ολοκληρώθηκε σωστά
1Αποτυχία, ακύρωση, ή σφάλμα της μηχανής
2Ο στόχος δεν βρέθηκε, το αρχείο --out δεν είναι προσβάσιμο, ή --run χωρίς --open
3Άρνηση δικαιώματος: RESTORM_TOKEN απόν, άκυρο ή ανακληθέν, ανεπαρκές πλάνο, ή σημείο ελέγχου μη προσβάσιμο

Αυτή η σύμβαση είναι που καθιστά το αποτέλεσμα άμεσα αξιοποιήσιμο από έναν runner CI.

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

- message: "🔵 [2026-07-29 10:30:00.123] Commande créée"
data: { id: 4271 }

Τα επίπεδα προτάσσονται με μια κουκκίδα: ⚪ debug, 🔵 info, 🟠 warn, 🔴 error. Οι γραμμές δεν κόβονται ποτέ — η έξοδος παραμένει grep-able. Τα σφάλματα φεύγουν στην τυπική έξοδο σφαλμάτων.

Είναι ακριβώς το κείμενο που παράγει το κουμπί «αντιγραφή του αρχείου καταγραφής» της διεπαφής: η ίδια μορφή και από τις δύο πλευρές.

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

Εγκατάσταση του Restorm στον runner

Section titled “Εγκατάσταση του Restorm στον runner”
  • Από το npm — npm i -g restorm-cli@<έκδοση> και μετά restorm …. Η επίσημη έκδοση κατεβαίνει μία φορά, επαληθεύεται με το δημοσιευμένο άθροισμα ελέγχου και αποθηκεύεται στην κρυφή μνήμη, ώστε οι επόμενες εργασίες στο ίδιο μηχάνημα να μην κατεβάζουν τίποτα. Ο αριθμός έκδοσης του πακέτου npm είναι η έκδοση του Restorm που εκτελεί: καρφιτσώνοντας το ένα καρφιτσώνετε και το άλλο.
  • Από το πακέτο του συστήματος (.deb, .rpm), όπως στα παραδείγματα παρακάτω — η καλύτερη επιλογή αν φτιάχνετε τη δική σας εικόνα runner, αφού τότε η εργασία δεν κατεβάζει απολύτως τίποτα.

Στο GitHub, η Monsieur-Dev/restorm-action συγκεντρώνει όλα όσα περιγράφει αυτή η σελίδα σε ένα βήμα: εγκαθιστά το Restorm μέσω του restorm-cli (μία λήψη επαληθευμένη με άθροισμα ελέγχου, αποθηκευμένη στην κρυφή μνήμη μεταξύ εργασιών), το τυλίγει σε xvfb, εκτελεί το σενάριό σας χωρίς διεπαφή και μεταφράζει κάθε κωδικό εξόδου σε επώνυμο σφάλμα εργασίας.

- uses: Monsieur-Dev/restorm-action@v1
with:
project: ./api.restorm
scenario: Smoke tests
params: |
status=available
env:
RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}

Η ετικέτα της ενέργειας καρφιτσώνει την έκδοση του Restorm (η @v1.2.3 εκτελεί το Restorm 1.2.3), ή περάστε ρητή είσοδο version:. Όλες οι είσοδοι τεκμηριώνονται στο README του αποθετηρίου. Η χειροκίνητη συνταγή παρακάτω παραμένει για όποιον θέλει πλήρη έλεγχο.

name: Tests d'API
on: [push]
jobs:
api:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Installer Restorm
env:
RESTORM_VERSION: '1.4.2' # η έκδοση που θέλετε να καρφιτσώσετε
run: |
curl -sSL -o restorm.deb \
"https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb"
sudo apt-get install -y ./restorm.deb
- name: Exécuter les tests de fumée
env:
RESTORM_TOKEN: ${{ secrets.RESTORM_TOKEN }}
API_TOKEN: ${{ secrets.API_TOKEN }}
run: |
xvfb-run -a restorm \
--open ./api.restorm \
--run "Find pets by status" \
--headless \
--all-logs \
--out run.log \
--param status=available
- name: Publier le journal
if: always()
uses: actions/upload-artifact@v4
with:
name: journal-restorm
path: run.log
tests-api:
image: ubuntu:24.04
variables:
RESTORM_TOKEN: $RESTORM_TOKEN
RESTORM_VERSION: '1.4.2' # η έκδοση που θέλετε να καρφιτσώσετε
before_script:
- apt-get update && apt-get install -y curl xvfb
- curl -sSL -o restorm.deb "https://dl.restorm.app/restorm_${RESTORM_VERSION}_amd64.deb"
- apt-get install -y ./restorm.deb
script:
- >
xvfb-run -a restorm
--open ./api.restorm
--run "Find pets by status"
--headless --all-logs --out run.log
--param status=$PET_STATUS
artifacts:
when: always
paths: [run.log]

Τι αλλάζει σε λειτουργία headless

Section titled “Τι αλλάζει σε λειτουργία headless”
  • Οι ενέργειες Toast δεν κάνουν τίποτα· η εκτέλεση συνεχίζεται κανονικά.
  • Οι παράμετροι δεν μπορούν να ζητηθούν διαδραστικά: δώστε τες όλες με --param, ή αφήστε τες να πάρουν την προεπιλεγμένη τιμή τους.
  • Ο διακομιστής MCP δεν εκκινεί ποτέ σε μηχάνημα χωρίς οθόνη, όποια κι αν είναι η ρύθμιση.

Το token RESTORM_TOKEN (με πρόθεμα rstk_) παράγεται από τον πίνακα ελέγχου του λογαριασμού σας. Είναι συνδεδεμένο με τον οργανισμό, όχι με ένα πρόσωπο: είναι το token που βάζουμε στο θησαυροφυλάκιο του CI. Δείτε Λογαριασμοί και σύνδεση.