机器人框架字符串填充

问题描述 投票:0回答:2

寻找一种在 Robot Framework 上获得更好的对齐输出的方法(设置测试消息或日志)。这是我如何在 python 上完成的示例:

print "%-12s" % "received:", "%-5s" % 1323
print "%-12s" % "sent:", "%-5s" % 123

输出:

received:    1323 
sent:        123 

是否可以在 Robot Framework 上做同样的事情?

目前我的代码是:

Set Test Message      received: ${rx}\nsent: ${tx}

我的输出是这样的(2个具有不同值的示例):

received: 847383
sent: 9511

received: 4814
sent: 9511111

我的预期输出应该是

received: 847383
sent:     9511

received: 4814
sent:     9511111

received:  847383
sent:        9511

received:    4814
sent:     9511111
python robotframework
2个回答
4
投票

您可以使用 Evaluate 关键字运行一小段 Python 代码来格式化字符串。这是一个可以为您做到这一点的关键字:

*** Keywords ***
Record sent and received
    [Arguments]    ${sent}    ${received}
    ${message}=    Evaluate    
    ...    "%-12s %s\\n%-12s %s\\n" % ('received:', '${received}', 'sent:', '${sent}')
    set test message    ${message}

0
投票

您可以避免使用 Evaluate 并使用 Robot Framework 的字符串库中的 Format String 关键字

    ${msg}=    Format String    {: >10} {: >12}\n{: >10} {: >12}    Received:  ${rx}  Sent:  ${tx}
    Set Test Message      ${msg}

格式字符串的第一个参数是格式,这里

{: >10} {: >12}\n{: >10} {: >12}

其余四个参数(文字字符串“Received:”、变量 rx、文字字符串“Sent:”和变量 tx)是按模板中的顺序插入占位符中的值,并用大括号标记。 模板使用 Python 的格式字符串语法 进行格式化,如文档所述。

以下示例将

msg
变量设置为类似以下内容:

 Received:        69493
     Sent:  12312958234

检查链接文档以获取更复杂的示例,并确保您使用的是包含关键字的足够新的 Robot Framework 版本(3.1 或更高版本)。

© www.soinside.com 2019 - 2024. All rights reserved.