Rob*_*ben 8 c# asp.net testing asp.net-mvc visual-studio-2012
如何将作为从当前请求接收的响应的一部分的字段/值作为下一个请求的参数传递?
我只能设置静态表单POST参数.有没有办法在可用的UI中进行配置Web测试?
我已经四处寻找,但这些似乎可以通过jMeter和其他网络测试框架实现.看到这些导致我放弃(现在)并在此期间开始探索编码Web测试方法.
任何建议/指针赞赏.
我知道这是一个关于Visual Studio 2012的老问题,但是这可能有助于有人试图在Visual Studio 2015中实现这一点.可能有很多方法可以完成这项任务.这是我如何处理它:
Request
,请设置提取规则:右键单击Request
并选择Add Extraction Rule...
.这将允许您存储响应中的数据,以便在以后的请求中使用.有几种方法可以提取数据,例如从POST字段中提取数据.数据存储在一个命名变量中Context Parameter Name
.我们假设您已将此设置为sessionid
.Add Dependent Request
.您可以通过用双花括号括起来在任何地方添加对上下文变量的访问:{{sessionid}}
.经过一些挖掘之后,我才能够做到这一点。事实证明它非常简单(即使用编码测试)。
.
.
.
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;
Run Code Online (Sandbox Code Playgroud)
然后,
var request2 = new WebTestRequest("http://localhost/SomeController/Index/");
var request2Body = new FormPostHttpBody();
request2Body.FormPostParameters.Add("sessionId", sessionId);
request2.Body = request2Body;
yield return request2;
Run Code Online (Sandbox Code Playgroud)
如果有人知道更好的方法,请发布答案。
归档时间: |
|
查看次数: |
5552 次 |
最近记录: |