可以在空手道测试中执行 curl 吗?

Is possible to execute curl in Karate tests?

我需要 运行 一些使用 NTLM 代理的测试。 由于 Karate 不支持 NTLM 代理,我认为如果 karate 可以“执行”如下所示的 curl 命令,我会让 kate 使用 NTLM:

curl -X GET 'https://someaddress.com/cats?Status=completed' -u siteuser:sitepasswd    --proxy-ntlm --proxy-user ckuser:ckpasswd --proxy internal-ntlm-proxy:8080 -s 

有人知道我是否可以在空手道中调用 curl 命令吗? (而不是 Karate 在调用 Given...Path... 时使用的内部 http 请求)

谢谢

是的,空手道有很好的 CLI 支持,如果 curl 出现在您的 OS 上,就可以完成。有关详细信息,请参阅此答案,在 0.9.6

中可用

对于您的情况,请先尝试 karate.exec()

* def result = karate.exec("curl -X GET 'https://someaddress.com/cats?Status=completed' -u siteuser:sitepasswd    --proxy-ntlm --proxy-user ckuser:ckpasswd --proxy internal-ntlm-proxy:8080 -s")

并且 result 将包含控制台文本。请注意,有 regex helpers 可以更轻松地提取值,例如:

* def token = karate.extract(result, 'some(pattern).+', 1)