【问题标题】:Robot Framework: How to avoid a variable value from being displayed in the console during executionRobot Framework:如何避免变量值在执行过程中显示在控制台中
【发布时间】:2021-04-13 00:27:18
【问题描述】:

在我们的测试中,我以明文形式提供了服务器的 API 密钥。 为了避免这种情况,我想出了一个新的 python 脚本 Secure.py(这包括“加密”和“解密”功能)并且它工作正常。

我的机器人测试中有一个解密关键字。

*** Variables ***
${secret_phrase}    abcdefghij        
${encrypted_Key}    ardfvbjgfrtavhdimdbshajakiugbn

我使用了一个秘密短语和 API 密钥进行加密,这就是加密密钥。

*** Test Cases ***
decrypt
  ${APIKEY}   Secure.Decrypt   ${secret_phrase}  ${encrypted_Key} 
  Should Not Be Empty   ${APIKEY}  shell=no
  Set Suite Variable   ${APIKEY}   shell=no

在这个关键字中,我传递了秘密短语和加密密钥,因此我得到了 APIKEY。

#APIKEY 结果打印在控制台中,我不希望它打印在控制台中,有什么办法吗?

控制台:

${APIKEY}= asdfghjkl

【问题讨论】:

  • 控制台,你的意思是log.html文件?

标签: testing automated-tests robotframework


【解决方案1】:

您可以使用Set Log Level 禁用测试用例关键部分中的所有日志记录。该关键字将返回之前的日志级别,您可以将其存储在一个变量中,然后您可以稍后使用它来恢复原始日志级别。

将日志阈值设置为指定级别并返回旧的 级别。

低于该级别的消息将不会被记录。默认的日志记录级别是 INFO,但可以使用命令行选项覆盖它 --loglevel.

可用级别:TRACE、DEBUG、INFO(默认)、WARN、ERROR 和 NONE(无日志记录)。

一个例子:

*** Variables ***
${secret_phrase}    abcdefghij        
${encrypted_Key}    ardfvbjgfrtavhdimdbshajakiugbn


*** Test Case ***
decrypt
    ${old log level}=    Set Log Level    NONE    # disable logging
    ${APIKEY}   Set Variable    ${secret_phrase}_${encrypted_Key}
    Should Not Be Empty   ${APIKEY}
    Set Suite Variable   ${APIKEY}
    Set Log Level    ${old log level}    # enable logging
    ${public}=    Set Variable     This variable can be visible.

在这里您可以看到两个Set Log Level 调用之间的记录,没有记录任何内容,但是在恢复原始日志级别(INFO)后,日志记录又开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    相关资源
    最近更新 更多