Hier ist, wie ich darüber gehen würde.
Get Benutzereingabe durch Kommandozeile (für testrunner
Dienstprogramm)
System Argumenten (-Darg="value"
), und wir ermöglichen nur die Suiten gemäß der Eingabe, und deaktivieren Sie den Rest der Suiten.
Nachdem dies gesagt wurde, um nur Regression auszuführen, verwenden Sie -DEXECUTION_GROUP="Regression"
.
Erstellen Sie für jede Testsuite eine benutzerdefinierte Eigenschaft, sagen Sie EXECUTION_GROUP
und definieren Sie die gewünschten Werte. Sprich:
Test Suite 1: Eigenschaftsname EXECUTION_GROUP
und Wert als Smoke,Functional,Regression
Test Suite 2: Eigenschaftsname EXECUTION_GROUP
und Wert als Functional
Test Suite 3: Eigenschaftsname EXECUTION_GROUP
und Wert als Smoke,Functional
Test Suite 4: Immobilien Name EXECUTION_GROUP
und Wert als Regression
Nun Doppelklick auf das Projekt Sie Load Script
Taste auf der rechten Seite unten finden würde. Fügen Sie das folgende Skript hinzu und speichern Sie das Projekt.
Was macht das Skript?
Dieses Skript liest Systemeigenschaft sagen EXECUTION_GROUP
als Befehlszeilenoptionen
Und wechseln Suiten zu testen nach der Benutzereingabe automatisch.
Wenn in der Liste nur diese Suiten aktiviert sind, deaktivieren Sie andernfalls die übrigen Suiten.
Wenn die Systemeigenschaft in der Befehlszeile nicht festgelegt oder nicht übergeben wird, sind alle Suites aktiviert.
Projekt laden Script:
/**
* this script reads System property say EXECUTION_GROUP as command line options
* and toggle to test suites according to the user input
* if list is found enable the suite, disable it otherwise.
* if system property is set, then all the suites are enabled
**/
//Below closure toggle the suite based on the list of names
def toggleSuite = { suite, list ->
def groups = suite.getPropertyValue('EXECUTION_GROUP').split(',').collect{it.trim()}
def isGroupFound = false
list.each { group ->
if (groups.contains(group)) {
isGroupFound = true
}
}
if (!isGroupFound) {
suite.disabled = true
} else {
suite.disabled = false
}
}
//Reads the system property
def userInput = System.getProperty('EXECUTION_GROUP')
log.info "Command line input: $userInput"
def cmdLineOptions = []
//Checks if the user provided value is null i.e., system property not set
if (null != userInput) {
cmdLineOptions = userInput.split(',').collect{it.trim()}
if (null != cmdLineOptions) {
log.info "User has provided the execution group as input"
log.info cmdLineOptions
project.testSuiteList.each { suite -> toggleSuite(suite, cmdLineOptions) }
} else {
log.info "Receieved empty list of options, so disabling all the suites"
project.testSuiteList.each { suite -> suite.disabled = true }
}
} else {
log.info "All suites are being enabled as no system property input found"
project.testSuiteList.each { suite -> suite.disabled = false }
}
Wie man es verwendet Kommandozeile?
Ich glaube, Sie wissen, wie Sie eine Projektbefehlszeile aufrufen (basierend auf der Frage), d. H. Mit testrunner.bas/.sh von SOAPUI_HOME/bin.
beim Aufruf über testrunner
Dienstprogramm, fügen EXECUTION_GROUP als Systemargument am Ende. B. zum Ausführen Smoke und Funktionsgruppen
am Ende des Befehls -DEXECUTION_GROUP="Smoke,Functional"
hinzufügen.
So kann Befehl wie folgt aussehen:
testrunner.bat <options> project.xml -DEXECUTION_GROUP="Smoke,Functional"
Sie im Protokoll sehen würden, die Gruppen genannt werden (siehe Anweisungen im obigen Skript log).
Nun, wie kann ich oben von SoapUI testen?
Das oben erwähnte Verhalten gilt nur für die Befehlszeilenausführung gemäß der Anfrage in der Frage des Autors. Dann können Sie denken, was passiert, wenn Sie es in SoapUI ausführen? Du hast recht, das wird sich nicht so verhalten, wenn du mit SoaUI davonläufst. Der Grund ist, dass es kein Systemargument EXECUTION_GROUP
Wert erhält. Normalerweise brauchen Sie es vielleicht nicht, aber wie erkennen Sie, ob das funktioniert oder nicht, vielleicht möchten Sie es vor der Verwendung testen.
Aber es gibt einen Trick, wenn Sie dasselbe Verhalten von SoapUI haben möchten.Das heißt, fügen Sie unten Anweisung im oberen (das setzt das Systemargument, beachten Sie, dass diese Anweisung auf Test beschränkt werden sollte, andernfalls den eigentlichen Zweck zu besiegen und Kommentar nach den Tests) System.setProperty('EXECUTION_GROUP', 'Smoke')
und führen Sie das Skript aus.
Und Sie würden die unerwünschten Testgruppen deaktiviert sehen.
Haben Sie nur Suite Ebene oder Testfallebene wollen Tagging (die detaillierteren und möglich sein wird) als auch? – Rao