Este documento describe cómo crear una solicitud de la interfaz de programadores de aplicaciones (API) de soapUI y cómo crear un caso de prueba de soapUI que se ejecuta en bucle sobre los pasos de prueba que automatizan las solicitudes de API a Quantum Policy Suite (QPS).
El ejemplo de caso de prueba soapUI en este artículo implementa Pasos de prueba que leen un archivo de ID de suscriptores y luego crean y envían una querySubscriberRequst a QPS.
Antes de iniciar este procedimiento, instale la aplicación soapUI en el escritorio. Puede descargar el ejecutable de instalación de soapUI desde www.soapui.org.
Antes de crear una solicitud de API o un caso de prueba, debe crear un proyecto soapUI. Necesita el archivo WSDL (Lenguaje de descripción de servicios Web) y el archivo XML Schema Description (XSD) para crear el proyecto. WSDL especifica las API admitidas. Normalmente, puede obtener WSDL y XSD de QPS cuando ejecuta estos comandos desde el equilibrador de carga (LB):
Almacene WSDL y XSD en el mismo directorio en el escritorio donde tiene previsto ejecutar la aplicación soapUI.
Complete estos pasos para crear el proyecto soapUI:
Complete estos pasos para crear una solicitud de API soapUI:
En este ejemplo, se expande querySubscriberRequest:
Este procedimiento explica cómo crear un conjunto de pruebas que pueda automatizar cuando se envían API a QPS.
En este procedimiento de ejemplo, el conjunto de pruebas realiza un bucle sobre una lista de ID de suscriptores y luego utiliza esos ID de suscriptores en querySubscriberRequest que envía a QPS. La lista de ID de suscriptores se encuentra en una sola línea en un archivo de texto llamado subid.txt.
Complete estos pasos para crear el conjunto de pruebas:
import com.eviware.soapui.support.XmlHolder def myTestCase = context.testCase
def counter,next,previous,sizeFile tickerEnumFile = new File("C:/subid.txt") //subscriber
IDs sepearted by new line (CR). List lines = tickerEnumFile.readLines() size =
lines.size.toInteger() propTestStep = myTestCase.getTestStepByName("Property - Looper")
// get the Property TestStep propTestStep.setPropertyValue("Total", size.toString())
counter = propTestStep.getPropertyValue("Count").toString() counter= counter.toInteger()
next = (counter > size-2? 0: counter+1) tempValue = lines[counter]
propTestStep.setPropertyValue("Value", tempValue) propTestStep.setPropertyValue
("Count", next.toString()) next++ log.info "Reading line : ${(counter+1)} /
$lines.size"propTestStep.setPropertyValue("Next", next.toString()) log.info
"Value '$tempValue' -- updated in $propTestStep.name" if (counter == size-1) {
propTestStep.setPropertyValue("StopLoop", "T") log.info "Setting the stoploop property now..."}
else if (counter==0) { def runner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner
(testRunner.testCase, null) propTestStep.setPropertyValue("StopLoop", "F") } else{
propTestStep.setPropertyValue("StopLoop", "F") }
En este ejemplo, se utiliza querySubscriberRequest.
Propiedad: Looper es el nombre de Property TestStep creado anteriormente y Value contiene la ID de suscriptor actual leída del archivo de ID de suscriptor.
def myTestCase = context.testCase
def runner
propTestStep = myTestCase.getTestStepByName("Property - Looper")
endLoop = propTestStep.getPropertyValue("StopLoop").toString()
if (endLoop.toString() == "T" || endLoop.toString()=="True"
|| endLoop.toString()=="true")
{
log.info ("Exit Groovy Data Source Looper")
assert true
}
else
{
testRunner.gotoStepByName("Groovy Script - DataSource") //go to the DataSource
}
Con el retraso, ahora hay cinco pasos de prueba: