将您的密码隐藏在测试用例的java类文件中

时间:2014-10-08 23:09:47

标签: java testing selenium jenkins information-hiding

我正在尝试编写一个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();

我想做的不是显示"密码"在那里,我不希望其他员工看到我的密码。 我有什么方法可以做到吗?

3 个答案:

答案 0 :(得分:2)

你总是可以对它进行加密或者对它进行加密,所以它至少不是纯文本,但说实话,任何类型的硬编码密码加密如果有/可以看到源代码就可以反转。 / p>

答案 1 :(得分:1)

好吧,我正在考虑它,就像你说base64或加密很容易逆转。 我通过使用AutoIT找到了一种方法。因此,不是向webelement发送字符(加密或不加密), 我创建了一个.exe文件并执行了此操作

调用Runtime.getRuntime()EXEC( “password.exe”);

它完美无瑕地工作。我知道很难反编译.exe文件。

您认为这是最好的解决方案吗?

答案 2 :(得分:0)

如果测试只能从Jenkins运行,您可以使用Jenkins环境变量来存储密码。

Jenkins支持即使在控制台日志中也会隐藏 *** 的密码环境变量。此密码可以全局配置(可用于所有作业)或按作业配置(在这种情况下,只有具有访问权限的人才可以查看该密码,甚至不能直接查看。

我已详细解释了如何配置此in this answer