我有一个功能文件,可以从csv文件中检索给定参数的数据。为了做到这一点,我需要在JsonPath表达式中使用一个变量来检索给定参数的数据。我尝试了可能的方法,但是在jsonPath中使用变量不起作用。我正在使用0.9.4版本
我尝试了以下方法:
* def userId = get[0] testData[?(@.UserType=='${userType}')].UserId
* def userId = get[0] testData[?(@.UserType==userType)].UserId
* def userId = get[0] testData[?(@.UserType=='#(userType)')].UserId(I suppose this can only be used in json/xml)
在硬编码值以下可以正常工作:
* def userId = get[0] testData[?(@.UserType=='SuperAdmin')].UserId
调用的功能
功能:从excel数据源提取各种类型数据的实用程序
背景:
* def DataUtility = Java.type('com.org.utils.DataUtility')
* def dataUtils = new DataUtility()
* def testData = read('classpath:testdata/TestData.csv')
方案:检索给定用户类型的userId
* def userId = get[0] testData[?(@.UserType=='${userType}')].UserId
通话功能:
* table params
| userType |
| 'SuperAdmin' |
* def extractedData = call read('DataExtractor.feature') params
* def userID = extractedData[0].userId
答案 0 :(得分:-1)
我尝试在Json Path中使用变量。 示例:
String elementPath = "$.[" + i + "].item.value";
在此语句中,i是循环变量。此后,将其传递到read
的{{1}} api。
对我来说,它工作得很好。
我正在通过jayway使用JsonPath&DocumentContext来实现此目的。
DocumentContext