apideck-libraries/postman-to-k6

Not working for requests Content-Type is application/xml

reinaldorossetti opened this issue · 4 comments

ERRO[0007] TypeError: Cannot read property 'RequestTransactionPOSRegistration' of undefined

var jsonObject = xml2Json(pm.response.text());
pm.environment.set(
"pdc",
jsonObject.RequestTransactionPOSRegistration.POSs.POS.Identifier
);

Does not recognize as object.

hi @reinaldorossetti

Could you share your Postman collection and postman-to-k6 configuration? That way we can use it to reproduce the faulty behaviour, which will allow us to debug & potentially fix it.

Sorry, my script only work in my company vpn. I can try to find a public api, to try to simulate.

The problem is in xml parse, the same broken:

var jsonObject = xml2Json('<RequestTransactionPOSRegistration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.43"><authentication><login>xxx</login><password /><externalLoginName /></authentication><POSs><POS><TaxId>03.361.770/0001-58</TaxId><TipoPdC>LibC</TipoPdC><Ambiente>PRD</Ambiente><ExternalId>1234</ExternalId><Identifier>1234</Identifier><Description>MASSA ROBO</Description><Status>1</Status><POSType>LibC</POSType><POSApplication /><POSApplicationVersion /><RoutingProfile>undefined</RoutingProfile><CardEntryModes><CardEntryMode>01</CardEntryMode></CardEntryModes><CardEntryModes><CardEntryMode>02</CardEntryMode></CardEntryModes><CommGroup>1136</CommGroup><CardTypes><CardType>01</CardType></CardTypes><CardTypes><CardType>02</CardType></CardTypes><InstallmentPlans><InstallmentPlan>1</InstallmentPlan></InstallmentPlans><Unattended>FALSE</Unattended><FiscalPrinter>TRUE</FiscalPrinter><Printer>TRUE</Printer><Automation>TRUE</Automation><PINPad>TRUE</PINPad><PINPadIdleMsgLine1>QA TESTE</PINPadIdleMsgLine1><PINPadIdleMsgLine2>QA TESTE</PINPadIdleMsgLine2></POS></POSs><Error><Number /><Description /></Error></RequestTransactionPOSRegistration> ');

hi @reinaldorossetti

Not sure what is broken, since I was able to properly parse the XML example you shared.

const xml = '<RequestTransactionPOSRegistration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.43"><authentication><login>xxx</login><password /><externalLoginName /></authentication><POSs><POS><TaxId>03.361.770/0001-58</TaxId><TipoPdC>LibC</TipoPdC><Ambiente>PRD</Ambiente><ExternalId>1234</ExternalId><Identifier>1234</Identifier><Description>MASSA ROBO</Description><Status>1</Status><POSType>LibC</POSType><POSApplication /><POSApplicationVersion /><RoutingProfile>undefined</RoutingProfile><CardEntryModes><CardEntryMode>01</CardEntryMode></CardEntryModes><CardEntryModes><CardEntryMode>02</CardEntryMode></CardEntryModes><CommGroup>1136</CommGroup><CardTypes><CardType>01</CardType></CardTypes><CardTypes><CardType>02</CardType></CardTypes><InstallmentPlans><InstallmentPlan>1</InstallmentPlan></InstallmentPlans><Unattended>FALSE</Unattended><FiscalPrinter>TRUE</FiscalPrinter><Printer>TRUE</Printer><Automation>TRUE</Automation><PINPad>TRUE</PINPad><PINPadIdleMsgLine1>QA TESTE</PINPadIdleMsgLine1><PINPadIdleMsgLine2>QA TESTE</PINPadIdleMsgLine2></POS></POSs><Error><Number /><Description /></Error></RequestTransactionPOSRegistration>';
const json = xml2Json(xml);
console.log(JSON.stringify(json, null, 2));

The result:

{
  "RequestTransactionPOSRegistration": {
    "$": {
      "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
      "xmlns:xsd": "http://www.w3.org/2001/XMLSchema",
      "version": "1.43"
    },
    "authentication": [
      {
        "login": [
          "xxx"
        ],
        "password": [
          ""
        ],
        "externalLoginName": [
          ""
        ]
      }
    ],
    "POSs": [
      {
        "POS": [
          {
            "TaxId": [
              "03.361.770/0001-58"
            ],
            "TipoPdC": [
              "LibC"
            ],
            "Ambiente": [
              "PRD"
            ],
            "ExternalId": [
              "1234"
            ],
            "Identifier": [
              "1234"
            ],
            "Description": [
              "MASSA ROBO"
            ],
            "Status": [
              "1"
            ],
            "POSType": [
              "LibC"
            ],
            "POSApplication": [
              ""
            ],
            "POSApplicationVersion": [
              ""
            ],
            "RoutingProfile": [
              "undefined"
            ],
            "CardEntryModes": [
              {
                "CardEntryMode": [
                  "01"
                ]
              },
              {
                "CardEntryMode": [
                  "02"
                ]
              }
            ],
            "CommGroup": [
              "1136"
            ],
            "CardTypes": [
              {
                "CardType": [
                  "01"
                ]
              },
              {
                "CardType": [
                  "02"
                ]
              }
            ],
            "InstallmentPlans": [
              {
                "InstallmentPlan": [
                  "1"
                ]
              }
            ],
            "Unattended": [
              "FALSE"
            ],
            "FiscalPrinter": [
              "TRUE"
            ],
            "Printer": [
              "TRUE"
            ],
            "Automation": [
              "TRUE"
            ],
            "PINPad": [
              "TRUE"
            ],
            "PINPadIdleMsgLine1": [
              "QA TESTE"
            ],
            "PINPadIdleMsgLine2": [
              "QA TESTE"
            ]
          }
        ]
      }
    ],
    "Error": [
      {
        "Number": [
          ""
        ],
        "Description": [
          ""
        ]
      }
    ]
  }
}