Sono nuovo in SoapUI e scripting GroovyCreazione di libreria di script in versione gratuita SoapUI
vorrei creare un repository di script Groovy che possono essere riutilizzate in vari test passi
Sto usando la versione SoapUI libero e in seguito è la struttura del mio progetto SoapUI
Project
|-TestSuite
| |-TestCase
| |-TestSteps
| |-LocalScript (Groovy TestStep to reuse library scripts)
| |-OtherTestStep (Run TestCase TestStep)
|-ScriptLibrary
|-TestCase
|-TestSteps
|-GroovyScriptStep1 (Contain a class for commonly used functions)
|-GroovyScriptStep2 (Contain another class for other functions)
Ecco quello che ero in grado di fare:
sono stato in grado di creare una libreria utilizzando th e campione menzionato in this post. Simile all'esempio nel post, il mio codice nella fase di test (GroovyScriptStep1 come sopra struttura) della libreria stava leggendo solo un valore da file esterno e viene utilizzato nella fase di test di altri TestSuite (passo LocalScript nella struttura sopra).
Qui è il problema:
Ora voglio creare una nuova classe e aggiungere una funzione ad essa che avrà bisogno di informazioni dalla classe in esecuzione e semplicemente stamparlo. La differenza è che alcuni valori vengono generati nell'esecuzione del test e devono essere passati allo script della libreria in ordine per elaborare/stampare ecc.
per rendere la mia domanda più chiaro di seguito è il frammento di codice
userò un semplice scenario qui
Esempio obiettivo: vuole essere in grado di stampare tutte le affermazioni e lo stato (dal momento che questo sarà utilizzato in tutti i casi di test che voglio creare una libreria)
codice per lo stesso quando non si utilizza biblioteca sarà come sotto (questo può andare passo script come Groovy)
def obj = context.testCase.getTestStepByName("Request 1");
def assertions = obj.getAssertionList()
//Loop on assertions
assertions.each{
log.info(it.name + ' --> ' + it.status)
Codice qualcosa di simile nel caso di prova fase della Biblioteca TestSuite
context.setProperty("Assertions", new Assertions());
class Assertions{
def printAssertion(def someArgumentToGetAssertionlistforTestStepinAnotherTestSuite){
def obj = ????
def assertions = obj.getAssertionList()
//Loop on assertions
assertions.each{
log.info(it.name + ' --> ' + it.status)
}
}
}
Codice da dove voglio chiamare questo metodo (LocalScript di cui al precedente struttura di progetto)
scripts = testRunner.testCase.testSuite.project.testSuites["ScriptLibrary"];
scripts.testCases["Scripts"].testSteps["Assertions"].run(testRunner, context);
context.Assertions.printAssertion(ArgumentRequired);
Questo è solo un esempio, voglio per creare librerie di alcuni script più comuni che utilizzano la variabile di contesto quando utilizzati localmente
Gentilmente aiutami con questo e per favore fatemi sapere se sono necessarie ulteriori informazioni/chiarimenti
fa [questo] (http://stackoverflow.com/a/9154553/4742570) funziona? – jsheeran
@jsheeran Essendo nuovo su groovy Non sono sicuro di come passare argomenti e chiamare funzioni specifiche nella classe che viene utilizzata come in questo [collegamento] (http://stackoverflow.com/questions/9136328/including-a-groovy- lo script-in-un-groove/9154553 # 9154553). Tuttavia, quale argomento devo passare in modo che l'elenco di asserzioni sia disponibile per funzionare in una classe esterna e possa stamparlo. – NewBee