如何模拟一系列网页的使用?

时间:2009-07-07 10:32:44

标签: asp.net winforms httpwebrequest postback

我有一个用ASP.Net 3.5 SP1编写的简单网页序列。

  • Page1 - 登录表单.... txtUsername,txtPassword和cmdLogon
  • 第2页 - 菜单(使用DevExpress ASP.Net控件创建)
  • Page3 - 如果用户在第2页中选择了正确的菜单选项,则服务器重定向到的页面

我想创建一个线程程序来模拟许多试图使用这个页面序列的用户。

我设法创建了一个主机Winforms应用程序,为每个“用户”启动一个新线程 我进一步设法完成了WebRequest的基础知识,足以执行检索登录页面本身的请求。

    Dim Request As HttpWebRequest = TryCast(WebRequest.Create("http://MyURL/Logon.aspx"), HttpWebRequest)
    Dim Response As HttpWebResponse = TryCast(Request.GetResponse(), HttpWebResponse)
    Dim ResponseStream As StreamReader = New StreamReader(Response.GetResponseStream(), Encoding.GetEncoding(1252))
    Dim HTMLResponse As String = ResponseStream.ReadToEnd()
    Response.Close()
    ResponseStream.Close()

接下来我需要模拟用户在2个TextBox中输入信息并按下登录....我有一个预感,这要求我在请求中添加正确的“PostData”类型。在提交之前。

但是我也担心“ViewState”可能是一个问题。

关于PostData我是否正确? 如何将postData添加到请求中?

我是否需要关注Viewstate?

更新虽然我很欣赏Selenium或类似产品对于验收测试很有用,但我发现它们对于负载测试的数量而言相当笨拙。

我会不想加载100个Firefox或IE实例,以模拟100个用户访问我的网站。

这就是我希望采用ASPNet HttpWebRequest路由的原因。

3 个答案:

答案 0 :(得分:0)

Selenium - http://seleniumhq.org/会有用吗?

答案 1 :(得分:0)

我会选择Selenium。使用Selenium IDE,您只需单击所需的序列即可生成测试。

您也可以使用Selenium Remote Control并自行编程测试 - 或者您可以将它们由Selenium IDE生成并粘贴到Selenium RC项目中。

硒值得一试! (但你可以看看Watir作为另一种选择)享受!

答案 2 :(得分:0)

在我的公司,我们正在使用Jmeter。 JMeter可以模拟Web请求并提供非常详细的统计信息。另外,我从你的一条评论中注意到,你想要模拟多个用户,我们正在配置jmeter来做到这一点。