[英]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.