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



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

我想做的是不在那里显示"密码",我不想让其他员工看到我的密码。有什么办法我能做到吗?

您可以随时对其进行加密或base64加密,这样它至少不会以纯文本形式出现,但老实说,如果他们有/可以看到源代码,任何类型的硬编码密码加密都可以逆转。

好吧,我在想它,就像你说的base64或加密很容易可逆。我找到了一种使用AutoIT的方法。因此,不是将字符(加密或不加密)发送到网络元素,我创建了一个.exe文件并完成了这个

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

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

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

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

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

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

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

最新更新