basically I want to achieve below result , where the list used in Examples: is dynamic

Scenario Outline:

  • def ss = 'https:testingurl/'+ < spaceCode > + 'trailPath';

    Given url ss

    And header Authorization = autGetToken()

    When method get

    Then status 200

    Examples:

    | spaceCode |
    
    | space1|
    
    | spac2|
    
    | spaceAbc05|
    
    | space.o2|
    
    | spacesacc|
    
    | spacere |
    

So I created one.feture and tried to call it from other feature file

one.feature

Background:

  • def ss = 'https:testingurl/'+ < spaceCode > + 'trailPath';

Scenario: need to run this scenario for each member of the spaceList ArrayList / JsonArray

Given url ss

And header Authorization = autGetToken()

When method get

Then status 200

* print response

* def count = response.value.length

* print count

* karate.set('total', karate.get('total') + karate.get('count') )

* print total

question

  1. how to run above file for each element of the "spaceList" which is an Java ArrayList, i am creating this ArrayList by calling method getSpaceList()

i have tried to call it from other feature file like below

Method1

caller.feature

Background:

* def total = 0

* def helper = Java.type('shared.Helper')

Scenario Outline: calling other feature file for each element of the spaceList Array

def result = call read('one.feature')

Examples:

  | spaceCode |

  | helper.getSpaceList() |

Method2 caller.feature

Background:

* def total = 0

* def helper = Java.type('shared.Helper')

* def spaceList = helper.getSpaceList()  // this returns around 20 different elements from a sql

Scenario Outline: calling other feature file for each element of the spaceList Array

def result = call read('one.feature')

Examples:

  | spaceCode |

  | spaceList |

i have also tried karate.forEach and karate.setUp

1

There are 1 best solutions below

2
Peter Thomas On

Try this example. Note how it will make two POST requests. Once you understand this, you should be able to do what you want.

Feature:

Scenario Outline:
* url 'https://httpbin.org/anything'
* request __row
* method post
* status 200

Examples:
| [{ a: 1 }, { a: 2 }] |