1

我已经成功录制并重播了我的Sharepoint webtest,但一两周后,我在Visual Studio中播放时出现'403 FORBIDDEN'错误。X-RequestDigest:在运行录制的Sharepoint网页测试时出现错误页面

我知道X-RequestDigest已过期证书/令牌详细信息,并且需要为我的请求中的每次运行更新。 但是,我无法在记录的Web测试中找到前面的X-RequestDigest标头值。

我能够从响应头中提取,但我需要在响应之前将值绑定到请求? 有人可以给我一个代码/方法从Sharepoint页面提取X-RequestDigest头值,并在我的Visual Studio Webtest中使用它?

+0

你写*“我无法在我的记录的Web测试请求部分中查找前面的X-RequestDigest标头值“*。您应该在早期的响应中查找值,而不是在请求中。 – AdrianHHH

+0

@AdrianHHH:我也试过。 – shenQA

+0

有些值很难用Visual Studio找到,你可以手动执行脚本并使用Fiddler进行记录,然后在Fiddler日志中搜索该值。 – AdrianHHH

回答

0

对您的问题的回答可能会有所不同,具体取决于您使用的SharePoint版本。通常,x-requestdigest值可以从需要参数化的请求之前出现的_api/contextinfo中提取。这是一个JSON响应主体,其看起来如下:

{ “d”:{ “GetContextWebInformation”:{ “__元数据”:{ “类型”: “SP.ContextWebInformation”}, “FormDigestTimeoutSeconds”:1800, “FormDigestValue”: “0x258D3700E8E516F8E320BAF6FEFDDC271C54C8C44A1E5DBE8B9CBE6ED2A77EDCCF88CAA901790245D3E9B518FB31AA9B345B0E232C93CD39D4E12999499B7414,6 2017年6月10点26分21秒 -0000”, “LibraryVersion”: “16.0.5521.1202”, “SiteFullUrl”: “https://xxx.sharepoint.com”, “SupportedSchemaVersions”:{ “__元数据”:{”类型 “:” 集(Edm.String) “},” 结果 “:[” 14.0.0.0" , “15.0.0.0”]} “WebFullUrl”: “https://xxx.sharepoint.com/Sample_Site”}}}

从这里您需要使用提取文本提取器提取“FormDigestValue”值。将起始位设置为:“FormDigestValue”:“结束于:”

如果您希望使用Fiddler作为AdrianHHH建议,那么您可能还想使用我们免费的StresStimulus插件,该插件将按照描述自动创建所有提取器和参数这里http://www.stresstimulus.com/blog/post/visual-studio-load-testing-fixing-playback-errors-in-web-tests。你只需要记录测试场景,将其保存为webtest并在Visual Studio中打开。这样,你不必手动创建任何提取器和参数。

+0

Sharepoint版本是2013.我一定会尝试你的方法,并让你知道 – shenQA

+0

从contextinfo获得它,就像你提到的那样。我想我应该使用stressstimulus插件来节省时间:) – shenQA

+0

@shenaz,谢谢你的更新。有时,Visual Studio Web性能测试的问题不仅仅是缺少提取器和参数,而且还有一些自定义标题默认由Visual Studio从记录的请求中删除。从压力刺激导入webtest解决了这两个问题。 –

相关问题