我尽了最大努力,但在处理空手道中的自动化时,我找不到在Javascript函数中调用API的信息。现在,我可能会得到一些建议,即调用函数外部的API,然后在函数中执行操作。但是,我的用例是这样的,所以我只能在函数中调用API。有办法这样做吗?一种方法是创建java文件,然后用Java编写代码。但是,我特别想知道是否有任何方法在特性文件本身的JS函数中调用API。
发布于 2022-02-06 11:46:34
首先,这些“聪明”的测试是不推荐的,请阅读这个来理解为什么:https://stackoverflow.com/a/54126724/143475
如果你还想这么做,继续读。
首先,大多数情况下,这种需要可以通过对第二个特性文件执行call
来实现:
* if (condition) karate.call('first.feature')
最后,这是空手道中的一个实验性的、没有文档化的特性,但是有一个JS来执行HTTP请求:
* eval
"""
var http = karate.http('https://httpbin.org');
http.path('anything');
var response = http.get().body;
karate.log('response:', response);
"""
它是一个"fluent API“,因此您可以在一行中完成所有操作:
var body = karate.http('https://httpbin.org/get').get().body;
如果需要详细信息,请阅读空手道项目中HttpRequestBuilder
和Response
类的源代码。
https://stackoverflow.com/questions/71006209
复制相似问题