Вообщем, ситуация следующая: ответом приходит файл но кодирован в base64 (soap протокол). Теоретически я знаю что там должно быть, практически - полученный код я могу проверить через внешние программки, но автоматически переводить и сохнарять в файл пока не могу понять как. Да, я видел уже такие топики на форуме продукта, на стековерфлоу - но чет я так и не сумел все напилить (
Ну а язык какой используете?
для питона воть - 19.6. base64 — Base16, Base32, Base64, Base85 Data Encodings — Python 3.4.10 documentation
в soapui юзаю груви
В соапUI есть встроенный декодер, используете его, в мануалах есть инфа.
Я кодирую в Base64 XML сод вот этим методом
def toBase64(def cda) {
new String(Base64.encodeBase64(cda.getBytes(“UTF-8”)), “UTF-8”)
}
и складываю в CustomProperties.
из base64 в файл нужно а не с стринга в бейс64
У нас подобное используется на проекте. Точнее, на смежном проекте. Там сервисы получают строку в Base64, а потом ответ от сервисов приходит тоже в Base64, его декодируем и пишем в отдельный TestStep в Request, чтобы было в читабельном виде. Но, куда писать - не суть важно. Там можно хоть в log.info все отправлять. Просто мне удобнее было работать с тестам, в которых все внутри себя, а не разбросано по файлам на жестком диске.
так как декодируете то? пример
def xml = new XmlSlurper().parseText(response);
String encodedResponse = xml;
byte[] decodedBytes = encodedResponse.decodeBase64();
String encodedResponseStr = new String(decodedBytes);
def request = testRunner.testCase.getTestStepByName(stepName);
def property = request.getProperty(“request”);
def xmlString = com.eviware.soapui.support.xml.XmlUtils.prettyPrintXml(encodedResponseStr);
property.setValue(xmlString);
response - определяете сами, это ответ от сервиса со строкой в Base64
stepName - аналогично, имя степа в которой пишем ответ (я его делал Disabled). Можно вместо этого писать в файл или куда угодно. Хоть в log.info
По сути читабельный ответ в одну строку уже имеется в переменной encodedResponseStr, далее просто украшательства для себя.
P.S. я знаю что это быдлокод. Мне главное, чтобы он работал.