• python appium server代码启动和关闭遇到的坑


    第一次使用博客,小白级,互相交流,有说的不对的地方欢迎来喷!!!

    自动化的目的就是减少人工成本,如果每次跑自动化用例时都要手动起appium客户端,太费事了~~故,将appium server的调起和关闭写在代码中是必要的一步。

    在步骤中说坑。。。(ps:小白的坑,大神可能会嘲笑~~呼呼~~)

    1.将appium客户端打开,能够看到启动server其实是这句话> Launching Appium server with command: D:Program Files (x86)Appiumnode.exe libservermain.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version 23 --automation-name Appium --device-name "MI 3W" --language en --log-no-color,如下图:

    需要将node.exe替换成路径node_modulesappium。cmd命令其实就是node一下上述的command

    2.拿到了命令只要写入进代码就行了。这里用到了os模块,最简单的os.system就可以满足。

    关于路径的空格、()、、"的转义最是坑爹

    先将D:Program Files (x86)镜像成一个w:,然后转义\和",

    测试机的Android版本对应的appium version和手机device name是测试机独有属性,所以定义函数时加了这两个参数

    具体代码如下:

    # coding=utf-8
    import os
    import time
    
    # os.system("subst w: "D:Program Files (x86)"")  #镜像用一次就行,所以我注释掉了
    def start_AppiumS(devicename,level):
        t = "start node w:\Appium\node_modules\appium\lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-version "+level+" --automation-name Appium --device-name "" + devicename + "" --language zh_CN --log-no-color"
        os.system(t)
        time.sleep(2)
        return

    这里要刻意强调一下,os.system会阻塞进程,为避免不影响执行下一步,在命令前面一定要加start


    到这里为止,启动appium server已经搞定,下面开始写杀appium server


    1.杀appium server主要是在于取得node的进程端口号

    可用命令查询端口号 netstat -aon |findstr 4723

    用os.popen获取执行命令后的返回值,从中提取出需要的pid端口号

    说一下此处我遇到的坑吧,先上图

    按4723查到的进程有很多,os.popen获取后是以字符型存储的,且有许多空格。此处用了最笨的小白方法,去空格分割字符串~~~~~汗汗汗-_-||

    代码如下:

    def kill_AppiumS():
        process = os.popen("netstat -aon |findstr 4723").read()
        pid = process.replace('  ','').split(" ")[2]
        print(pid)
        m = os.popen("taskkill -f -pid %s" % pid)
        print(m.read())

    有不对或者需要改进的地方,欢迎大神吐槽~~

  • 相关阅读:
    Pwn2Own 内核 TencentOS
    锤子思维的局限性
    内心宁静 Life
    ANTLRWorks: The ANTLR GUI Development Environment
    汇编 while vs for
    CatBoost is a high-performance open source library for gradient boosting on decision trees
    What is ERP
    专利 案件管理系统
    质量:零缺陷 & 零Bug
    SaaS协会 腾讯千帆
  • 原文地址:https://www.cnblogs.com/zhou-Queen/p/8400702.html
Copyright © 2020-2023  润新知