Ejecución de los casos de prueba de ejemplo

Puede utilizar la aplicación web de ejemplo o la línea de mandatos para probar la aplicación de ejemplo en el Ejemplo del tiempo de ejecución básico de la pasarela de política SOA desplegado. Hay seis variaciones de prueba que puede ejecutar en la línea de mandatos para la aplicación de ejemplo.

Para desplegar el tiempo de ejecución de ejemplo básico, consulte Despliegue del patrón Ejemplo del tiempo de ejecución básico de la pasarela de política SOA.
Nota: el valor de SamplePolicySample_starting_port que se utiliza en los ejemplos de XML siguientes se encuentra en los archivos de registro del Ejemplo del tiempo de ejecución básico de la pasarela de política SOA.

Ejecución del caso de prueba de la aplicación web de ejemplo

Para ejecutar el caso de prueba de la aplicación web:
  1. Encuentre el nombre de host del entorno WSRR desplegado abriendo la instancia de sistema virtual desplegada. Para hacer esto, expanda la sección Máquinas virtuales y seleccione la máquina virtual del servidor autónomo WSRR para ver los detalles de la máquina virtual. En la sección Hardware y de red, el nombre de host es el valor de Interfaz de red 0.
  2. Abra el URL en un navegador Web: http://<nombre_host_wssr>:9080/SoaPolicyTester
  3. Se abrirá la pantalla de prueba para la aplicación de ejemplo implementada en DataPower.
  4. Las opciones son:
    • Enviar estándar: envía una solicitud findInventory al servicio Store. El ID de contexto es un usuario Silver . Un resultado exitoso es Part: SKU10 Price: 461.73.
    • Enviar direccionado: envía una solicitud findInventory al servicio Store. El ID de contexto es un usuario Gold, por lo que la solicitud se direcciona hacia una implementación Gold del servicio. Un resultado exitoso es Part: GOLDSKU10 Price: 461.73.
    • Enviar no válido: envía una solicitud con una carga útil no válida. La política de validación solicita que DataPower valide la solicitud. Un resultado exitoso será este mensaje de respuesta de DataPower: "Error interno (del cliente)".
    • ID de usuario = ConsumerA: para las llamadas cuyo ID de usuario es ConsumerA, se aplica la política XACML para que sólo los Gestores puedan ver el precio. Se escribirá el valor de Precio en el mensaje de respuesta. Un resultado exitoso contiene Precio: 0,0.
    • Muchas solicitudes estándar: si se realizan más de 5 solicitudes en el intervalo de 90 segundos, se aplica la política de rechazo. Una respuesta satisfactoria, que muestra la aplicación de la política, es: Rechazado: "Rechazado (del cliente)".
  5. Abra la consola de WSRR y explore el servicio y las políticas. Para obtener más información, consulte .
Para ejecutar los casos de prueba de la aplicación de ejemplo utilizando la línea de mandatos:

Demostración de Permitir/Denegar de XACML en el escenario Redacción utilizando la línea de mandatos

La siguiente solicitud XML se puede enviar al servicio StoreAddLTPA de DataPower:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:stor="http://company.ibm.com/store">
  <soapenv:Header>
    <store:ConsumerIdentifier xmlns:store="http://store.com">CEO
    </store:ConsumerIdentifier>
    <store:ContextIdentifier xmlns:store="http://store.com">silver
    </store:ContextIdentifier>
  </soapenv:Header>
  <soapenv:Body>
  <stor:findInventory>
    <findInventoryReq>
      <sku>SKU10</sku>
    </findInventoryReq>
  </stor:findInventory>
  </soapenv:Body>
</soapenv:Envelope>
Presuponiendo que el XML de la solicitud de ejemplo anterior está contenido en el archivo silver.xml, ejecute el mandato curl siguiente:
curl -k --data-bin @./silver.xml -H "Content-Type: text/xml"
-u ConsumerX:passw0rd http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
En este ejemplo, ConsumerX es Manager, por lo tanto, se visualizará la información de precio completo como respuesta:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<KD4NS:KD4SoapHeaderV2
xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0z
YjU0LWEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxN
mRhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2>
</soapenv:Header>
<soapenv:Body>
  <b:findInventoryResponse xmlns:a="http://company.ibm.com/"
     xmlns:b="http://company.ibm.com/store">
  <findInventoryRes>
<sku>SKU10</sku>
<price>461.73</price>
<inventory>460</inventory>
<msrp>923.46</msrp>
<supplierID>IBM</supplierID>
</findInventoryRes>
</b:findInventoryResponse>
</soapenv:Body></soapenv:Envelope>

Ejecución del escenario Redacción utilizando la línea de mandatos

ConsumerA no es Manager, por lo tanto, se visualizará una respuesta diferente. Ejecute el mandato curl:
curl -k --data-bin @./silver.xml -H "Content-Type: text/xml"
-u ConsumerA:passw0rd http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
Como se puede observar, la respuesta tiene redactado un precio y éste es 0.0:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header><KD4NS:KD4SoapHeaderV2
xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0zYjU0L
WEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxNm
RhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2>
</soapenv:Header>
<soapenv:Body>
<b:findInventoryResponse xmlns:a="http://company.ibm.com/"
xmlns:b="http://company.ibm.com/store">
<findInventoryRes>
<sku>SKU10</sku>
<price>0.0</price>
<inventory>460</inventory>
<msrp>923.46</msrp>
<supplierID>IBM</supplierID>
</findInventoryRes>
</b:findInventoryResponse>
</soapenv:Body></soapenv:Envelope>

Prueba de la política de direccionamiento utilizando la línea de mandatos

El SLA ContextId se utiliza para desencadenar la política de direccionamiento. En este caso, el SLA para los Clientes Gold tiene el valor de Gold en el SLA. El siguiente es el contenido de la solicitud de ejemplo con Gold como contextIdentifier:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:stor="http://company.ibm.com/store">
<soapenv:Header>
  <store:ConsumerIdentifier xmlns:store="http://store.com">CEO
  </store:ConsumerIdentifier>
  <store:ContextIdentifier xmlns:store="http://store.com">Gold
  </store:ContextIdentifier>
</soapenv:Header><soapenv:Body>
<stor:findInventory><findInventoryReq>
  <sku>SKU10</sku>
  </findInventoryReq>
</stor:findInventory>
</soapenv:Body></soapenv:Envelope>
Presuponiendo que el XML de la solicitud de ejemplo anterior está contenido en el archivo gold.xml, ejecute el mandato curl siguiente:
curl -k --data-bin @./gold.xml -H "Content-Type: text/xml"
-u ConsumerX:passw0rd http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
La respuesta es la siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
  <KD4NS:KD4SoapHeaderV2
  xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0zYjU0L
  WEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxNm
  RhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2>
</soapenv:Header><soapenv:Body>
<b:findInventoryResponse xmlns:a="http://company.ibm.com/"
xmlns:b="http://company.ibm.com/store">
<findInventoryRes>
  <sku>GOLDSKU10</sku>
  <price>461.73</price>
  <inventory>460</inventory>
  <msrp>923.46</msrp>
  <supplierID>IBM</supplierID>
</findInventoryRes></b:findInventoryResponse>
</soapenv:Body>
</soapenv:Envelope>
Tenga en cuenta la respuesta de retorno tiene GOLDSKU como valor de SKU, lo que indica que se ha utilizado el punto final Gold.

Prueba de la validación del esquema utilizando la línea de mandatos

La política de validación comprueba el esquema de la solicitud en el Store.wsl y su Company.xsd asociado.
El XML siguiente, badvalid.xml, muestra una solicitud que no es válida debido a que el cuerpo contiene un elemento denominado <skubad>, cuando éste debería ser <sku>:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:stor="http://company.ibm.com/store">
<soapenv:Header>
<store:ConsumerIdentifier xmlns:store="http://store.com">CEO</store:ConsumerIdentifier>
<store:ContextIdentifier xmlns:store="http://store.com">silver</store:ContextIdentifier>
</soapenv:Header>
<soapenv:Body>
<stor:findInventory>
<findInventoryReq>
<skubad>SKU10</skubad>
</findInventoryReq>
</stor:findInventory>
</soapenv:Body></soapenv:Envelope>

Si se ejecuta la solicitud curl siguiente:
curl -k --data-bin @./badvalid.xml -H "Content-Type: text/xml"
-u ConsumerX:passw0rd
http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
Se genera el error siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault><faultcode>env:Client</faultcode>
<faultstring>Internal Error (from client)</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

Prueba del rechazo en la política de mediación utilizando la línea de mandatos

Política de mediación incluida en el rechazo de las pruebas de ejemplo cuando el número de mensajes es 5 al cabo de 90 segundos. Ejecute el mandato siguiente 6 veces:
curl -k --data-bin @./silver.xml -H "Content-Type: text/xml" -u ConsumerX:passw0rd
http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
La solicitud de ejemplo es la siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<KD4NS:KD4SoapHeaderV2
xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0z
YjU0LWEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxN
mRhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2>
</soapenv:Header>
<soapenv:Body>
<b:findInventoryResponse xmlns:a="http://company.ibm.com/"
xmlns:b="http://company.ibm.com/store">
<findInventoryRes>
En este caso ConsumerX es Manager, por lo tanto se mostrará la información completa de precios para las cinco primeras ejecuciones, como se muestra a continuación:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<KD4NS:KD4SoapHeaderV2
xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0z
YjU0LWEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxN
mRhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2>
</soapenv:Header>
<soapenv:Body>
<b:findInventoryResponse xmlns:a="http://company.ibm.com/"
xmlns:b="http://company.ibm.com/store">
<findInventoryRes>
<sku>SKU10</sku>
<price>461.73</price>
<inventory>460</inventory>
<msrp>923.46</msrp>
<supplierID>IBM</supplierID>
</findInventoryRes></b:findInventoryResponse>
</soapenv:Body>
</soapenv:Envelope>
En la sexta ejecución, se generará el error siguiente:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Rejected (from client)</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
Nota: puede ver este error más pronto si ha ejecutado otras pruebas dentro del intervalo de 90 segundos.

Prueba de la notificación en la política de mediación utilizando la línea de mandatos

Cuando contextId no es Gold, no hay ningún SLA correlacionado y se utiliza el SLA Anónimo. La política de mediación para el SLA Anónimo es iniciar sesión o avisar. Esto requiere que se habilite la modalidad de depuración para el dominio de ejemplo. Ejecute el siguiente mandato:
curl -k --data-bin @./silver.xml -H "Content-Type: text/xml" -u ConsumerX:passw0rd
http://<yourDataPowerHostName>.com:<SamplePolicySample_starting_port+4>/Store/Store
En este caso ConsumerX es Manager, por lo tanto, se visualizará la información de precio completo, como se muestra a continuación:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<KD4NS:KD4SoapHeaderV2
xmlns:KD4NS="http://www.ibm.com/KD4Soap">AFIAAgAkZmExODgzNTQtY2Q1ZC0zYjU0L
WEyMzItZGM3MmEzNWY0MTAzACRmYWVjYjA1Mi1jMWUxLTMyODEtOWY3Ni0wY2IxNm
RhMDc4MjkAAw==</KD4NS:KD4SoapHeaderV2></soapenv:Header><soapenv:Body><b:fin
dInventoryResponse xmlns:a="http://company.ibm.com/"
xmlns:b="http://company.ibm.com/store">
<findInventoryRes>
<sku>SKU10</sku>
<price>461.73</price>
<inventory>460</inventory>
<msrp>923.46</msrp>
<supplierID>IBM</supplierID>
</findInventoryRes>
</b:findInventoryResponse>
</soapenv:Body>
</soapenv:Envelope>
Se registra el mensaje siguiente en el archivo de registro predeterminado del dominio:
Notify action triggered ('operation_38_2_sla1-1-filter_1-notify') from source policy ('LogEveryTime_287d0790-83d9-11e1-a255-9187e20cddb0_05aec6ec-3674-4165-85de-a0f7be48a938' 
Nota: el registro cronológico debe estar establecido en la modalidad de depuración para ver este mensaje. En otro caso, pulse el icono de resolución de problemas en la consola web de DataPower. En la sección Registro, cambie el valor de Nivel de registro a depuración y pulse Establecer nivel de registro.

Para encontrar el registro, seleccione Archivos y Administración de archivos > Gestión de archivos. El registro se encuentra en la carpeta logtemp con el nombre default-log. Debido a que el archivo de registro se reinicia, puede ser necesario colocar el archivo de registro en una ventana de navegador web antes de ejecutar la prueba y renovar la pestaña del navegador después de ejecutar la prueba.


Concepto Concepto

Comentarios


Icono de fecha y hora Última actualización: 16 de octubre de 2012


http://publib.boulder.ibm.com/infocenter/prodconn/v1r0m0/topic/com.ibm.scenarios.soawdpwsrr.doc/topics/csoa2_sample_run.htm