寻找一种在 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
您可以使用 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}
您可以避免使用 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 或更高版本)。