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?
Définissez le délai d'expiration du socket sur 300 000 millisecondes. Documentation SoapUI
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.
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:
TestStep
dans votre TestCase
et désactivez-le car vous l'exécuterez à partir du groovy.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 à:
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 :)
).
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.