我有一种情况,我需要使用DB和我存储所有查询外部为。txt。我想用不同的迭代执行这些查询,因此我使用场景大纲。
我想知道什么是更好的方法来实现这一点。目前,我正在使用下面的代码,但需要为所有参数重复替换代码。SELECT REWARDS_POINTS
FROM ABC Table
WHERE IS_ACTIVE = <active>
AND DISCOUNT_TYPE = <discount>
AND PRODUCT_TYPE = <product>
Scenario Outline: sample
* def query = read("classpath:priceQuery.txt")
* replace query.active = <active>
* replace query.discount = <discount>
* replace query.product = <product>
* print 'query is > ', query
Examples:
|discount|active|product|
| 5 |1|toy|
我认为这样很好。你也可以这样做,参考docs: https://github.com/intuit/karate#replace
* replace query
| token | value |
| active | active |
| discount | discount |
| product | product |
但是请注意,replace
只是内置在空手道中的便利。您可以轻松编写JS或Java实用程序并使用它。因此,假设您已经定义了一个名为prepare()
的可重用函数,该函数可以检索变量,例如使用karate.get()
,甚至使用karate.set()
进行更新,您可以这样结束:
* def query = prepare('classpath:priceQuery.txt')
有很多选择。这取决于你的空手道知识和一些创造力。