我有一個來自服務器(SOAP)的XML響應,並且我正在獲取多個值。 XPath提取所有值並將它們存儲在內部,如Match_1,Match_2,Match_3等。 但我無法通過BSF後處理器訪問它們,也無法通過粘貼XML的JavaScript代碼訪問它們。它只是拒絕返回值,然後我給他們這樣的地址:${Match_1}
。jMeter - XPath提取器不允許BSF後處理器(使用JavaScript代碼)訪問多個提取的匹配項
實施例:
響應返回多contentGroupID
值。
調試採樣揭示他們:
- contentGroupID = 67
- contentGroupID_1 = 67
- contentGroupID_2 = 50
- contentGroupID_3 = 38
- contentGroupID_4 = 54
- contentGroupID_5 = 46
我們需要你SE每個下單要求這些數值,所以我們裏面添加到位XML代碼,我們需要這些值坐下:
${__javaScript
(myOutput =''; var names = {};
for (var i = 1; i <= ${contentGroupID_matchNr}; i++)
{names[i] = "${contentGroupID_" + i + "}";}
for (var j = 1; j <= ${contentGroupID_matchNr}; j++)
{myOutput =
myOutput + '<ns8:forContentGroupId><ns2:id>' + names[j] + '</ns2:id></ns8:forContentGroupId>';},
myOutput)
}
在這裏,我們<ns8:forContentGroupId><ns2:id>' + ids + '</ns2:id></ns8:forContentGroupId>
多次將XML與價值觀的一部分,比賽被XPath找到。
但是神奇的是不是發生。請求發送如下:
<ns8:forContentGroupId><ns2:id>${contentGroupID_1}</ns2:id></ns8:forContentGroupId>
<ns8:forContentGroupId><ns2:id>${contentGroupID_2}</ns2:id></ns8:forContentGroupId>
<ns8:forContentGroupId><ns2:id>${contentGroupID_3}</ns2:id></ns8:forContentGroupId>
<ns8:forContentGroupId><ns2:id>${contentGroupID_4}</ns2:id></ns8:forContentGroupId>
<ns8:forContentGroupId><ns2:id>${contentGroupID_5}</ns2:id></ns8:forContentGroupId>
如果我用JavaScript代碼設置BSF後處理器並在XML中添加一個變量,情況也會如此。
現在的問題是:地獄怎麼可以訪問這些神奇的價值?
P.S.一切正常,然後我使用ForEach控制器。但訣竅是我需要使用所有值進行單一請求,而不是一個接一個地發出多個請求。