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)

原文地址:https://www.cnblogs.com/xiuxiu123456/p/11322431.html

时间: 2024-08-01 01:51:42

Appium+Python3 端口自动检测和释放的相关文章

Appium+Python3 并发测试实例

from selenium import webdriver import yaml from time import ctime with open('desired_caps.yaml','r') as f: data = yaml.load(f) desired_list=['127.0.0.1:62001','127.0.0.1:62025'] def appium_devices(udid,port): desired_caps={} desired_caps['platformNam

iOS内存泄漏自动检测工具PLeakSniffer

http://www.cocoachina.com/ios/20160706/16951.html 本文授权转自MrPeak技术分享(公众号:MrPeakTech) 新款Objective-C内存泄漏自动检测工具PLeakSniffer,GitHub地址. 背景 前些天读到WeRead团队分享的一款内存泄漏检测工具MLeaksFinder,恍惚想起早些时候自己也有过编写这样一个小工具的想法,不知道由于什么原因把这事给忘记了.在仔细读过MLeaksFinder源码,了解实现思路之后,发现和自己最初

linux 自动检测 IRQ 号

驱动在初始化时最有挑战性的问题中的一个是如何决定设备要使用哪个 IRQ 线. 驱动需 要信息来正确安装处理. 尽管程序员可用请求用户在加载时指定中断号, 这是个坏做法, 因为大部分时间用户不知道这个号, 要么因为他不配置跳线要么因为设备是无跳线的. 大 部分用户希望他们的硬件"仅仅工作"并且不感兴趣如中断号的问题. 因此自动检测中断号 是一个驱动可用性的基本需求. 有时自动探测依赖知道一些设备有很少改变的缺省动作的特性. 在这个情况下, 驱动可能 假设缺省值适用. 这确切地就是 sho

[Spring实战系列](14)Bean的自动检测

即使<context:annotation-config>有助于完全消除Spring注解中的<property>和<constructor-arg>元素,但是还是不能完全消除,仍然需要使用<bean>元素显示定义Bean.因此<context:component-scan>元素出现了,它除了完成<context:annotation-config>一样的工作,还允许Spring自动检测Bean和定义Bean.这就意味着我们不使用<

Elasticsearch 动态映射——自动检测

ES中有一个非常重要的特性——动态映射,即索引文档前不需要创建索引.类型等信息,在索引的同时会自动完成索引.类型.映射的创建. 那么什么是映射呢?映射就是描述字段的类型.如何进行分析.如何进行索引等内容. 本篇就着重讲述下,ES中映射的自动检测特性. 更多内容参考:Elastisearch知识总结 字段自动检测 在某个字段第一次出现时,如果之前没有定义过映射,ES会自动检测它可能满足的类型,然后创建对应的映射. JSON数据 ES中的数据类型 null 不会添加字段 true or false

扩展一个字符自动长度自动检测的函数

/** * 扩展一个字符自动长度自动检测的函数 * @param {[type]} max [description] * @param {Function} callback [description] * @return {[type]} [description] */ jQuery.fn.maxLength = function(max, callback) { this.each(function(){ var type = this.tagName.toLowerCase(); va

Ajax实现:注册时自动检测用户名是否存在

当光标离开用户名文本框时,自动检测当前用户名是否可以用于注册 1 <tr> 2 <td width="231px" align="center" valign="top" style="height: 26px">用户名</td> 3 <td valign="top" width="357px" align="left" st

多线程.NET条码读写控件自动检测条码的方位条形码控件VintaSoftBarcode

VintaSoftBarcode.NET Library 条形码控件是一个完美的条码读写.NET 库,支持从数码图片读取条码或者生成数码图片条码. 具体功能: 支持多线程 支持创建条码图片 支持为生成的条码指定大小和分辨率 拥有许多选项控制条码创建 支持从图片对象.图片文件.和PDF文档读取条码 编程环境:.NET 框架. 这是一个可完全操纵的.NET 库,保证在.NET 框架中实现快速工作. 能够识别图片中的所有条码. 确认已识别的条码类型. 返回条码的字符串值. 自动检测条码的方位. 返回条

LoonAndroid自动检测输入框 (转)

LoonAndroid框架,同时给我们提供了一套自动检测输入规则的工具,用起来很是方便,下面介绍一下这个东东的使用方法(注意,该说明是基于项目已经集成了LoonAndroid框架而言,如果您未集成该框架,请先按照相关说明集成该框架而后方能使用): 1.Validator 验证器类 ①实例化: Validator validator = new Validator(this): ②设置监听回调:validator.setValidationListener(...) 其中监听接口为:Validat