2012-08-27 12 views
6

¿Cómo puedo pasar a un campo/valor que se ser parte de la respuesta recibida de la solicitud actual como un parámetro para el próximo solicitud?valores de uso web de prueba en respuesta como parámetros para la siguiente solicitud

Solo puedo configurar parámetros de forma POST estáticos. ¿Hay alguna manera de hacer esto en la interfaz de usuario disponible para configurar la prueba web?

enter image description here

He buscado en torno, pero estos parecen posible con jMeter y otros marcos de prueba web. Y ver eso me lleva a renunciar (por ahora) y comenzar a explorar el método de Prueba web codificada mientras tanto.

Cualquier sugerencia/sugerencia apreciada.

Respuesta

4

Pude hacer esto después de investigar un poco. Resulta que es bastante simple (es decir, con la prueba codificada).

. 
. 
. 
var request1 = new WebTestRequest("http://localhost/Home/Index"); 
var sessionId = ""; 
request1.ExtractValues += (s, e) => { 
sessionId = 
    e.Response.HtmlDocument.HtmlTags.SingleOrDefault(tag => 
    tag.Name == "somename" 
    && tag.Attributes.Any(a => a.Name == "attrName" 
    && a.Value == "attrValue"));  
}; 

yield return request1; 

Entonces,

var request2 = new WebTestRequest("http://localhost/SomeController/Index/"); 
var request2Body = new FormPostHttpBody(); 
request2Body.FormPostParameters.Add("sessionId", sessionId); 
request2.Body = request2Body; 

yield return request2; 

Si alguien sabe de un mejor enfoque favor publicar una respuesta.

1

Sé que esta es una vieja pregunta sobre Visual Studio 2012, sin embargo, quizás esto podría ayudar a alguien que intenta conseguir esto para Visual Studio 2015. Probablemente haya muchas formas de hacerlo; Así es como yo he manejado que:

  1. Para el inicio de sesión Request, configurar una regla de extracción : clic derecho en el Request y seleccione Add Extraction Rule.... Esto le permitirá almacenar datos de la respuesta para usar en solicitudes posteriores. Hay varias formas de extraer los datos, como desde un campo POST. Los datos se almacenan en una variable con nombre, Context Parameter Name. Supongamos que ha establecido esto en sessionid.
  2. Agregué todas las direcciones URL adicionales a la solicitud original usando Add Dependent Request. Puede agregar acceso a la variable de contexto en cualquier lugar rodeándola con corchetes dobles: {{sessionid}}.
Cuestiones relacionadas