Ich verwende Visual Studio Ultimate 2013 und habe einen Belastungstest, der einen Webtest mit einer Anzahl von Anforderungs- und Webtest-Plugins verwendet.Visual Studio Web Test Fehlerbehandlung
In meinem PostRequest-Plugin überprüfe ich den HTTP-Statuscode der Antwort und meldest einen Fehler in einem WebTest.Context-Parameter, wenn ein HTML-Code von über 400 zurückgegeben wird. Ich möchte das im PostTransaction WebTest Plugin abholen und eine Datenbanktabelle aktualisieren. Das Problem ist, dass der Test abgebrochen wird, wenn das Framework den Fehler erkennt und das PostTransaction-Plugin nicht aufgerufen wird.
Ich habe ein PostWebTest-Plugin hinzugefügt, von dem ich dachte, es würde aufgerufen werden, wenn die Test-Iteration abgebrochen wurde, aber es schlägt niemals, wenn eine Anfrage fehlschlägt. Es trifft es, wenn der Test erfolgreich ist. Was vermisse ich?
public override void PostRequest(object sender, PostRequestEventArgs e)
{
...
statusCode = e.Response.StatusCode.GetHashCode();
If (statusCode > 400)
{
e.WebTest.Context["TransactionFailCount"] = 1;
}
}
public override void PostTransaction(object sender, PostTransactionEventArgs e)
{
int transactionFailCount = Convert.ToInt32(e.WebTest.Context["TransactionFailCount"]);
if (transactionFailCount > 0)
failCount = 1;
else
passCount = 1;
...
base.PostTransaction(sender, e);
}
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
base.PostWebTest(sender, e);
}
Dank
Danke Adrian. Das "Wenn" war einfach ein Tippfehler in der Post und ich erbte den Code für den Erhalt des Statuscodes. Ich habe es jetzt korrigiert, Sie sind zu Recht darauf hingewiesen. Ich werde das "Stop on Error" sicher ausschalten und es in meinem Code behandeln. –
Bitte lesen Sie die [help] Seite, was es bedeutet, wenn die Antwort akzeptiert wird, siehe http://stackoverflow.com/help/accepted-answer. Wenn Ihre Frage nicht beantwortet wurde, bearbeiten Sie sie bitte, um die fehlenden Details zu erklären. – AdrianHHH