Frage

hier ist meine Situation:

Ich möchte das tun:

Ich habe eine Liste von URLs in einer MySQL-Datenbank, die ich mithilfe einer HTTP-Anforderung treffen möchte, um zu sehen, ob die Antwort ein HTTP-Statuscode von 404 ist oder nicht.

Ich habe das getan:

    .
  1. ein JDBC-Konfigurationselement hinzugefügt und konfiguriert.
  2. Ein JDBC-Anforderungs-Sampler hinzugefügt und konfiguriert. Grundsätzlich eine SELECT-Anweisung, die eine Tabelle mit 8 Säulen zurückgibt. Ich habe 8 Kommas getrennte Variablen für das Feld "Variable Namen" bereitgestellt, sodass die Ergebnisse der JDBC-Anforderung mit diesen Variablennamen identifiziert werden können.
  3. Erstellt einen HTTP-Anforderungs-Sampler, der in dem Feld "Servername oder IP" einen dieser Variablen $ {URL} verwendet.
  4. Obwohl die JDBC-Anforderung einwandfrei funktioniert und eine Tabelle mit einem Bündel Zeilen zurückgibt, ist das Problem damit, dass der HTTP-Anforderungs-Sampler die Variable niemals vom JDBC-Anforderungsergebnis aufgreift. Die HTTP-Anforderung sieht in der "Ergebnisbaum anzeigen" so aus:

    generasacodicetagpre.

    Ich habe diese Lösungen ausprobiert:

      .
    1. fügen Sie 'RECEICE-Antworten auf eine Datei' Listener zur JDBC-Anforderung 'speichern. Dadurch erstellt eine Datei des Typs '.lauf' und kein CSV. Hätte es ein CSV, ich hätte diese CSV-Datei verwenden können, indem ich eine CSV-Datensatz-Konfiguration erstellt. Also ist dieser Versuch fehlgeschlagen.
    2. Ich habe versucht, den Dateinamen in dem obigen Versuch zu zwingen, 'C: \ jollertest \ data.csv' immer zu verwenden. Es wird jedoch endet, wodurch eine neue Datei mit dem Namen 'C: \ jollertest \ data.csv1.clain' erstellt. Dieser Versuch fehlgeschlagen.
    3. Ich habe versucht, die URL-Spalte als $ {url_1} im Feld des HTTP-Anforderungsfelds zu verweisen. Es funktionierte. Das Problem ist jedoch nun, dass in der Ergebnisstruktur alle Anforderungen die URL von nur der ersten Zeile des Ergebnissatzes leisten. Ich sehe, dass dies an der Zeilennummer '_1' ist, die in der $ {url_1} oben angegeben ist. Ich kann dies verwenden, wenn jemand einen Weg vorschlagen kann, den '_1' in eine Variable parametrieren kann, die ich durchlaufen kann (wahrscheinlich mit einem 'Zählerelement). Ich habe ein Zählerkonfigurationselement mit dem Referenznamen 'LoopCounter' erstellt. Und verwendete diese im Feld Servername der HTTP-Anforderung:

      $ {URL _ ("$ {loopcounter}")}

    4. Aber jetzt sehen meine http-Anfragen Lamer:

      generasacodicetagpre.

      Das funktionierte auch nicht.

      Lösung 3 sieht mehr an, um nur dann zu sein, wenn ich die Parametrierung der Zeilennummer lösen könnte. Ich bin auch für JMeter-Plugin-Vorschläge offen. Ich werde alles andere aktualisieren, was ich versuche, wenn wir weitergehen.

      p.s. Bitte lassen Sie mich wissen, ob meine Frage sowieso nicht klar ist.

War es hilfreich?

Lösung

Haben Sie versucht, den HTTP-Sampler in einem FOREACH-Controller (übergeordnet) umzuwandeln, in dem die Variable für den Controller die von dem JDBC-Sampler erhaltene URL-Variable ist?

Auch die Ausgabevariable in der FOREACH ist die Variable, die Sie jetzt im HTTP-Sampler verwenden.

Auf diese Weise wird es durch jede Variable vom Anfang des Index bis zum Ende durchlaufen und den Sampler jedes Mal einmal ausführen.

Andere Tipps

in 'Antworten auf eine Datei speichern auf eine Datei' Listener, wählen Sie Kontrollkästchen "Suffix und Präfix nicht hinzufügen".Wenn Sie diese beiden Optionen überprüfen, wird sichergestellt, dass Sie einen genauen Namen der Protokolldatei erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top