在空手道DSL测试中使用环境变量

时间:2018-10-15 15:49:09

标签: gitlab karate

我想将GitLab CI纳入我的Karate测试中。我想用不同的用户名和密码循环测试,以确保我们的API端点正确响应不同的用户。

考虑到这一点,我希望能够将用户名和密码作为安全的环境变量存储在GitLab中(而不是作为纯文本存储在karate-config中)并具有{{1 }}根据需要将它们从Karate或功能文件中拉出。

浏览文档和StackOverflow问题,我还没有看到执行此操作的示例。

更新新信息

关于下面彼得的评论,这是我需要的,我试图将其设置如下:

在karate-config中设置客户端ID:
karate-config

在实际的配置对象中:
var client_id = java.lang.System.getenv('client_id');

在我的功能文件中尝试访问它:
clientId: client_id

不幸的是,它仍然为null。

1 个答案:

答案 0 :(得分:2)

您可以使用karate.properties读取空手道中的环境变量,

例如

karate.properties['java.home']

如果这有助于您阅读在gitlab上安全保存的环境变量,则可以在karate-config中使用它进行身份验证。

但是如果用户过多,您的config和environment变量将显得很麻烦。

如果您想与多个用户一起运行一些功能,建议您阅读这篇文章

Can we loop feature files and execute using multiple login users in karate

编辑:

使用彼得建议的Java互操作:

var systemPath = java.lang.System.getenv('PATH');

看看实际上所有变量都暴露出来,

var evars= java.lang.System.getenv();
karate.log(evars);

并查看所有环境变量的列表。