关于空手道UI测试自动化,我如何在使用空手道-chrome时上传文件?

About Karate UI Test Automation, How can I upload files when I use karate-chrome?

我有 docker(ptrthomas/karate-chrome) 运行宁。 我已经配置了驱动程序

* configure driver = { type: 'chrome', start: false, showDriverLog: true, host:'192.168.56.122' }

现在似乎一切正常,UI 测试可以 运行 在 docker ptrthomas/karate-chrome。 但是当我上传文件时,在docker容器中找不到文件。

* driver.inputFile('#uploadfile', '../catalogFiles/BaseTemplate_SetupData.zip')
* submit().mouse('{^div}Upload').click()

所以问题是当我使用ptrthomas/karate-chrome时如何上传本地文件来测试UI?

您需要将文件放在 docker 容器中。这确实不容易,但是一旦你想在云端做CI,事情就变难了。因此,您可以自定义 Docker 容器启动以挂载本地文件夹,然后您可以在测试中引用该文件,一切正常。

也许对于测试中的这一步,您应该尝试使用空手道 API 测试/HTTP 客户端执行 file-upload:https://github.com/intuit/karate/tree/master/karate-core#using-multipart-file

所以诀窍是在 API 调用中复制浏览器安全令牌(通常是 cookie)。

您可以尝试分布式测试选项,它将您的测试源上传到 docker 容器中:https://github.com/intuit/karate/wiki/Distributed-Testing - 虽然这还没有完全测试,但也许您的团队可以提供帮助。