2012-10-19 3 views
8

Ich baue einen sehr einfachen Testplan auf.Cookie Manager von Apache JMeter fügt das Cookie nicht zur POST-Anfrage hinzu

  1. Anmeldung: POST, ein Sitzungscookie wird zurückgegeben.
  2. Erhalten Sie den Status: GET, ein Benutzerstatus wird zurückgegeben.
  3. Erstellen Sie eine Ressource: POST, JSON-Rumpf wird für die Ressource bereitgestellt.

Also meine 'Testplan' sieht aus wie:

  • Testplan
    • Thread-Gruppe
      • HTTP Request Defaults
      • HTTP Cookie Manager
      • Login (HTTP-Request Sampler: POST)
      • Staat (HTTP-Request-Sampler: GET) Get
      • Ressource erstellen (HTTP-Request-Sampler: POST)

Das Cookie von 'Login' erzeugt wird zu 'Status' richtig.
Aber 'Create Resource' hat kein Cookie. Ich habe ihre Bestellung geändert, aber es hilft nicht. Ich habe zuerst die Standardoptionen verwendet und einige Optionen geändert, aber es hilft auch nicht.

Ist es ein Fehler von JMeter? oder nur POST HTTP-Anfrage ist nicht in der Lage, Cookie zu haben?
Bitte geben Sie mir einen Rat.

[GELÖST]
Ich bemerkte, dass es auf den Pfad bezieht, nicht das Verfahren.
Sie möchten sowohl die Domäne des Cookies als auch den Pfad betrachten. Ich meine, der Pfad und die Domäne eines Cookies könnten serverseitig über den Set-Cookie-Header definiert werden.

+0

Vielen Dank für die Aktualisierung Ihrer Frage mit Ihrer Lösung. Das hat mir geholfen. –

+1

Hallo, kannst du bitte erklären..die Schritte wie du das gemacht hast ..? – behinddwalls

+0

Nur für den Fall, dass jemand das selbe Problem hat, löste die Aktivierung der folgenden Weiterleitungen das Cookie-Problem für mich – mezzie

Antwort

3

Eine andere Lösung besteht darin, CookieManager.check.cookies = false in jmeter.properties zu setzen, die normalerweise neben dem Jme- ter-Startskript im Bin sitzt.

JMeter denkt aus bestimmten Gründen, dass Sie den Pfad =/etwas in einem Cookie nicht setzen können, wenn Sie sich auf http:/somesite/somethingselse befinden. Das heißt, der Pfad muss mit dem Pfad übereinstimmen, auf dem Sie sich gerade befinden.

Ich habe noch nie erlebt, dass ein Browser diese Einschränkung durchsetzt, wenn sie tatsächlich existiert. Ich habe mehrere Seiten gesehen und geschrieben, die diese Technik verwenden, um einen sicheren Cookie zu setzen und dann jemanden an/admin weiterzuleiten.

Ich wünschte, diese Option wäre zumindest in der GUI, so dass ich die Eigenschaftendatei nicht ändern musste. Ich denke, BlazeMeter ist schlau genug, um zu überprüfen, wo flood.io nicht ist. Wenn es nach mir ginge, würde ich einfach den Code entfernen, der das vollständig überprüft. Warum sollte der Belastungsprüfer schwerer sein als es sein muss?