我正在为我的应用程序测试API,并且每个API都有多个要传递的参数,例如。下方:
https://abc.xyz.com/***.svc/restful/GetSummary?FromDate=2019/06/28&ToDate=2019/06/28&CompAreaId=15&RegId=4
请求中的每个参数都有多个值(在一组定义的值内),因此,如果我想用可能包含的所有值对每个参数进行参数化,那么如何创建一个方案来帮助我实现这一目标?
我将不胜感激。
我一直在传递下面的代码中所示的参数,但是无法完成上面提到的场景,每次在一个单独的场景中传递参数将很耗时且重复。
方案:验证GetContext API是否返回带参数的数据
Given path 'GetContext'
And param FromDate = '2019/06/27'
And param ToDate = '2019/06/27'
And param CompAreaId = 20
And param RegId = 4
When method get
Then status 200
* def res = response
* print 'response:', response
答案 0 :(得分:2)
您可以使用“方案大纲”来实现。下面的修改后的代码将在示例中的3行运行。 (相关链接:https://github.com/intuit/karate#the-cucumber-way)
Scenario Outline:
Given path 'GetContext'
And param FromDate = '<FromDate>'
And param ToDate = '<ToDate>'
And param CompAreaId = <CompAreaId>
And param RegId = <RegId>
When method get
Then status 200
* def res = response
* print 'response:', response
Examples:
| FromDate | ToDate | CompAreaId | RegId |
| 2019/06/27 | 2019/06/27 | 20 | 4 |
| 2019/06/28 | 2019/06/28 | 21 | 5 |
| 2019/06/29 | 2019/06/29 | 22 | 6 |
如果行数是动态的,则可以使用静态值代替静态计数,可以将参数值存储在json或CSV中,并在示例中进行引用。 (相关链接:https://github.com/intuit/karate#dynamic-scenario-outline)