Visual studio 2015 Web和负载测试VS 2015-从请求的上次重定向获取查询字符串

Visual studio 2015 Web和负载测试VS 2015-从请求的上次重定向获取查询字符串,visual-studio-2015,web-testing,Visual Studio 2015,Web Testing,我不熟悉VS中的web和负载测试。我没有使用记录器,因为有太多的垃圾流量需要清除。录音机对我来说往往是混淆和混淆的,而不是照亮。我正在模拟应用程序的登录过程,以便检索一个身份验证令牌,并将其传递给我要测试的服务。我一边一步一步地走着,一边看着费德勒街上的车流 因此,第1步,导航到AUT的URL。当我这样做时,我看到一系列重定向,其结果是一个新的URL,请求中有一个cookie和一个查询字符串,响应中有一个登录表单 在我的下一个请求中,我希望将前一个重定向的cookie和查询字符串包含到我现在发出

我不熟悉VS中的web和负载测试。我没有使用记录器,因为有太多的垃圾流量需要清除。录音机对我来说往往是混淆和混淆的,而不是照亮。我正在模拟应用程序的登录过程,以便检索一个身份验证令牌,并将其传递给我要测试的服务。我一边一步一步地走着,一边看着费德勒街上的车流

因此,第1步,导航到AUT的URL。当我这样做时,我看到一系列重定向,其结果是一个新的URL,请求中有一个cookie和一个查询字符串,响应中有一个登录表单

在我的下一个请求中,我希望将前一个重定向的cookie和查询字符串包含到我现在发出的请求中。目前我还没有编写代码,但正在使用测试设计器。如何检索要包含在下一个请求中的值

谢谢

可能的方法包括:

(1) 将请求上的
Follow redirects
属性设置为
False
,然后为重定向链中的每个URL创建请求。在相关位置添加提取规则,并在后续请求中使用提取的值。当只有一个重定向,或者可能只有很少的重定向时,这是正常的方法

(2) 与上面类似,但是编写一个插件来执行重定向处理,并将链中的下一个请求添加到测试中


通常Cookie和查询字符串参数是从响应中提取并写入请求的,它们通常不是从请求中提取的。VisualStudioWeb测试通常在不需要帮助的情况下处理cookie

查询字符串参数的值可以来自响应中的多个位置。如果需要特殊的cookie处理,则可以从标题字段的
ExtractHttpHeader
提取规则的响应中提取cookie

如果确实需要从请求中提取值,那么
PreRequest
插件可以在发送请求之前访问请求的各个部分

对于您试图处理的请求,我设想使用三个请求,每个请求的
Follow redirects
设置为
False
。它们是:

(一)

(二)

(三)



您可以重新考虑使用web测试记录器。我发现它在创建web测试方面做得很好。需要额外的工作来处理动态参数,但无论有无记录器,都需要此类工作。你说“有太多的垃圾流量需要清除”,但如果它真的是垃圾,那应该只需要几分钟。但是,它是正在测试的系统的一部分,如果它被删除,那么web测试是否能正确模拟正在测试的网站上的真实活动?

Ok。我能做到。但我仍然需要从后续的请求中获取cookie和查询字符串,我不知道该怎么做。因此,在我的示例中,我的第一个请求是localhost:。我没有得到回复。只重定向到localhost:。因此,在第一次重定向时,在服务器上创建一个cookie作为请求的一部分。所以我在重定向的请求部分看到了这一点。当我查看提取规则时,没有任何东西可以从第一个请求中提取(看起来PreRequest插件就是答案。谢谢。
Request: http://localhost:12345
Response: extract port number and other url fragments to context parameters `PortNumber1` and `UrlFragment1`, etc.
Request: http://localhost:{{PortNumber1}}/{{UrlFragment1}}
Response: extract redirected url to `Url2` and cookie(s) to `Cookies2`
Request: http://{{Url2}}/
    Query string parameters written to header fields,
        either by fields in the web test
        or by plugin creating the values            
Response: ...