url 中带有 session-id 的 Webtest
我们有一个 ASP.Net 站点,它将您重定向到显示会话 ID 的 URL。像这样:
http://localhost/(S(f3rjcw45q4cqarboeme53lbx))/main.aspx
这个每个请求的 id 都是唯一的。
是否可以使用标准的 Visual Studio 2008/2010 Webtest 来测试该网站?我怎样才能提供测试这些数据?
我必须使用相同的 id 调用几个不同的页面。
We have an ASP.Net site that redirects you to a url that shows a session-id. like this:
This id is unique with every request.
Is it possible to test this site using a standard visual studio 2008/2010 webtest? How can I provide the test this data?
I have to call a couple of different pages using that same id.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,做到这一点相对容易。然而,您将需要创建一个编码的网络测试。
在我的示例中,我们有一个登录帖子,它将返回包含会话字符串的 url。
就在我们向枚举器发出登录发布请求(request3)之后,我调用以下内容。
其中 GetUrlCookie 是这样的:
一旦您获得了会话 cookie 字符串,您就可以在请求/发布的任何后续 url 中轻松替换它
例如,
我为我的代码如此粗糙表示歉意,但它在我的项目中已被弃用,并且是从代码库的第一个版本中提取的 - 并且说它很简单:)
对于任何负载测试,根据您的应用程序,您可能必须提出一个存储过程来调用,以在每次运行测试时提供不同的登录信息。
请注意,由于无法提前确定响应 url,因此对于登录帖子,您必须暂时关闭 urlValidationEventHandler。为此,我将validationruleeventhandler存储在本地变量中:
这样就可以根据需要打开和关闭它:
另一种方法是编写您自己的代码,例如这样(从Visual Studio代码反映并更改为不区分大小写。
Yes, it is relatively easy to do this. You will need to create a coded webtest however.
In my example we have a login post that will return the url including the session string.
Just after the we yield the login post request (request3) to the enumerator I call the following.
Where GetUrlCookie is something like this:
Once you have the session cookie string, you can substitute it really easy in any subsequent urls for request/post
e.g.
I apologise for my code being so rough, but it was deprecated in my project and is pulled from the first version of the codebase - and for saying it was easy :)
For any load testing, depending on your application, you may have to come up with a stored procedure to call to provide distinct login information each time the test is run.
Note, because the response url cannot be determined ahead of time, for the login post you will have to temporarily turn off the urlValidationEventHandler. To do this I store the validationruleeventhandler in a local variable:
So can then turn it on and off as I require:
The alternative is to code your own such as this (reflectored from the Visual Studio code and changed to be case insensitive.