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好接着补充解决方案

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

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

 

你可能感兴趣的:(自动化测试,robotframe)