robotframework--SSHLibrary--出现 OSError: Socket is closed,解决方案

背景

自动化用例跑的足够长之后

会随机出现OSError: Socket is closed

这种问题是随机出现的,应该是SSHLibrary或系统问题的问题

本文针对可能的SSHLibrary问题加以解决

原因

原因是TCP连接,被执行机所在系统自行断开了

解决办法

SSHLibrary调用的是paramiko

所以解决问题的方式,是利用paramiko来解决

实施方案

在SSHLibrary\pythonclient.py文件中增加如下代码:

self._shell.keep_this = client

class Shell(AbstractShell):

    def __init__(self, client, term_type, term_width, term_height):
        self._shell = client.invoke_shell(term_type, term_width, term_height)
        # add use to solve socket.error: Socket is closed
        self._shell.keep_this = client

最后的说明

不一定完全可行,和科学一样,只能被证实,不能被证伪,反正我的改好后,就还没出现过

 

2019年10月10好接着补充解决方案

经过调查,我的客户端出现问题,在切换连接后出现的,疑似切换链接失败了

所以在切换链接之后,增加可靠性,可能更靠铺

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值