我使用Protractor执行一些端到端测试,我想通过命令行传入登录凭据,而不是将它们存储在spec文件中。我发现有人使用process.argv.forEach
的帖子,但是如何存储这些值并在另一个spec文件中使用它们?我有一个名为login-spec.js
的文件,我想使用命令行参数。
谢谢!
答案 0 :(得分:91)
在reference config中,此部分可能很有趣:
// The params object will be passed directly to the protractor instance,
// and can be accessed from your test. It is an arbitrary object and can
// contain anything you may need in your test.
// This can be changed via the command line as:
// --params.login.user 'Joe'
params: {
login: {
user: 'Jane',
password: '1234'
}
},
您可以在代码中访问这样的params对象:browser.params.login.user
所以在你的情况下如果你这样调用量角器:
protractor ... --params.login.user=abc --params.login.password=123
您可以在代码中访问这些变量,如下所示:
browser.params.login.user
和browser.params.login.password
答案 1 :(得分:1)
接受答案的缺点 - 这些变量将在浏览器启动时可用。因此,如果您打算在配置中使用它们(创建 if/else 逻辑),这将不起作用。
量角器是一个节点进程。任何节点进程都可以使用自定义节点变量启动。不确定它是如何在 Windows 中完成的(如果你知道如何做,请发表评论)但对于 mac 和任何 linux/unix 操作系统,你可以
用这样的环境变量启动量角器
MY_VAR=Dev protractor tmp/config.js
然后它将在您流程中的任何地方可用
console.log(process.env.MY_VAR)