Python 请问,写自动化脚本的时候,有没有一种机制,可以检查一下服务是否正常,正常再跑自动化脚本,大神们,谁能贡献一下,python 检查服务是否正常的脚本

岩岩 · 2021年06月24日 · 最后由 xinxjxjxj 回复于 2021年06月25日 · 2396 次阅读

别太复杂,方法简单就好,只要服务器没有挂,就可以执行脚本

共收到 5 条回复 时间 点赞

import socket
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sk.settimeout(10)
try:
sk.connect(('XXXXXX,80'))
print('Server port 80 OK!')
except Exception:
print('Server port 80 not connect!')
sk.close()

pytest 有各种 fixure

可以用 curl 命令 检查返回吗,例如 :
curl -I -m 15 -o /dev/null -s -w %{http_code} www.baidu.com

写个 session 级别的 fixture 来做检查

类似这样的

import urllib2

def is_runnnig():
        response = None
        url = "http://127.0.0.1:8888"
        try:
            response = urllib2.urlopen(url, timeout=5)

            if str(response.getcode()).startswith("2"):
                return True
            else:
                return False
        except urllib2.URLError:
            return False
        finally:
            if response:
                response.close()

...
用while判断

while not is_runnnig():
    sleep(1)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册