从一个功能设置空手道中的全局变量以用于另一个功能
Setting global variables in karate from one feature to be used in another feature
问题
我有 3 个不同的功能文件。一个用于 EndToEndTest.feature(集成测试),一个用于 create-service.feature(一个基本的 api 调用),另一个用于 create-tariff(一个 api 需要 create-service.feature)
响应的调用
EndToEndTest.feature
Feature: End To End Standard
Background:
* def result = call read('../get-user-token.feature')
* def service = call read('create-service.feature')
* def location = service.responseHeaders['Location'][0]
* def serviceId = location.substring(location.lastIndexOf('/') + 1)
# I want serviceId to be set globally so I can access it into the create-tariff.feature
* def tariff = call read('create-tariff.feature')
创建-tariff.feature
Feature: Create Tariff
Background:
* def result = call read('../../get-user-token.feature')
* def service = serviceId
很明显,这里的第二个定义 (service=serviceid) 将失败,因为它将无法从第一个定义中获取 serviceId 集
我的问题是,在 create-tariff.feature
中将一个变量 (serviceId) 从 EndToEndTest.feature 传递给另一个变量 (service) 的最佳方法是什么
让功能相互依赖是一种非常糟糕的做法,我不推荐这样做。你甚至不应该 Scenario
-s 依赖于其他的。
请阅读:https://github.com/intuit/karate#script-structure
请注意,您有 hooks - 特别是 karate.callSingle()
但它仅适用于您登录并获得令牌然后需要重新使用它的情况。
问题
我有 3 个不同的功能文件。一个用于 EndToEndTest.feature(集成测试),一个用于 create-service.feature(一个基本的 api 调用),另一个用于 create-tariff(一个 api 需要 create-service.feature)
响应的调用EndToEndTest.feature
Feature: End To End Standard
Background:
* def result = call read('../get-user-token.feature')
* def service = call read('create-service.feature')
* def location = service.responseHeaders['Location'][0]
* def serviceId = location.substring(location.lastIndexOf('/') + 1)
# I want serviceId to be set globally so I can access it into the create-tariff.feature
* def tariff = call read('create-tariff.feature')
创建-tariff.feature
Feature: Create Tariff
Background:
* def result = call read('../../get-user-token.feature')
* def service = serviceId
很明显,这里的第二个定义 (service=serviceid) 将失败,因为它将无法从第一个定义中获取 serviceId 集
我的问题是,在 create-tariff.feature
中将一个变量 (serviceId) 从 EndToEndTest.feature 传递给另一个变量 (service) 的最佳方法是什么让功能相互依赖是一种非常糟糕的做法,我不推荐这样做。你甚至不应该 Scenario
-s 依赖于其他的。
请阅读:https://github.com/intuit/karate#script-structure
请注意,您有 hooks - 特别是 karate.callSingle()
但它仅适用于您登录并获得令牌然后需要重新使用它的情况。