-1

Ich verwende das k6 Docker-Image, um Auslastungstests auszuführen. Ich habe eine Bibliotheksdatei und eine Testskriptdatei im selben Verzeichnis.Importieren eines lokalen JS-Moduls beim Ausführen von K6 über Docker

Aber wenn ich versuche, die Modul-Datei zu öffnen, bekomme ich diesen Fehler:

time="2017-10-12T06:59:58Z" level=error msg="GoError: open /library.js: no such file or directory 
    at native 
    at -:55:95(51) 

Der Befehl gegeben war: docker run -i loadimpact/k6:latest run -i 1 - <test.js

In meinem test.js Skript, die Import-Anweisung wie folgt aussieht:

import {fn} from "./library.js";

+1

Sie beginnen eine Frage und in 1 Sekunde haben Sie auch die richtige Antwort dafür? Sammelst du Abzeichen? –

+0

Nein :) Es ist nicht unüblich, FAQ Fragen und Antworten zu Stackoverflow hinzuzufügen. In der Tat, wenn Sie jemals eine Frage gestellt haben, werden Sie hier bemerken, ist sogar ein Kontrollkästchen, mit dem Sie auf Ihre eigene Frage antworten können, wenn Sie es fragen. Siehe diesen Link für weitere Informationen: https://meta.stackexchange.com/questions/133522/encyclopedia-stack-exchange-vs-commercial-products – Ragnar

Antwort

1

die Docker Behälter hat keinen Zugang zu Ihrem Arbeitsverzeichnis auf dem Host-Rechner. Sie müssen es in den Docker-Container einhängen. Versuchen Sie folgendes:

docker run -i -v $(pwd):/mnt loadimpact/k6:latest run - <test.js

Sie werden auch die Import-Anweisung ändern müssen, so heißt es:

import {fn} from "/mnt/library.js";

..und, hat natürlich library.js zu sein in Ihr aktuelles Arbeitsverzeichnis, wenn Sie den docker-Befehl ausführen.

(Beachten Sie, dass Sie benötigen, um -i 1 nicht hinzufügen, wenn k6 Ausführung, 1 Iteration ist die Standardeinstellung)

Und schließlich, wenn ich du wäre, würde ich wahrscheinlich überspringen auch die Rohrleitungen von test.js zu stdin, vorausgesetzt, dass Sie sowieso ein Verzeichnis mounten. Sie tun können: docker run -v $(pwd):/mnt loadimpact/k6:latest run /mnt/test.js

Das bedeutet, dass Sie einen Docker Container, in der aktuellen Arbeitsverzeichnis auf dem Hostcomputer auf/mnt montiert werden fängt (im Docker-Containern), dann sagen Sie k6 „Test ausführen .js "befindet sich in/mnt (der aktuelle WD auf dem Host) und test.js importiert eine .js-Datei, die sich ebenfalls in/mnt befindet (aktueller WD auf dem Host). Also sollten sich alle Dateien in Ihrem Arbeitsverzeichnis befinden.

Verwandte Themen