2015-01-23 14 views
5

Mein aufgezeichneter Web-Performance-Test hat mehrere "String body" -Felder und ich muss ihre Inhalte zur Laufzeit innerhalb eines Web-Test-Request-Plugins ändern.Wie kann ich ein "String body" -Feld in einem Webtest von einem Plugin lesen, aktualisieren und ersetzen?

Das Feld "String body" ist nicht direkt aus den verschiedenen Feldern und Unterfeldern der PreRequestEventArgs verfügbar.

Wie lese ich das Feld "String body" in eine string aus und schreibe es nach der Änderung zurück?

Antwort

4

Um das Feld "String body" auszulesen, wandeln Sie den Anfragetext in eine StringHttpBody um, die die Zeichenfolge verfügbar macht. Um es zurückzuschreiben, erstellen Sie ein neues StringHttpBody-Objekt, das die aktualisierte Zeichenfolge enthält, und schreiben Sie es in die Anforderung.

Mit einem Plugin muss ich das "String body" Feld einer Anfrage in einem Web-Performance-Test ändern. Ich kann auf den Inhalt mit dem folgenden Code zugreifen:

public override void PreRequest(object sender, PreRequestEventArgs e) 
{ 
    if (e.Request.Body == null) { return; } 
    StringHttpBody httpBody = e.Request.Body as StringHttpBody; 
    if (httpBody == null) { return; } 
    string body = httpBody.BodyString; 

    string updatedBody = UpdateBody(body); 

    StringHttpBody newBody = new StringHttpBody(); 
    newBody.BodyString = updatedBody; 
    e.Request.Body = newBody; 
}