如何从Web测试记录器插件访问表单发布参数

时间:2013-04-30 13:03:39

标签: visual-studio testing web-testing

使用Visual Studio 2012创建Web测试。

如何从网络测试记录器插件访问表单帖子参数?通过Visual Studio的智能或MSDN可以看到录制的网络测试的大多数方面,但我找不到表格后期参数。

我正在测试一个以“有趣”的方式使用表单发布参数的网站。到目前为止,我们已经在.webtest文件中手动编辑了XML,但这很容易出错。所以我想在网络测试记录器插件中修改它们。

3 个答案:

答案 0 :(得分:1)

可以通过Web请求的正文字段在Web测试记录器插件中访问表单发布参数,但需要将正文转换为正确的类型。记录器插件提供记录的Web测试作为(a)字段参数,测试的Items包括各个请求。它们还包括评论等。作为Item的{​​{1}}可能有一个WebTestRequest字段,在转换后会提供表单发布参数。此代码显示了一个插件,该插件通过此处未显示的Body方法显示表单发布参数的一些详细信息。内部循环可以用代码替换,以修改,删除或添加新的表单后置参数。

WriteLine

可以通过代码中public override void PostWebTestRecording(object sender, PostWebTestRecordingEventArgs e) { foreach (WebTestItem wti in e.RecordedWebTest.Items) { WebTestRequest wtiwtr = wti as WebTestRequest; if (wtiwtr != null) { FormPostHttpBody formBody = wtiwtr.Body as FormPostHttpBody; if (formBody == null) { // no formBody. } else { WriteLine("Have {0} form post parameters", formBody.FormPostParameters.Count); foreach (FormPostParameter fpp in formBody.FormPostParameters) { WriteLine("FPP '{0}' = '{1}'", fpp.Name, fpp.Value); } } } } } 的这些演员阵容访问录制的网络测试的其他几个部分。

wti

答案 1 :(得分:0)

这有点难看但我在调试使用PreRequestDataBinding方法的插件时能够找到它。将鼠标放在'e'上,展开请求 - >身体 - > [Microsoft.VisualStudio.TestTools.WebTesting.FormPostHttpBody] - > FormPostParameters。但由于保护级别,您将无法编辑该值。

我最终做的是将网络测试转换为编码网络测试。您可以通过右键单击Web测试设计器视图的顶层,然后选择生成代码来执行此操作。查看编码的Web测试,将允许您修改表单发布参数。寻找像这样的东西......

request1Body.FormPostParameters.Add("YourFormPostName", "value");

答案 2 :(得分:0)

你可以在WebTestRequestPlugin的PreRequest方法中添加这样的表单post参数 -

     FormPostHttpBody form = new FormPostHttpBody();
     FormPostParameter par = new FormPostParameter();
     par.Name = "name";
     par.Value = "1";
     form.add(par);
     e.Request.Body = form;