我想将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。
答案 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);
并查看所有环境变量的列表。