Используя систему Robot, как я могу проанализировать XML и проверить данные? - PullRequest
1 голос
/ 19 сентября 2019

У меня есть вывод команды робота, которая находится в скалярной переменной xml, скажем, $ {xml}.Как я могу разобрать xml, чтобы получить и проверить значение адреса ipv4 в среде роботов?

   <rpc-reply
       xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
       message-id="101">
     <data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-datastores">
       <interfaces
           xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
           xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"
           xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin">

         <interface or:origin="or:intended">
           <name>eth0</name>
           <type>ianaift:ethernetCsmacd</type>
           <!-- other parameters from ietf-interfaces omitted -->

           <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
             <enabled or:origin="or:default">true</enabled>
             <forwarding or:origin="or:default">false</forwarding>
             <mtu or:origin="or:system">1500</mtu>
             <address>
               <ip>192.0.2.1</ip>

1 Ответ

4 голосов
/ 19 сентября 2019

Прежде всего, ваш XML недействителен, так как у него нет закрывающих тегов.Я исправил это и вот XML.

ipaddress.xml

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
<data xmlns="urn:ietf:params:xml:ns:yang:ietf-netconf-datastores">
    <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type" xmlns:or="urn:ietf:params:xml:ns:yang:ietf-origin">
        <interface or:origin="or:intended">
            <name>eth0</name>
            <type>ianaift:ethernetCsmacd</type>
            <!-- other parameters from ietf-interfaces omitted -->

            <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
                <enabled or:origin="or:default">true</enabled>
                <forwarding or:origin="or:default">false</forwarding>
                <mtu or:origin="or:system">1500</mtu>
                <address>
                    <ip>192.0.2.1</ip>
                </address>
            </ipv4>
        </interface>
    </interfaces>
</data>

Сам тестовый файл:

XMLTest.robot

*** Settings ***
Library    XML

*** Test Cases ***
Verify IP Address
    Verify IP Address Value    192.0.2.1

*** Keywords ***
Verify IP Address Value
    [Arguments]    ${expected_value}
    ${root} =   Parse XML    ipaddress.xml
    Element Text Should Be   ${root}    ${expected_value}    data/interfaces/interface/ipv4/address/ip

Когда я запускаю его: robot XMLTest.robot

Вывод:

==============================================================================
XMLTest
==============================================================================
Verify IP Address                                                     | PASS |
------------------------------------------------------------------------------
XMLTest                                                               | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================

Это должно сделать это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...