Connection Tests für oberflächenlose Betriebssysteme

Blog vom 13.02.2023

Installieren und Ausführen von Mockoon ohne GUI

In bestimmten Serverkonfigurationen haben Sie für den Connection Test keine GUI zur Verfügung, sondern beispielsweise nur SSH-Zugang. In einer solchen Umgebung müssen Sie Mockoon oder ein anderes Mock-Tool als Kommandozeilenversion (mockoon-cli) ausführen. Der vorliegende Blockbeitrag fokussiert auf nur auf eine Mockoon-Installation. Alle weiteren Themen wie Durchführung der Tests für die Inbound-Connections oder Outbound-Connections entnehmen Sie bitte den korrespondierenden Blockbeiträgen (z. B. Jira Connectivity auf Betriebssystem-Ebene testen).

Installation

Um eine Kommandozeilenversion von Mockoon zu erhalten, müssen Sie mockoon-cli installieren. Bitte lesen Sie auch https://mockoon.com/cli/ für Details.

Installation mit Node.js

Verwenden Sie die folgenden Anweisungen, um mockoon-cli mit Node.js zu installieren:

  1. Installieren Sie Node.js auf Ihrem Server. Siehe auch https://nodejs.org/ für weitere Details.

  2. Installieren Sie den Node Version Manager (nvm). Siehe https://github.com/nvm-sh/nvm#installing-and-updating für weitere Details.

  3. Führen Sie die folgenden Befehle aus, um mockoon zu installieren

nvm install v14.21.2

nvm use 14.21.2

npm install -g @mockoon/cli

Installation mit Docker

Verwenden Sie den folgenden Befehl, um mockoon-cli über Docker zu installieren:

docker pull mockoon/cli

Erstellen Sie Ihre Mockoon-Umgebung

Da mockoon-cli keine Konfigurations-GUI hat, muss die Konfiguration über eine JSON-Datei angegeben werden.

Erstellen Sie eine Datei mockoon_environment.json mit dem folgenden Inhalt:

{

    "uuid": "",

    "lastMigration": 13,

    "name": "connection-test",

    "endpointPrefix": "",

    "latency": 0,

    "servers": [

        {

            "url": "https://localhost:<PORT>/"

        }

    ],

    "tlsOptions": {

        "enabled": true,

        "type": "PFX",

        "pfxPath": "<PATH_TO_PFX_FILE>",

        "certPath": "",

        "keyPath": "",

        "caPath": "",

        "passphrase": "<PASSWORD_FOR_PFX_FILE>"

    },

    "routes": [

        {

            "uuid": "",

            "documentation": "Get a list of posts (JSON)",

            "method": "get",

            "endpoint": "get",

            "responses": [

                {

                    "uuid": "",

                    "body": "{ \"test_response\": \"GET OK\" }",

                    "latency": 0,

                    "statusCode": 200,

                    "label": "Success",

                    "headers": [

                        {

                            "key": "",

                            "value": ""

                        }

                    ],

                    "filePath": "",

                    "sendFileAsBody": false,

                    "rules": [],

                    "rulesOperator": "OR",

                    "disableTemplating": false

                }

            ],

            "enabled": true,

            "randomResponse": false

        },

        {

            "uuid": "",

            "documentation": "Create a user",

            "method": "post",

            "endpoint": "post",

            "responses": [

                {

                    "uuid": "",

                    "body": "{ \"test_response\": \"POST OK\" }",

                    "latency": 0,

                    "statusCode": 201,

                    "label": "Created",

                    "headers": [

                        {

                            "key": "",

                            "value": ""

                        }

                    ],

                    "filePath": "",

                    "sendFileAsBody": false,

                    "rules": [],

                    "rulesOperator": "OR",

                    "disableTemplating": false

                }

            ],

            "enabled": true,

            "randomResponse": false

        }

    ],

    "proxyMode": false,

    "proxyHost": "",

    "https": false,

    "cors": true,

    "headers": [

        {

            "key": "Content-Type",

            "value": "application/json"

        }

    ],

    "proxyReqHeaders": [

        {

            "key": "",

            "value": ""

        }

    ],

    "proxyResHeaders": [

        {

            "key": "",

            "value": ""

        }

    ]

}

 

Bitte ersetzen Sie <PORT>, <PATH_TO_PFX_FILE> und <PASSWORD_FOR_PFX_FILE> durch die tatsächlichen Werte.
Bei der Ausführung unter Node.js kann <PATH_TO_PFX_FILE> ein absoluter Pfad sein.

Bei der Ausführung unter Docker muss <PATH_TO_PFX_FILE> ein relativer Unix-Pfad zu dem Docker-Mountpoint sein, den Sie im nächsten Abschnitt erstellen.

Hinweis: Sie können auch eine Zertifikatsdatei und eine Schlüsseldatei anstelle der pfx-Datei angeben. In diesem Fall verwenden Sie "type": "CERT" in der Konfigurationsdatei und füllen Sie die entsprechenden Felder certPath und keyPath.


Mockoon-cli ausführen

Ausführen unter Node.js

Verwenden Sie den folgenden Befehl, um den mockoon-cli-Server bei einer Installation über Node.js zu starten:
mockoon-cli start --data <PATH_TO_ENVIRONMENT_JSON>

Ausführen unter Docker

Bitte verwenden Sie den folgenden Befehl, um den Mockoon-Server zu starten, wenn er über Node.js installiert wurde:


docker run -d --mount type=bind,source='<DOCKER_MOUNT_PATH>',target=/data,readonly -p <PORT>:<PORT> mockoon/cli:latest --data data/mockoon_environment.json --port <PORT>


Hinweise:
Ihr <DOCKER_MOUNT_PATH> muss die PFX-Datei für HTTPS und die Umgebungs-JSON-Datei enthalten. Ihre relativen Pfade zum Einhängepunkt müssen in der Befehlszeile und im JSON der Konfiguration angegeben werden.
Die Vorkommen von <PORT> müssen durch den Port ersetzt werden, den Sie in Ihrem Umgebungs-JSON angegeben haben.

Endpunkt-URLs

Sobald mockoon-cli ausgeführt wird, sind die folgenden Endpunkte auf dem Host verfügbar:

  • Für GET-Anfragen: https://<HOST>:<PORT>/get

  • Für POST-Anfragen: https://<HOST>:<PORT>/post

Der Response-Body sieht wie folgt aus:

  • { "test_response": "GET OK" }

  • { "test_response": "POST OK" }


HINWEIS: In einigen unserer Blogs sind die Endpunkte so angegeben, wie sie von der GUI-Version bereitgestellt werden. Wenn Sie den aktuellen Blog hier verwenden, um Ihre Einrichtung durchzuführen, beachten Sie bitte die unterschiedlichen Endpunkte und Ergebnisse, wenn Sie spätere Tests durchführen.