如何使用RobotFramework中的参数调用Python函数?

如何使用RobotFramework中的参数调用Python函数?,python,robotframework,Python,Robotframework,我需要您帮助解决以下问题: 作为robot框架测试的一部分,我还必须通过Linux CLI执行一些验证。我已导入SSHLibrary,可以正确连接到我的Linux设备: ***关键字*** 验证所有节点上的服务 打开连接${host}prompt=REGEXP:[$|#] 登录${user}${user\u pass} SSHLibrary。阅读直到提示 写入su-\n 读取密码: 写入${root\u pass}\n 内置睡眠器 sshllibrary.Set客户端配置提示符=~] 阅读直到提

我需要您帮助解决以下问题:

作为robot框架测试的一部分,我还必须通过Linux CLI执行一些验证。我已导入SSHLibrary,可以正确连接到我的Linux设备:

***关键字***
验证所有节点上的服务
打开连接${host}prompt=REGEXP:[$|#]
登录${user}${user\u pass}
SSHLibrary。阅读直到提示
写入su-\n
读取密码:
写入${root\u pass}\n
内置睡眠器
sshllibrary.Set客户端配置提示符=~]
阅读直到提示
Write verify#此步骤调用执行所需检查的shell脚本
内置睡眠器
SSHLibrary。阅读直到提示
${output}sshllibrary。一直读到提示
日志${output}
上面的代码段将我的验证脚本的输出正确地记录到报告中,但我想更进一步

我已经编写了一个Python函数来验证上述脚本的输出

def verify_service_state(ab11, ab12, s):
    import re
    servers = [ab11, ab12]
    for i in servers:
        r1 = re.search(r"^Checking listening ports on " + (i) + " for roles: \(AB\)" + "\nThere were no errors reported.", s, re.MULTILINE)
        if (r1):
            print("Listening ports are open " + (i))
        else:
            print("Not all listening ports are open on " + (i))
        r2 = re.search(r"^Checking process counts on " + (i) + " for roles: \(AB\)" + "\nThere were no errors reported.", s, re.MULTILINE)
        if (r2):
            print("There were no errors reported on " + (i))
        else:
            print("Not all services are working as expected on " + (i))

我根据这篇文章创建了一个RF库:但是,我不清楚如何将属性传递给我的函数。

应该很简单:使用
library\path\to\your\library\file.py
在RF中导入函数/库,或者在PYTHONPATH中添加文件(或文件夹)并导入封装函数的类。例如:
库验证库

然后,在测试中,将函数用作任何其他关键字(请参阅其他示例):

或者,如果有可选参数:

Verify Service State      ab11=server1      ab12=server2      s=string

它应该很简单:您可以使用
library\the\path\to\your\library\file.py
在RF中导入函数/库,或者在PYTHONPATH中添加文件(或文件夹),然后导入封装函数的类。例如:
库验证库

然后,在测试中,将函数用作任何其他关键字(请参阅其他示例):

或者,如果有可选参数:

Verify Service State      ab11=server1      ab12=server2      s=string

谢谢你,诺姆斯!非常感谢!不客气!如果答案有助于你解决问题,你能将其标记为已接受吗?谢谢我这样做了,但是我的排名太低,所以没有出现在页面上。再次感谢!谢谢你,诺姆斯!非常感谢!不客气!如果答案有助于你解决问题,你能将其标记为已接受吗?谢谢我这样做了,但是我的排名太低,所以没有出现在页面上。再次感谢!