简体   繁体   中英

how to call a feature file to generated a Get request , for each element in an ArrayList or JsonArray ( Created by Java function )

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

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 }] |

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM