Karate 在js函数中使用调用读取
我有个小问题要解决。我有以下几行代码,它们创建了2个用户,可以正常工作。但问题是,它从第一行代码中创建具有相同Id的两个用户:Karate 在js函数中使用调用读取,karate,Karate,我有个小问题要解决。我有以下几行代码,它们创建了2个用户,可以正常工作。但问题是,它从第一行代码中创建具有相同Id的两个用户: def myId=call read('classpath:karate/helpers/guid.js') def users=function(){karate.call('classpath:v1/api_CreateUser.feature')} def usersResult=空手道。重复(2,用户) 因此,我希望能够创建具有不同ID的多个用户。我尝试了以
- def myId=call read('classpath:karate/helpers/guid.js')
- def users=function(){karate.call('classpath:v1/api_CreateUser.feature')}
- def usersResult=空手道。重复(2,用户)
- def usersResult=空手道。重复(2,用户)
谢谢清楚空手道和JS的细微差别。例如:
myId = call read('classpath:karate/helpers/guid.js')
这行不通。您需要的是:
myId = karate.call('classpath:karate/helpers/guid.js');
我建议你阅读并理解这一部分,这将为你以后省去很多麻烦
当你使用一个JS函数(可以工作)时,你不需要担心你是什么。只要在任何地方调用它,它就会“分配”一个新值。例如,如果您有:
* def time = function(){ return java.lang.System.currentTimeMillis() + '' }
* def first = time()
* def second = time()
这里第一个和第二个总是不同的。我想现在你已经拥有了你所需要的一切。您试图从函数中访问在Karate中定义的JS变量,这取决于其中一个变量是何时初始化的,如果您不知道自己在做什么,我不建议您这样做。但是,如果您想访问空手道变量的最新值,正确的方法是使用。我想通过投票将其设置为已接受,我的错。答案已被接受。谢谢你的评论。我将阅读和理解更多的空手道表达。
* def time = function(){ return java.lang.System.currentTimeMillis() + '' }
* def first = time()
* def second = time()