Σημείωση: Για αυτό το άρθρο, θα εστιάσω σε μεταβλητές περιβάλλοντος για λειτουργικά συστήματα που βασίζονται στο UNIX, όπως το macOS και το Linux.
Οι μεταβλητές του περιβάλλοντος είναι και ευλογία και κατάρα. Σας επιτρέπουν να μεταβιβάζετε εύκολα δεδομένα σε διαδικασίες όπως εφαρμογές, σενάρια και κοντέινερ. Αναπτύσσω πολλά έργα αυτοματισμού δοκιμών και οι μεταβλητές περιβάλλοντος είναι ένας από τους πιο συνηθισμένους μηχανισμούς για την επιτυχία των εισαγωγών δοκιμής. Για παράδειγμα, όταν εκτελώ μια δοκιμαστική σουίτα σε μια εφαρμογή Ιστού, μπορεί να χρειαστεί να ορίσω εισόδους ως εξής:
export BASE_URL="http://my.website.com/"
export USERNAME="pandy"
export PASSWORD="DandyAndySugarCandy"
export SECRET_API_KEY="1234567890abcdefghijklmnopqrstuvwxyz"
Μπορώ απλώς να εκτελέσω αυτές τις εντολές απευθείας στο τερματικό μου για να ορίσω τις μεταβλητές που χρειάζομαι. Δυστυχώς, κάθε φορά που χρειάζεται να εκτελέσω τις δοκιμές μου σε άλλη συνεδρία τερματικού, πρέπει να επαναλάβω τις εντολές για να τις ρυθμίσω ξανά. Αυτό είναι μια μεγάλη ταλαιπωρία, ειδικά για μυστικά και μακριές μάρκες. Θα ήταν ωραίο να αποθηκεύσω αυτές τις μεταβλητές με επαναχρησιμοποιήσιμο τρόπο με το έργο μου.
Ευτυχώς, υπάρχει: το αρχείο περιβάλλοντος. Μπορείτε να δημιουργήσετε ένα αρχείο με όνομα .env
και βάλε όλα σου „export
” εντολές για τη ρύθμιση μεταβλητών σε αυτό. Βασικά, απλώς αντιγράψτε αυτές τις γραμμές παραπάνω στο .env
αρχείο. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή όποτε θέλετε να ορίσετε αυτές τις μεταβλητές στο τερματικό σας:
Μπορείτε να επαληθεύσετε την τιμή των μεταβλητών χρησιμοποιώντας το „echo
“ εντολή. Απλώς θυμηθείτε να βάλετε πρόθεμα στα ονόματα μεταβλητών με „$
„. Για παράδειγμα:
Η έξοδος θα πρέπει να είναι:
Μου αρέσει να δημιουργώ ένα .env
αρχείο σε κάθε έργο που χρειάζεται μεταβλητές περιβάλλοντος. Με αυτόν τον τρόπο, μπορώ εύκολα να παρακολουθώ όλες τις μεταβλητές που χρειάζεται το έργο σε ένα μέρος. βάζω το .env
στον ριζικό κατάλογο του έργου για να είναι εύκολη η εύρεση του. Κάθε φορά που χρειάζεται να εκτελέσω το έργο, εκτελώ το „source
” εντολή χωρίς καμία ανησυχία.
Εάν το έργο είναι αποθηκευμένο σε ένα αποθετήριο Git, τότε προσθέτω επίσης „.env
” στο αποθετήριο .gitignore
αρχείο. Με αυτόν τον τρόπο, οι μεταβλητές μου δεν θα δεσμευτούν στο αποθετήριο. Είναι αγενές να δεσμεύεις προσωπικές ρυθμίσεις σε ένα αποθετήριο και είναι επικίνδυνο και ανασφαλές να διαπράττεις μυστικά. Πολλά .gitignore
πρότυπα περιλαμβάνει ήδη ένα „.env
», επίσης, καθώς η χρήση αρχείων περιβάλλοντος όπως αυτό είναι μια κοινή πρακτική.
Αν εσύ Πραγματικά θέλετε να μοιραστείτε τις μεταβλητές σας, υπάρχουν μερικές επιλογές:
- Απλώς δεσμεύστε τα στο αποθετήριο.
- Δημοσιεύστε τα σε μια υπηρεσία κοινής χρήσης μυστικών (όπως το LastPass).
- Στείλτε τους μέσω email ή μηνύματος.