gpt4 book ai didi

python - 从机器人框架调用 Python

转载 作者:行者123 更新时间:2023-11-28 20:03:03 24 4
gpt4 key购买 nike

我是 Robot Framework 的新手 - 我曾尝试将此代码调用到 Robot Framework,但无济于事。我只需要一些帮助才能在机器人框架中运行我的 python 脚本并在该应用程序中返回 PASS 和 FAIL。对此的任何帮助将不胜感激。

# -*- coding: utf-8 -*-
import paramiko
import time,sys
from datetime import datetime
from time import sleep

prompt = "#"

datetime = datetime.now()

ssh_pre = paramiko.SSHClient()
ssh_pre.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_pre.connect("192.168.0.1",22, "admin", "admin")
output=""
ssh = ssh_pre.invoke_shell()
sys.stdout=open("ssh_session_dump.txt","w")

print("Script Start Date and Time: ", '%s/%s/%s' % (datetime.month, datetime.day, datetime.year), '%s:%s:%s' % (datetime.hour, datetime.minute, datetime.second))

model="XV4-17034"

ssh.send("more off\n")
if ssh.recv_ready():
output = ssh.recv(1000)
ssh.send("show system-info\n")
sleep(5)
output = ssh.recv(5000)

output=output.decode('utf-8')
lines=output.split("\n")

for item in lines:
if "Model:" in item:
line=item.split()
if line[1]==model+',':
print("Test Case 1.1 - PASS - Model is an " + model)
else:
print("Test Case 1.1 - FAIL - Model is not an " + model)

ssh.send( "quit\n" )
ssh.close()

datetime = datetime.now()

print("")
print("Script End Date and Time: ", '%s/%s/%s' % (datetime.month, datetime.day, datetime.year), '%s:%s:%s' % (datetime.hour, datetime.minute, datetime.second))
print("")
sys.stdout.close()

最佳答案

如果这是我的项目,我会将代码转换为一个函数,然后创建一个包含该函数的关键字库。

例如,您可以创建一个名为 CustomLibrary.py 的文件,其函数定义如下:

def verify_model(model):
prompt = "#"
datetime = datetime.now()
ssh_pre = paramiko.SSHClient()
...
for item in lines:
if "Model:" in item:
line=item.split()
if line[1]==model+',':
return True
else:
raise Exception("Model was %s, expected %s" % (line[1], model))
...

然后,您可以像这样创建一个机器人测试:

*** Settings ***
Library CustomLibrary

*** Test cases ***
Verify model is Foo
verify model foo

当然,它比这稍微复杂一点。例如,您可能需要更改函数中的逻辑以保证在返回之前关闭连接。不过,总的来说,这是一般方法:创建一个或多个函数,将它们作为库导入,然后从机器人测试中调用函数。

关于python - 从机器人框架调用 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44311287/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com