【问题标题】:Robot Framework: Is there a way to set a secure test variable?Robot Framework:有没有办法设置一个安全的测试变量?
【发布时间】:2018-09-16 21:12:02
【问题描述】:
我正在使用机器人框架,并且正在设置一个使用内置库“设置测试变量”命令重置密码变量的函数,但是它将新变量名称存储在机器人框架日志中。
是否有任何现有的关键字可以在测试期间安全地设置变量,以便实际的变量更改不会显示在 Robot Framework 日志中?一些可以做到这一点的安全关键字,类似于 SeleniumLibrary 的 Input Password 用于在字段中输入密码,但不会将密码存储在日志中?
这是我目前的样子,但新变量显示在日志输出中:
*** Keywords ***
Set Password Variable keyword
Set Test Variable ${current_pw} ${new_pw}
【问题讨论】:
标签:
security
logging
robotframework
【解决方案1】:
鉴于日志记录是测试执行的核心,在我看来,有一个安全的测试步骤有点矛盾。最好的方法是被测系统不包含任何有趣的信息,并且使用的帐户不提供对任何其他系统的访问。
除了使用仅在(短)测试周期期间有效的临时帐户外,还有助于保护信息有价值的环境。但是,由于有缺陷的软件可能会触发屏幕截图或日志信息,否则不会记录下来,这些类型的 t 检验中生成的日志文件应该只有那些有权访问原始数据的员工才能访问。
综上所述,您可以做一些事情来帮助您在 Robot Script 中的事业。
第一个是从命令行或使用变量文件创建所有必需的变量。因为它们是在开始记录之前创建的,所以没有记录。
第二个是创建一个自定义 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}