Suresh Sharma
Suresh Sharma

Reputation: 186

Cucumber Scenarios to be run in Sequential Order

I have few concerns regarding cucumber framework:- 1. I have single Feature file(steps are dependent on each other)and i want to run all the scenarios in order, by default they are running in random order. 2. How to run a single feature file multiple times?

I put some tags and tried to run but no luck.

@Given("Get abc Token")
    public void get_abc_Token(io.cucumber.datatable.DataTable dataTable) throws URISyntaxException {
        DataTable data=dataTable.transpose();
        String tkn= given()
                .formParam("parm1",data.column(0).get(1))
                .formParam("parm2", data.column(1).get(1))
                .formParam("parm3", data.column(2).get(1))      
        .when()
        .post(new URI(testurl)+"/abcapi")
        .asString();

        jp=new JsonPath(tkn);

        Token=jp.getString("access_token");

        if (Token==null) {
            Assert.assertTrue(false,"Token is NULL");           
        }else {


        }       

       }


@Given("Get above token")
    public void get_abovetoken(io.cucumber.datatable.DataTable dataTable) throws URISyntaxException {

    System.out.println("Token is " +Token);



    }
}

So in the above steps i am getting token from one step and trying to print token in other step but i got null and not the actual value, because my steps are nunning randommmally Please note i am running TestRunner via testng.xml file.

Upvotes: 1

Views: 7474

Answers (1)

diabolist
diabolist

Reputation: 4109

Cucumber and testing tools in general are designed to run each test/scenario as a completely independent thing. Linking scenarios together is a terrible anti-pattern don't do it.

Instead learn to write scenarios properly. Scenarios and feature files should have no programming in them at all. Programming needs to be pushed down into the step definitions.

Any scenario, no matter how complicated can be written in 3 steps if you really want to. Your Given can set up any amount of state. Your When deals with what you are doing, and your Then can check up any number of conditions.

You do this by pushing all the detail down out of the scenario and into the step definitions. You improve this further by having the step definitions call helper methods that do all the work.

Upvotes: 2

Related Questions