Descripción de los operadores de prueba del administrador de instantáneas de Junos
Junos Snapshot Administrator le permite capturar y auditar instantáneas del entorno de tiempo de ejecución de sus dispositivos en red que ejecutan Junos OS. El archivo de configuración del Administrador de instantáneas de Junos define el ámbito de una instantánea y los criterios de evaluación para una sola instantánea o una comparación de dos instantáneas. La opción Administrador de instantáneas --snapcheck
de Junos toma una sola instantánea y evalúa los resultados, y la --check
opción compara los resultados de dos instantáneas independientes. En el archivo de configuración, puede crear casos de prueba que evalúen o comparen contenido de comandos específicos del modo operativo de Junos OS. Los casos de prueba utilizan operadores de prueba para evaluar elementos de datos en una sola instantánea o comparar elementos de datos en dos instantáneas separadas.
Junos Snapshot Administrator proporciona numerosos operadores relacionales que prueban la existencia, la igualdad, la desigualdad, el tamaño y la inclusión o exclusión de un rango o lista específicos. Los operadores específicos trabajan con diferentes tipos de operandos, incluyendo cadenas, números y elementos XML. Debe crear casos de prueba utilizando operadores de prueba que pertenezcan al tipo de comprobación que se está realizando. Para obtener una lista de los operadores disponibles, consulte Resumen de operadores de prueba de Junos Snapshot Administrator.
El Administrador de instantáneas de Junos utiliza algunos operadores de prueba, delta
, list-no-more
list-no-less
, y no-diff
, para comparar elementos o valores de elementos en dos instantáneas independientes. Los casos de prueba que utilizan estos operadores de prueba se ejecutan cuando se usa la --check
opción. Cuando se usa la --snapcheck
opción, que es específica de una sola colección, los casos de prueba que utilizan estos operadores de prueba se omiten efectivamente. Junos Snapshot Administrator genera un mensaje cuando se ignora un caso de prueba, como se muestra en el siguiente resultado de ejemplo:
--------------------------------------------------------------------------- CHECKING SECTION: ospf-checks --------------------------------------------------------------------------- INFO: snapcheck mode: skipping test: list-not-less INFO: snapcheck mode: skipping test: no-diff + TEST PASSED: All OSPF neighbors are up + TEST PASSED: OSPF neighbors must have the same priority value INFO: snapcheck mode: skipping test: no-diff
Al comparar valores de elementos en dos instantáneas, para asignar el primer elemento de datos de instantánea al segundo elemento de datos de instantánea, debe seleccionar elementos de los datos que creen un ID único. Para crear un identificador único para un caso de prueba, incluya la instrucción seguida de id
una expresión XPath que haga referencia al elemento unique. Para crear un identificador único basado en varios valores de elemento, defina varias id
instrucciones. También puede crear valores de ID relativos al valor de contenido.
Tenga en cuenta los siguientes datos XML para el comando del show ospf neighbor
modo operativo.
<ospf-neighbor-information> <ospf-neighbor> <neighbor-address>10.10.115.169</neighbor-address> <interface-name>ae18.0</interface-name> <ospf-neighbor-state>Full</ospf-neighbor-state> <neighbor-id>10.10.20.170</neighbor-id> <neighbor-priority>128</neighbor-priority> <activity-timer>3</activity-timer> </ospf-neighbor> <ospf-neighbor> <neighbor-address>10.10.115.174</neighbor-address> <interface-name>ae19.0</interface-name> <ospf-neighbor-state>Full</ospf-neighbor-state> <neighbor-id>10.10.20.168</neighbor-id> <neighbor-priority>128</neighbor-priority> <activity-timer>3</activity-timer> </ospf-neighbor> </ospf-neighbor-information>
En este caso, puede crear un ID único utilizando el interface-name
valor del elemento, que es un elemento secundario de ospf-neighbor
. El identificador se especifica mediante la instrucción seguida de id
la interface-name
expresión XPath.
ospf-neighbor-check { command show ospf neighbor; iterate ospf-neighbor { id interface-name; # # test-cases # } }
Para crear un identificador único basado en varios valores de elemento, defina varias id
instrucciones. En el ejemplo siguiente se identifica de forma exclusiva un vecino de OSPF por los valores de los interface-name
elementos y de neighbor-id
:
ospf-neighbor-check { command show ospf neighbor; iterate ospf-neighbor { id interface-name; id neighbor-id; # # test-cases # } }
También puede crear valores de ID relativos al valor de contenido. En el ejemplo siguiente se crea un identificador único para una conexión VPLS mediante tres valores: VPLS instance-name
, el local-site-id
servicio VPLS y el connection-id
de la conexión.
vpls-list { command show vpls connections up; iterate instance//connection { id connection-id; id ../local-site-id; id ancestor::instance/instance-name; list-not-less { info Check VPLS connections - all back up; err " VPLS connection missing on service %s", $ID.3; err " Site: %s, connection-id: %s", $ID.2, $ID.1; err " Remote-PE: %s", remote-pe; err " local-interface: %s", local-interface/interface-name; } } }
El código anterior define los datos de contenido como el conjunto de elementos de conexión, que se seleccionan mediante la expresión instance//connection
XPath. Cada conexión tiene un connection-id
, que define el primer id
valor. Cada conexión tiene un elemento local-site
primario , que tiene un local-site-id
elemento secundario. Por lo tanto, el segundo id
valor es ../local-site-id
. El tercer id
valor, ancestor::instance/instance-name
, es una expresión XPath que significa: a partir de la conexión, suba por la jerarquía principal XML (antecesor) hasta encontrar el instance
elemento y, a continuación, seleccione el instance-name
valor. El resultado es el nombre del servicio VPLS.
Junos Snapshot Administrator utiliza variables especiales $ID.num
que se asignan a las id
instrucciones de una sección de prueba. Cuando defina una o más id
instrucciones en una sección de prueba, puede utilizar estas variables para hacer referencia a la expresión XPath en ese caso de prueba. Esto es útil cuando la expresión XPath se hace demasiado larga. Tenga en cuenta el uso de las $ID
variables en las err
instrucciones del ejemplo anterior. Para obtener más información acerca de las variables de administrador de instantáneas de Junos, consulte Descripción de las variables de referencia del administrador de instantáneas de Junos.