我想将GitLab CI集成到Karate测试中。我想用不同的用户名和密码循环我的测试,以确保我们的API端点能够正确地响应不同的用户。
考虑到这一点,我希望能够将用户名和密码作为安全环境变量存储在GitLab中(而不是以纯文本形式存储在karate-config中),并让Karate根据需要从karate-config或特性文件中提取它们。
仔细看一下docs和StackOverflow问题,我还没有看到这样做的例子。
使用新信息进行更新
关于彼得下面的评论,这正是我所需要的,我试图把它设置如下:
在空手道配置中设置客户端id:
var client_id = java.lang.System.getenv('client_id');
在实际的config对象中:
clientId: client_id
在我的功能文件中试图访问它:
* def client_id = clientId
不幸的是,它仍然是空的。
发布于 2018-10-15 16:43:02
可以使用karate.properties读取空手道中的环境变量,
例如,
karate.properties['java.home']如果这可以帮助您读取在gitlab上安全保存的环境变量,那么您可以在空手道配置中使用它进行身份验证。
但是如果你有太多的用户,你的配置和环境变量看起来会很麻烦。
如果您想使用多个用户运行一些功能,我建议您查看这篇文章,
Can we loop feature files and execute using multiple login users in karate
编辑:
按照peter的建议,使用java互操作:
var systemPath = java.lang.System.getenv('PATH');要查看哪些变量实际上是公开的,请尝试,
var evars= java.lang.System.getenv();
karate.log(evars);并查看所有环境变量的列表。
https://stackoverflow.com/questions/52820409
复制相似问题