web-dev-qa-db-fra.com

Comment définir le délai d'attente pour une étape de test dans soapui?

J'ai créé une étape de test dans soapui. J'ai besoin de définir un long délai comme 5 minutes pour cela. Je veux dire qu'il n'y a pas de délai entre les étapes de test, je dois attendre une réponse uniquement pour une étape. Comment puis-je le faire?

12
Cherry

Définissez le délai d'expiration du socket sur 300 000 millisecondes. Documentation SoapUI

13
gnaanaa

Options TestCase a un paramètre de délai d'expiration de socket pour ce test. Vous ne pouvez pas définir cela pour une seule étape.

4
SiKing

Comme d'autres réponses le disent, il n'est pas possible de définir le délai d'expiration du socket pour un TestStep, mais vous pouvez faire l'affaire avec un TestStep et groovy TestStep. Vous pouvez le faire en procédant comme suit:

  1. Créez le TestStep dans votre TestCase et désactivez-le car vous l'exécuterez à partir du groovy.
  2. Créer un Groovy testStep qui modifiera le délai d'expiration du socket global avant d'exécuter testStep et de redéfinir la valeur par défaut après exécution à l'aide de com.eviware.soapui.SoapUI classe .

Le code groovy que vous pouvez utiliser est indiqué ci-dessous:

import com.eviware.soapui.SoapUI
import com.eviware.soapui.settings.HttpSettings
import com.eviware.soapui.model.testsuite.TestStepResult.TestStepStatus

// get the settings 
def settings = SoapUI.getSettings();
// save the possible previous timeout
def bk_timeout = settings.getString(HttpSettings.SOCKET_TIMEOUT,"");
// set the new timeout... in your case 5 minutes in miliseconds
settings.setString(HttpSettings.SOCKET_TIMEOUT,"300000");
// save the new settings 
SoapUI.saveSettings();

// get the testStep by name
def testStep = testRunner.testCase.getTestStepByName('Test Request')
// run it
def result = testStep.run( testRunner, context )
if( result.status == TestStepStatus.OK )
{
    // ... if all ok    
}

// when finish set the timeout to default value again
settings.setString(HttpSettings.SOCKET_TIMEOUT, bk_timeout)
SoapUI.saveSettings()

Votre testCase ressemblera à:

enter image description here

Notez que si vous souhaitez vérifier si les paramètres de modification via groovy fonctionnent comme prévu, vous pouvez essayer de modifier les propriétés et vérifier si le fichier de préférences SOAPUI dans $USER_HOME\soapui-settings.xml changer (évidemment pour le tester, ne sauvegardez pas la valeur d'origine comme dans l'exemple :)).

4
albciff

J'ai trouvé un moyen de définir le délai d'expiration du socket testCase.

Dans le script de configuration de testCase, utilisez le code suivant:

testRunner.testCase.settings.setString("HttpSettings@socket_timeout","10000")

Toutes les étapes à l'intérieur du testCase seront affectées par cette valeur.

La valeur globale SOCKET_TIMEOUT n'est pas affectée par cela.

3
LPedro