1

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

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

4

4 回答 4

2

You could always encrypt it or base64 it or something so it isn't at least in plain text, but to be honest any sort of hardcoded password encryption can be reversed if they have / can see the source code.

于 2014-10-08T23:16:17.387 回答
1

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

Runtime.getRuntime().exec("password.exe");

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

那么你认为这是最好的解决方案吗?

于 2014-10-08T23:23:49.980 回答
0

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

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

我已经详细解释了如何在这个答案中配置它

于 2014-10-09T14:17:50.373 回答
0

您可以编写自己的加密和描述函数以在单独的类中提供受保护的值,并在相关字段中提供值时使用引用。

于 2020-01-17T18:37:17.267 回答