我正在尝试编写一个selenium测试用例,该测试用例将放在公司jenkins服务器上,其中所有员工都可以访问我创建的每个java文件。
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://somesite.com");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
WebElement userName=driver.findElement(By.xpath(".//*[@id='username']"));
userName.clear();
userName.sendKeys("someName@somecompany.com");
WebElement password=driver.findElement(By.xpath(".//*[@id='password']"));
passwordclear();
password.sendKeys("password");
password.submit();
driver.quit();
我想做的不是显示"密码"在那里,我不希望其他员工看到我的密码。 我有什么方法可以做到吗?
答案 0 :(得分:2)
你总是可以对它进行加密或者对它进行加密,所以它至少不是纯文本,但说实话,任何类型的硬编码密码加密如果有/可以看到源代码就可以反转。 / p>
答案 1 :(得分:1)
好吧,我正在考虑它,就像你说base64或加密很容易逆转。 我通过使用AutoIT找到了一种方法。因此,不是向webelement发送字符(加密或不加密), 我创建了一个.exe文件并执行了此操作
调用Runtime.getRuntime()EXEC( “password.exe”);
它完美无瑕地工作。我知道很难反编译.exe文件。
您认为这是最好的解决方案吗?
答案 2 :(得分:0)
如果测试只能从Jenkins运行,您可以使用Jenkins环境变量来存储密码。
Jenkins支持即使在控制台日志中也会隐藏 ***
的密码环境变量。此密码可以全局配置(可用于所有作业)或按作业配置(在这种情况下,只有具有访问权限的人才可以查看该密码,甚至不能直接查看。
我已详细解释了如何配置此in this answer