X-RequestDigest:运行 记录 Sharepoint 页面的网络测试时出现错误

X-RequestDigest: Getting error while running recorded web test of sharepoint page

我已经成功地记录并回放了我的 sharepoint 网络测试,但是一两周后,当我在 Visual Studio 中回放时出现“403 FORBIDDEN”错误。

我了解 X-RequestDigest 已过期 certificate/token 详细信息,需要针对我请求中的每个 运行 进行更新。 但是,我无法在我记录的网络测试中找到前面的 X-RequestDigest header 值。

我可以从响应中提取 header 但我需要在响应之前将值绑定到请求? 有人可以给我 code/method 从 Sharepoint 页面中提取 X-RequestDigest header 值并在我的 Visual Studio 网络测试中使用它吗?

您问题的答案可能因您使用的 SharePoint 版本而异。通常,x-requestdigest 值可以从出现在您需要参数化的请求之前的 _api/contextinfo 中提取。这是一个 json 响应主体,如下所示:

{"d":{"GetContextWebInformation":{"__metadata":{"type":"SP.ContextWebInformation"},"FormDigestTimeoutSeconds":1800,"FormDigestValue":"0x258D3700E8E516F8E320BAF6FEFDDC271C54C8C44A1E5DBE8B9CBE6ED2A77EDCCF88CAA901790245D3E9B518FB31AA9B345B0E232C93CD39D4E12999499B7414,6 Jun 2017 10:26:21 -0000","LibraryVersion":"16.0.5521.1202","SiteFullUrl":"https://xxx.sharepoint.com","SupportedSchemaVersions":{"__metadata":{"type":"Collection(Edm.String)"},"results":["14.0.0.0","15.0.0.0"]},"WebFullUrl":"https://xxx.sharepoint.com/Sample_Site"}}}

从这里您需要使用提取文本提取器提取“FormDigestValue”值。设置开头为:"FormDigestValue":" 结尾为:“

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