Web测试将响应中的值用作下一个请求的参数

时间:2012-08-27 09:50:33

标签: c# asp.net asp.net-mvc testing visual-studio-2012

如何将 作为下一个请求的参数从当前请求收到的响应中的一部分传递一个字段/值?

我只能设置静态表单POST参数。有没有办法在可用的UI中进行配置Web测试?

enter image description here

我已经四处寻找,但这些似乎可以通过jMeter和其他网络测试框架实现。看到这些导致我放弃(现在)并在此期间开始探索编码网络测试方法。

任何建议/指示赞赏。

1 个答案:

答案 0 :(得分:4)

经过一番挖掘后我才能做到这一点。结果很简单(即使用编码测试)。

.
.
.
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;

然后,

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

yield return request2;

如果有人知道更好的方法,请发表答案。