机器人框架:有没有办法设置安全的测试变量?

时间:2018-04-06 19:11:18

标签: security logging robotframework

我正在使用Robot Framework,并且正在设置一个使用内置库“设置测试变量”命令来重置密码变量的函数,但是它将新的变量名称存储在Robot Framework Log中。

在测试期间是否存在任何现有关键字以安全地设置变量,因此实际变量更改不会显示在Robot Framework日志中?一些安全关键字可能会这样做,类似于SeleniumLibrary的输入密码,用于在字段中键入密码,但不会将密码存储在日志中?

这是我目前的方式,但新变量显示在日志输出中:

*** Keywords ***
Set Password Variable keyword
    Set Test Variable    ${current_pw}    ${new_pw}

1 个答案:

答案 0 :(得分:3)

鉴于日志记录是测试执行的核心,在我看来,安全测试步骤有点矛盾。最好的方法是被测系统不包含任何有趣的信息,并且使用的帐户不提供对任何其他系统的访问。

此外,使用临时帐户,仅在(短)测试周期的持续时间内有效,也有助于确保信息有价值的环境。但是,由于有缺陷的软件可能会触发屏幕截图或未记录的日志信息,因此只有那些有权访问原始数据的员工才能访问这些类型的t测试中生成的日志文件。

所有这些都说明了,你可以采取一些措施来帮助你在机器人脚本中找到自己的事业。

首先是从命令行或使用变量文件创建所有必需的变量。由于它们是在启动日志记录之前创建的,因此未记录。

第二个是创建一个提取和使用安全值的自定义python关键字。这可以防止任何日志记录,最有可能和泄漏值。

最后一个是使用Set Log Level关键字。但是,这种方法有一个缺点,您需要假设中间步骤可能会在发生故障时无意中永久地增加或减少日志级别。这就是我添加[Teardown]示例来处理此类情况的原因。

*** Variables ***
${pwd}    Default Pass
${new_pwd}    Secure Password Value

*** Test Cases ***
TC
    ${pwd}        Set Variable     Logged Password Value

    ${prev_lvl}   Set Log Level    NONE
    ${pwd}        Set Variable     
    ${prev_lvl}   Set Log Level    ${prev_lvl}

    [Teardown]    Run Keyword If    "${prev_lvl}"<>"NONE"    Set Log Level    ${prev_lvl}