Skip to content

Scenario API

Itai Agmon edited this page Aug 2, 2017 · 2 revisions

Scenario API

The scenario API is an internal JSystem API and it supports multiple operations on scenario files. Examples for API usage are:

  • Creating new scenarios
  • Query existing scenarios
  • Changing scenarios attributes (scenario as test, hide in html, mark as known issue, etc…)
  • Set test arguments

NOTICE: Scenario API is not supporting executing scenarios.

Scenario API examples

Creating scenario

@Test
public void createSimpleScenario() throws Exception {

    //Creating test elements
    RunnerTest t1 = new RunnerTest("org.jsystemtest.my_tests_proj.TestsExamples","reportSuccess");
    RunnerTest t2 = new RunnerTest("org.jsystemtest.my_tests_proj.TestsExamples","reportFailure");

    //Creating scenario
    Scenario s = new Scenario(ScenariosManager.getInstance().getScenariosDirectoryFiles(),"scenarios/ApiScenario");

    //adding tests to scenario
    s.addTest(t1);
    s.addTest(t2);

    //saving scenario
    JSystemProperties.getInstance().setJsystemRunner(true);
    s.save();
    JSystemProperties.getInstance().setJsystemRunner(false);
}

Notice: The JSystemProperties.getInstance().setJsystemRunner(true); expression is required only when running the code from the tests project JVM and not when running from the runner GUI JVM

Changing scenario properties

@Test
public void changeScenarioAttributes() throws Exception {
    final Scenario scenario = ScenariosManager.getInstance().getScenario("scenarios/default");
    scenario.setScenarioAsTest(true);
    scenario.hideInHTML(true);
    scenario.markAsKnownIssue(true);
    scenario.setDocumentation("My scenario documentation");
    JSystemProperties.getInstance().setJsystemRunner(true);
    scenario.save();
    JSystemProperties.getInstance().setJsystemRunner(false);
}

Creating scenario with tests and parameters

@Test
public void createScenarioWithTestAndParameters() throws Exception {
    //Note: it is important to create scenario and add test to it before setting test parameters
    Scenario s = new  Scenario(ScenariosManager.getInstance().getScenariosDirectoryFiles(),"scenarios/ApiScenarioWithParam");
    RunnerTest t1 = new RunnerTest("org.jsystemtest.my_tests_proj.TestsExamples","testWithParameters");
    s.addTest(t1);

    //those two operation are important for test initialization
    t1.load();
    t1.loadParametersAndValues();

    //defining parameters
    Parameter p = new Parameter();
    p.setName("Str");
    p.setType(ParameterType.STRING);
    p.setValue("Value that was set using API");

    Parameter p1 = new Parameter();
    p1.setName("File");
    p1.setType(ParameterType.FILE);
    p1.setValue("somefile.txt");

    //setting test parameters
    t1.setParameters(new Parameter[]{p,p1});

    //saving scenario
    JSystemProperties.getInstance().setJsystemRunner(true);
    s.save();
    JSystemProperties.getInstance().setJsystemRunner(false);
}

Creating scenario with for loop

@Test
public void createScenarioWithFlowControl() throws Exception {
    Scenario s = new Scenario(ScenariosManager.getInstance().getScenariosDirectoryFiles(),"scenarios/ApiScenarioWithFor");
    AntForLoop loop = new AntForLoop();
    loop.setLoopValuesList("1;2;3;4");
    RunnerTest t1 = new RunnerTest("org.jsystemtest.my_tests_proj.TestsExamples","reportSuccess");
    loop.addTest(t1);
    s.addTest(loop);
    JSystemProperties.getInstance().setJsystemRunner(true);
    s.save();
    JSystemProperties.getInstance().setJsystemRunner(false);
}
Clone this wiki locally