SoapUI: Pasar los valores de la propiedad a la llamada de caso de prueba

Soy un principiante en soapui pruebas. Espero que usted me puede ayudar a solucionar este problema.

En mi proyecto de prueba tengo un conjuntos de pruebas que contiene varios casos de prueba. Múltiples casos de prueba se iniciará el mismo caso de prueba. Para ejecutar este caso de prueba necesito algunos valores de la propiedad a ser transferidos para este caso de prueba.

Traté de lograr de dos maneras. Pero no en ambos.

  1. Traté de llamar, el caso de prueba y establecer las propiedades necesarias en el caso de prueba. Empiezo el caso de prueba a partir de un script Groovy. Pero no pude encontrar un buen ejemplo de cómo establecer las propiedades en el llamado caso de prueba.

  2. Traté de obtener los valores de propiedad de la vocación de los padres de caso de prueba dentro del llamado caso de prueba. Parece que el padre de caso de prueba que se llama el caso de prueba no está disponible en el contexto de la ejecución del caso de prueba.

Los casos de prueba, que se llame el mismo caso de prueba, se llevará a cabo en paralelo. Entonces, yo creo que no es una solución para establecer los valores de las propiedades y, a continuación, iniciar el caso de prueba, debido a que será reemplazado por el de los otros casos de prueba que se ejecutan al mismo tiempo. También el uso de la suite de prueba de las propiedades de estos valores no funcionarán debido a la ejecución de los casos de prueba en paralelo.

Mi proyecto de prueba se parece a esto.

MyProject
    TestSuite_APLtests
      TestCase_user_01
      Properties test step
      Run_test <groovy script>
      Step_01
      …..
    TestCase_user_02
      Properties test step
      Run_test <groovy script>
      Step_01
      …..
    TestCase_General
      Properties test step
      POST sessions
      Step_01
      …..

Las Propiedades de la prueba de paso «de cada «TestCase_user_’ contiene el usuario y la contraseña necesarios en caso de prueba ‘TestCase_General», y será diferente para cada caso de prueba.
En el ‘Run_test’ groovy secuencia de comandos de cada ‘TestCase_user_’ el caso de prueba ‘TestCase_General’ comienza con:

def myTestSuite = testRunner.testCase.testSuite.project.getTestSuiteByName("TestSuite_APLtests")
def myTestCase = myTestSuite.getTestCaseByName("TestCase_General")
myTestCase.run(null, false)

¿Cómo puedo agregar las propiedades de usuario y contraseña para ejecutar el comentario que inicia el caso de prueba?

Si trato de obtener los valores de la propiedad con una maravillosa secuencia de comandos en caso de prueba ‘TestCase_General’ no sé cómo determinar que el caso de prueba se ha llamado «TestCase_General’. He encontrado algunas publicaciones en internet que sugiere la utilización de: context.getProperty("#CallingRunTestCaseStep#") para determinar el llamado caso de prueba. Pero este valor es null. Y cuando intento comprobar si el llamado caso de prueba está disponible en el contexto mediante el uso de: context.hasProperty("#CallingRunTestCaseStep#") esto es falso, así que esto no funciona para encontrar el llamado caso de prueba.

Alguien me puede decir cuál es la solución será conseguir este trabajo.

Gracias,

  • Sólo para aclarar… ¿quieres saber cómo establecer las propiedades de la prueba antes de que se ejecute dentro de su script groovy?
  • Establecer los valores de las propiedades de ‘usuario’ y ‘contraseña’ en las propiedades de la prueba de paso de cada caso de prueba. En el script Groovy en estos casos de prueba que yo llamo el caso de prueba ‘TestCase_General’. Los valores de las propiedades de ‘usuario’ y ‘contraseña’ deben ser pasadas a las propiedades en caso de prueba ‘TestCase_General» en el momento que empiezo a ese caso de prueba. No sé cómo pasar las propiedades de la llamada de caso de prueba para el llamado caso de prueba.
InformationsquelleAutor Deduur | 2014-09-02

1 Kommentar

  1. 3

    Puedes conjunto de Casos de Prueba de las propiedades de la genial secuencia de comandos con setPropertyValue(name,value) método, sin embargo, si usted ejecutar los Casos de Prueba en paralelo, esta propiedades como dijo usted será sobrescrito para cada Caso de Prueba llamando TestCase_General. Así que en lugar de utilizar setPropertyValue puede pasar el context propiedades a través de la run(StringToObjectMap properties, boolean async) método en el WsdlTestCase.java clase. Su belleza código para llamar a TestCase_General podría ser:

    import com.eviware.soapui.support.types.StringToObjectMap
    
    //get test suite
    def myTestSuite = testRunner.testCase.testSuite.project.getTestSuiteByName("TestSuite_APLtests")
    //get your test case
    def myTestCase = myTestSuite.getTestCaseByName("TestCase_General")
    //set the user and password properties in the context
    context.setProperty("user","userTestCaseN")
    context.setProperty("password","passwordTestCaseN")
    //run the testCase passing the context
    def contextMap = new StringToObjectMap( context )
    myTestCase.run(contextMap,false);

    Para acceder a la context propiedades en el maravilloso guión de su TestCase_General utilizar este código:

    context.getProperty("userPassword")

    O si prefiere utilizar context.expand:

    context.expand('${#user}')

    Tenga en cuenta que el uso de # depende de cómo se acceda a las propiedades.

    Si usted también necesita usar el context propiedades del JABÓN de Solicitud de Prueba de su TestCase_General uso de esta manera ${#propetryName} yo.e:

    <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
       <Header/>
       <Body>
        <request>
            <user>${#user}</user>
        </request>
       </Body>
    </Envelope>

    Espero que esto ayude,

    • Gracias. Puedo tratar de esa manera. Pero me temo que no va a funcionar si puedo ejecutar los casos de prueba en paralelo. Si puedo configurar los valores de propiedad en el caso de prueba antes de ejecutar la prueba de estos ser sobrescrito por otro caso de prueba? Para el ejemplo del caso de prueba 1 y prueba 2 se ejecutan al mismo tiempo. Se utilizan diferentes de usuario y contraseña y empezar a TestCase_General. Creo que los valores se van a cambiar por uno de estos casos de prueba después de que el valor es fijado por el otro caso de prueba. O estoy equivocado y esto no suceda? Voy a probarlo, si funciona de esta manera. Pero tal vez alguien sabe una buena solución para esto.
    • Hola @Deddur, lo siento, al principio no me doy cuenta de que desee realizar sus pruebas en paralelo, como usted dice, las propiedades serán sobrescritos por cada Prueba que llamar a la TestCase_General. Con el fin de que se ejecute correctamente en paralelo debe utilizar las propiedades de contexto como usted sugiere en su pregunta. Puedo actualizar mi respuesta para adaptarse a estos requerimientos. Pruébalo :).
    • Hola @albciff gracias por su explicación. Yo estaba de viaje por algunos días, así que tomó un poco de tiempo antes de que yo pudiera probar su consejo. Yo ya había encontrado en internet, con el que he tenido que utilizar el contexto para el análisis de las propiedades. Pero en estas explicaciones me perdí la que tenía la primera para establecer las propiedades en el contexto. He hecho la suposición equivocada de que las propiedades que se usan en un caso de prueba ya son parte del contexto. En la forma que se explica funciona perfecto (Y).

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea