空手道多领域可以传递功能?

时间:2019-02-27 16:47:21

标签: automated-tests karate

我有一些测试用例,需要上传文件并为其命名。为了节省时间,我要做的是多次上传同一文件,但是每次通过都会随机为其生成一个名称。

到目前为止,我对一个场景有什么看法

* def randomFile =
"""
function randString(length,chars) { 
    var result = '';
    for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
    return result;
}
"""
* def getFilename = randomFile(6, "abcdefgh")

Given url
And request ''
And multipart fields { "profile": "Smoke Test Uploads", "filename": getFilename, "url": "https://s3.file.foo.bar" }
When method post
Then status 201

当我查看上传的文件时,文件名为getFilename

我是否可以像这样或其他某种方式在帖子请求中调用函数?

1 个答案:

答案 0 :(得分:2)

使用karate embedded expression

And string getFilename = java.util.UUID.randomUUID()
And multipart fields { "profile": "Smoke Test Uploads", "filename": #(getFilename), "url": "https://s3.file.foo.bar" }
  

注意:UUID.randomUUID()为您提供了一种更方便的生成随机数的方法   文件名,如果这样做不起作用,则可以使用自定义js函数本身