2013-07-17 1 views
0

Я пытаюсь объединить строки в JMeter BeanShell постпроцессор, но почему-то ее не работает, кажется, что путь Java обрабатывает многострочный строка здесь не работает:Строка конкатенации Jmeter + BeanShell

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>"; 

я могу сцепить простая одна строка, но когда дело доходит до нескольких строк, она не работает.
Однолинейные:

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

ответ

1

Ничего особенного, но:

  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: - использовать >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>"; 
    

Как выглядит usage of StringBuilder.append() is a bit better way.

+0

Спасибо !!! Это сработало!!!! – Akshay