【发布时间】:2015-09-28 11:36:42
【问题描述】:
我正在研究一种粗略的方法来测试 Web 应用程序的性能。基本上,我想从 .NET 向返回一些结果的特定 URL 执行 Web 请求。我遇到的问题是我似乎得到了某种类型的中间页面作为结果;结果应该是来自数据库的对象列表,页面标题为“高级搜索结果”,但我的代码正在提供标题为“正在工作...”的内容。我最初试图在 PowerShell 中执行此操作,并且似乎得到了相同的结果,所以我认为我在 C# 中可能会有更好的运气。这是我目前所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.IO;
namespace QTesting
{
class Program
{
static void Main(string[] args)
{
WebRequest wr = WebRequest.Create("https://u.spart.com/u.Int/AdvSearchResults/Person/220001305");
wr.Method = "GET";
wr.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = wr.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
response.Close();
}
}
}
最终,如果我能做到这一点,我想收集返回这些结果所需的时间。
谢谢!
托尼
【问题讨论】:
-
好的,所以从捕获 Fiddler 中的流量来看,有一个 200 结果是“等待...”页面,然后是 302,然后是另一个 200,其中包含所有数据我在寻找。这不是说它正在重定向吗?
-
进一步分析表明它正在重定向,因为如果我关闭来自 Safari Jones 推荐的重定向,结果来自 302 页面......它必须是某种 Ajax 或 JS 运行填充page... 我会从原始页面中寻找什么属性来发送后续请求?那不是 ResponseUri 吗?在获得 ResponseUri 后,我尝试启动另一个 WebRequest 并且得到相同的结果......我需要以某种方式发出请求吗?
-
啊,我想我已经确定了问题所在。有一个正在提交的隐藏表单。我将不得不更深入地研究这个......有谁知道发布到网络服务器或完整的来回过程的任何好的例子?
标签: .net c#-4.0 performance-testing