Appium+Python3 端口自动检测和释放

Posted xiuxiu123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+Python3 端口自动检测和释放相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019-08-06 10:38
# @Author : zhouyang
# @File : check_port.py
‘‘‘
Appium端口自动检测是否被占用
shutdown(self,flag):禁止在一个Socket上进行数据的接受和发送。利用shutdown()函数使socket双向数据传输变为单向数据传输,
shutdown()需要一个单独的参数,该参数表示了如何关闭socket
参数:0:表示禁止将来读;1:表示禁止将来写;2:表示禁止将来读和写

Appium端口自动释放  端口被占用,自动释放
‘‘‘

import socket
import os

def check_port(host,port):
    ‘‘‘检测端口是否被占用‘‘‘
    #创建socket对象
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    try:
        s.connect((host,port))
        s.shutdown(2)
    except OSError as msg:
        print(port %s is available%port)
        print(msg)
        return True
    else:
        print(port %s is already use%port)
        return False


def relase_port(port):
    ‘‘‘释放指定端口‘‘‘
    #查找指定端口对应的pid
    cmd_find=netstat -aon | findstr %s%port
    print(cmd_find)

    #返回命令执行后的结果
    result=os.popen(cmd_find).read()
    print(result)

    if str(port) and LISTENING in result:
        #获取端口对应的pid进程
        i=result.index(LISTENING)
        start=i+len(LISTENING)+7
        end=result.index(\n)
        pid=result[start,end]

        #关闭被占用端口的pid
        cmd_kill=taskkill -f -pid %s%pid
        print(cmd_kill)
        os.popen(cmd_kill)
    else:
        print(port %s is available%port)


if __name__ == __main__:
    host=127.0.0.1
    port=4725
    # check_port(host,port)
    relase_port(port)

 

以上是关于Appium+Python3 端口自动检测和释放的主要内容,如果未能解决你的问题,请参考以下文章

Appium+Python3入门

appium + python编写自动化脚本

Appium+Python3+iOS真机环境搭建

[Python3网络爬虫开发实战] 1.7.3-Appium的安装

Appium+Python3环境搭建,其实超简单!软件测试教程

读懂appium原理,看这篇就够了