提问人:SaulSV 提问时间:11/8/2023 更新时间:11/8/2023 访问量:31
在空手道测试执行期间获取用户控制台输入
Get user console input during a karate test execution
问:
我正在处理一些 tets 案例,在某些情况下,我需要获得一个 dinamic 令牌,我只能在手动过程中使用物理设备获得,这个令牌是一次性的(当请求被处理时,令牌不再可用),所以我需要停止执行,使用控制台获取令牌并将其放入我的请求中。现在我正在使用带有 Scanner 类的简单 java 代码(非常标准的东西)来获取控制台输入,但是在测试运行时,当执行停止以获取输入时,我无法在控制台中放置任何东西。我正在运行我的测试 whit maven 命令(使用我在标题中提到的空手道框架)。
现在我找到了一种使用 Intellij 运行器修改 VM 选项的解决方案,但我仍然想知道当我使用 maven 运行测试时是否可以运行测试并获取控制台输入。-Deditable.java.test.console=true
为了清楚起见,我正在使用 Karate 0.9.0(我知道这是一个非常旧的版本,但由于客户要求,我不能使用更新的版本甚至发布版本)、Junit4、Java 8 和 maven 3.8.1。
答:
较新版本的空手道具有出色的 CLI 支持,请参阅:https://github.com/karatelabs/karate-examples/blob/main/cli/README.md
我的建议是,用任何其他语言编写一个程序,并且使用一点 Java 代码,您应该能够通过 shell / OS 命令调用它并捕获控制台输出,甚至弹出 Java swing 对话框或等效内容。如果有帮助,您编写的其他程序甚至可以写入文件。然后,获取所需的数据并继续应该很容易。您可以查看空手道代码以获取灵感。
评论