在空手道测试执行期间获取用户控制台输入

问题描述 投票:0回答:1

我正在处理一些 tets 情况,在其中一些情况下,我需要获得一个动态令牌,我只能在手动过程中使用物理设备获得该令牌,该令牌仅供一次性使用(当处理请求时,该令牌不再可用),所以我需要停止执行,使用控制台获取令牌并将其放入我的请求中。现在我正在使用带有 Scanner 类(真正标准的东西)的简单java代码来获取控制台输入,但是在测试运行时,当执行停止以获取输入时,我无法放入任何内容安慰。我正在使用 maven 命令运行我的测试(正如我在标题中提到的那样,使用空手道框架)。

现在我找到了一种使用 Intellij 运行程序通过

-Deditable.java.test.console=true
修改 VM 选项的解决方案,但我仍然想知道当我使用 maven 运行测试时是否可以运行测试并获取控制台输入。

为了让事情清楚,我使用的是 Karate 0.9.0(我知道这是一个非常旧的版本,但由于客户要求,我不能使用更新的版本,甚至不能使用发行版本)、Junit4、Java 8 和 maven 3.8。 1.

maven automated-tests cucumber karate junit4
1个回答
0
投票

新版本的空手道具有出色的 CLI 支持,请参阅:https://github.com/karatelabs/karate-examples/blob/main/cli/README.md

我的建议是,用任何其他语言编写一个程序,并使用一点 Java 代码,您应该能够通过 shell / OS 命令调用该程序并捕获控制台输出,甚至弹出一个 Java swing 对话框或等效项。如果有帮助的话,您编写的其他程序甚至可以写入文件。然后获取您需要的数据并继续操作应该很容易。您可以查看空手道代码来获取灵感。

© www.soinside.com 2019 - 2024. All rights reserved.