我已经成功录制并重播了我的sharepoint webtest,但是在一两个星期之后,当我在Visual Studio中重放时,我收到'403 FORBIDDEN'错误。
我了解X-RequestDigest已过期证书/令牌详细信息,需要针对我的请求中的每次运行进行更新。 但是,我无法在记录的Web测试中找到前面的X-RequestDigest标头值。
我能够从响应头中提取但是我需要在响应之前将值绑定到请求吗? 有人可以给我一个代码/方法从Sharepoint页面中提取X-RequestDigest标头值并在我的Visual Studio Webtest中使用它吗?
答案 0 :(得分:1)
您的问题的答案可能会有所不同,具体取决于您使用的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”}}}
从这里,您需要使用Extract Text提取器提取“FormDigestValue”值。将开头设置为:“FormDigestValue”:“结束于:”
如果您希望使用Fiddler作为AdrianHHH建议,您可能还想使用我们的免费StresStimulus附加组件,它将自动创建所有提取器和参数,如此处所述http://www.stresstimulus.com/blog/post/visual-studio-load-testing-fixing-playback-errors-in-web-tests。您只需记录测试场景,将其另存为webtest并在Visual Studio中打开。这样,您不必手动创建任何提取器和参数。