0

JMeter BeanShell PostProcessor で文字列を連結しようとしていますが、どういうわけか機能していません。Java が複数行の文字列を処理する方法がここでは機能しないようです:

String poXML="<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Header/><S:Body><ns7:NewPORequest " +    "xmlns:ns2=\"http://services.portal.com/pro/common\" xmlns:ns5=\"http://services.portal.com/pro/po\" + "xmlns:ns7=\"http://services.portal.com/proc/ws\">" +
"<ns7:tracingLevel>OFF</ns7:tracingLevel><ns7:userId>TestUtil</ns7:userId><ns7:applicationId>RF</ns7:applicationId>" +
"<ns7:userType>Buyer</ns7:userType><ns5:PurchaseOrder><ns5:poExternalId>XXX-930220</ns5:poExternalId>" +
"<ns5:repairOrderNumber>vars.get("OrderNumber")</ns5:repairOrderNumber>";

単純な1行を連結できますが、複数行になると機能しません。
単線:

print("PO XML="+"<ns5:repairOrderNumber>"+vars.get("OrderNumber")+"</ns5:repairOrderNumber>");
4

1 に答える 1

2

特別なことは何もありませんが:

  1. 近くに閉じ引用符があり...xmlns:ns5=\"http://services.portal.com/pro/po\" + "xmlns...ません - あるべき...xmlns:ns5=\"http://services.portal.com/pro/po\"" + "xmlns...です。
  2. エスケープ文字がありませんrepairOrderNumber>vars.get("OrderNumber")</ns5:-結果に文字列自体を含める場合 (つまり)、または個別に連結して式を変数の値に解決する場合 (2 番目のサンプルのように) に使用します。>vars.get(\"OrderNumber\")<vars.get("OrderNumber")+ vars.get("OrderNumber") +

    String poXML="<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"><S:Header/><S:Body><ns7:NewPORequest"+" xmlns:ns2=\"http://services.portal.com/pro/common\""+" xmlns:ns5=\"http://services.portal.com/pro/po\""+" xmlns:ns7=\"http://services.portal.com/proc/ws\">"+"<ns7:tracingLevel>OFF</ns7:tracingLevel><ns7:userId>TestUtil</ns7:userId><ns7:applicationId>RF</ns7:applicationId>"+"<ns7:userType>Buyer</ns7:userType><ns5:PurchaseOrder><ns5:poExternalId>XXX-930220</ns5:poExternalId>"+"<ns5:repairOrderNumber>"+vars.get("OrderNumber")+"</ns5:repairOrderNumber>";
    

同様に、 StringBuilder.append() の使用は少し良い方法のようです。

于 2013-07-17T17:23:04.597 に答える