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解決了這兩個問題。 –

相關問題