[英]Using cURL for API automation in Karate
我是空手道新手
我正在自动化 API 测试,我需要上传大于 50MB 的大文件当我使用空手道这样做时,我收到错误“Broken Pipe”,根据这个问题Broken pipe (Write failed) when testing > max allowed Content-Length我可以对这个请求使用“cURL”。
它工作正常如下(使用硬编码数据):
* def result = karate.exec('curl -L -X POST "URL" -H "Authorization: Bearer MYTOKEN" -F "file=@"PATH""')
但是,我在传递变量时遇到语法问题,我需要将 URL、令牌和路径作为变量而不是硬编码文本传递,因为我将在多个环境中重复使用此测试。
我怎么会 go 呢? 谢谢,
认为空手道语法非常接近 JavaScript。 因此,字符串连接有效。 例如:
* def myUrl = 'https://httpbin.org/anything'
* def result = karate.exec('curl ' + myUrl)
一件好事是 JavaScript 模板文字工作:
* def myUrl = 'https://httpbin.org/anything'
* def result = karate.exec(`curl ${myUrl}`)
另请注意, karate.exec()
API 采用命令行 arguments 数组。 这可以使一些事情变得更容易,例如不必在 arguments 周围加上引号,包括空格等。
* def myUrl = 'https://httpbin.org/anything'
* def result = karate.exec({ args: [ 'curl', myUrl ] })
为方便起见,您可以构建 arguments 阵列作为第二步:
* def myUrl = 'https://httpbin.org/anything'
* def args = ['curl']
* args.push(myUrl)
* def result = karate.exec({ args: args })
请注意,在空手道中可以使用条件逻辑甚至if
语句: https://stackoverflow.com/a/50350442/143475
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.