2016-08-16 3 views
0

Während wir mit WireMock einen Endpunkt vortäuschen, von dem erwartet wird, dass er JSON zurückgibt, bin ich auf ein Problem gestoßen, bei dem der erwartete JSON nicht zurückgegeben wird. Wenn Sie WireMock für seine Stubs abfragen, wird der richtige JSON am erwarteten Endpunkt angezeigt.WireMock gibt unerwartet Null zurück

Während mehrere Datenpunkte gegen meine Theorie laufen, bekomme ich normalerweise 7 erfolgreich bestandene Tests, bevor dieses Problem auftritt und der Test fehlschlägt. Das Hinzufügen eines Schlafes von etwa 5 Sekunden an der Spitze der Theorie ermöglicht jedoch, dass alle Tests bestanden werden. Wenn der Inhalt des Tests in einer Schleife eingeschlossen wird, wird ein Datenpunkt mehrere Male ausgeführt, was schließlich fehlschlägt. Das Hinzufügen im Schlaf ermöglicht es, weiter zu laufen, aber schließlich bietet es eine Null.

Ist dies ein bekanntes Problem? Gibt es eine geeignete Problemumgehung?

+0

Wie können wir helfen, wenn Sie keinen Code zeigen .. – Javant

+0

@Javant Das Problem scheint sich nur im vollständigen Projekt manifestieren. Jeder kleine Proof-of-Concept-Test, den ich schreibe, der die gleiche Pipeline verwendet, ist erfolgreich. Ich müsste das gesamte Projekt bereitstellen, was ich nicht kann. – Tott

+0

Fügen Sie den Stub dynamisch hinzu (gibt es eine Speicherleckmöglichkeit)? Können Sie die fehlgeschlagenen Anfragen identifizieren? Prüfen Sie, ob die manuelle Abfrage mit ihnen das Problem reproduzieren kann. Wenn nicht, versuchen Sie, ein Hochlast-Szenario mit der gleichen Anfrage zu simulieren. –

Antwort

0

Es stellte sich heraus, es war Hystrix Kurzschluss. Jeder Testfall stoppte einen von drei Endpunkten, wobei die anderen beiden fehlschlugen. Nach dem siebten Test waren es 21 Anrufe und 2/3 von ihnen scheiterten. Short Circuit schaltet nach 20 Aufrufen ein, bei denen die Hälfte ausfällt.

hystrix.command.default.circuitBreaker.requestVolumeThreshold = 100

Diese aus Skipping direkt auf den Rückfall zu stoppen.