• 1
  • 0
分享

1. 通过cmd窗口命令启动

1.1 启动单个appium服务

打开cmd,直接输入:appium

这里默认启动的端口是4723,如果没有被占用的情况

C:\Users\Carl_奕然>appium
[Appium] Welcome to Appium v1.17.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

也可以直接输入:appium -p 4723

C:\Users\Carl_奕然>appium -p 4723
[Appium] Welcome to Appium v1.17.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

1.2 启动多个appium服务

启动多个appium,就是指定端口号即可 :appium -p 端口号

启动appium服务 1

C:\Users\Carl_奕然>appium -p 4723
[Appium] Welcome to Appium v1.17.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

启动appium服务 2

C:\Users\Carl_奕然>appium -p 4725
[Appium] Welcome to Appium v1.17.1
[Appium] Non-default server args:
[Appium]   port: 4725
[Appium] Appium REST http interface listener started on 0.0.0.0:4725

以上时通过cmd命令来启动。

是不是很简单。

2. 通过python脚本来启动

但是呢,作为一只老鱼,觉得手动启动太多服务,有点费劲,于是乎~~

搞个脚本,一次启动多个服务,

剩下的时间,嘿嘿…是不是很香~

2.1 启动单个appium服务

# -*- coding: utf-8 -*-
"""
@ auth : Carl_奕然
@ time : 2022-8-11
"""
import subprocess
import time
def appium_start(host,port):
    '''
    启动appium server
    :param host:
    :param port:
    :return:
    '''
    #指定bp端口号
    bootstrap_port = str(port+1)
    #把在cmd弹窗输入的命令,直接写到这里
    # cmd = 'start /b appium -a ' + host+' -p '+str(port) +' -bp '+ str(bootstrap_port)
    #去掉 “/b”,即可以打开cmd弹窗运行
    cmd = 'start  appium -a ' + host+' -p '+str(port) +' -bp '+ str(bootstrap_port)
    # 打印输入的cmd命令,及时间
    print("%s at %s " %(cmd,time.ctime()))
    subprocess.Popen(cmd,shell=True,stdout=open('./appium_log/'+str(port)+'.log','a'),stderr=subprocess.STDOUT)
if __name__ == '__main__':
    host = '127.0.0.1'
    #运行一个端口
    port = 4723
    appium_start(host,port)
    #运行2个端口

2.2 启动多个appium服务

# -*- coding: utf-8 -*-
"""
@ auth : Carl_奕然
@ time : 2022-8-11
"""

import subprocess
import time
def appium_start(host,port):
    '''
    启动appium server
    :param host:
    :param port:
    :return:
    '''
    #指定bp端口号
    bootstrap_port = str(port+1)
    #把在cmd弹窗输入的命令,直接写到这里
    cmd = 'start /b appium -a ' + host+' -p '+str(port) +' -bp '+ str(bootstrap_port)
    #去掉 “/b”,即可以打开cmd弹窗运行
    #cmd = 'start  appium -a ' + host+' -p '+str(port) +' -bp '+ str(bootstrap_port)
    # 打印输入的cmd命令,及时间
    print("%s at %s " %(cmd,time.ctime()))
    subprocess.Popen(cmd,shell=True,stdout=open('./appium_log/'+str(port)+'.log','a'),stderr=subprocess.STDOUT)
if __name__ == '__main__':
    host = '127.0.0.1'
    #运行2个端口,使用for循环即可
    for i in range(2):
        port = 4723 + 2*1
        appium_start(host,port)

这里有3点说一下:

一、端口号设置

①Appium服务器端口:4723 ,bp端口:4724

①Appium服务器端口:4725 ,bp端口:4726

可以看到,appium服务器端口和bp端口是相差一位的,

那什么是bp端口呢,

>>bp端口(–bootstrap-port),是appium和设备之间通讯的端口,如果不能指定到,则无法运行多台设备脚本。

这是不是就明白了。

二、脚本命令写法

在cmd窗口,我们运行设备,是 appium -a host -p 端口号 -bp 端口号

那么我们写在python脚本就是一样的,只不过参数化而已。

/b :不打开弹窗运行

三、输入到日志

stdout=open('./appium_log/'+str(port)+'.log','a')

3. 启动校验

3.1 通过cmd命令查看

3.1.1 查看指定端口号

netstat -ano |findstr 端口号

3.1.2 查看全部端口号

netstat -ano

3.2 通过生成的log文件查看

直接在生成的log文件中,查看即可

①生成的log文件

811.png

②log文件的内容

11.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   前言  在学习计算机操作的系统的时候,分页存储管理与分段存储管理十分容易令人混淆,对其含义进行详细解读,能够加强我们对存储管理的整体理解。  存储管理  存储管理的对象是主存储器(主存、内存)。存储器能够存放各种信息,是计算机系统中的关键资源。其主要功能包括分配和回收主存空间、提高主存利用率、扩充主存、对主存信息实现有效保护。  存储管理的主要目的是解决多个用户使用主存的问题。分页存储管理、分段存储管理是两种重要的管理方案。  分页存储管理  将一个进程的地址空间划分成若干个大小相等的区域,称为页。  相应地,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。为进程分配主存时,可将...
            0 0 871
            分享
          •   关于Gato  Gato是一款针对GitHub的信息枚举和渗透测试工具,该工具是一个GitHub自托管的安全测试工具。在该工具的帮助下,广大蓝队研究人员或渗透测试安全研究人员就可以轻松评估目标组织的GitHub安全性,并尝试枚举其中存在安全问题的个人访问令牌或其他安全问题。  值得一提的是,GitHub建议仅将自托管运行程序用于私有存储库,然而有成千上万的组织仍然会在公共代码库中使用自托管运行程序。因此,该工具还可以搜索并枚举使用了自托管运行程序的GitHub公共存储库。  功能介绍  1、GitHub PAT特权枚举;  2、基于API的GitHub代码搜索枚举;  3、GitHub A...
            0 0 896
            分享
          •   为什么要做分层测试  从软件工程的角度,结合软件开发的V模型、MVC架构、测试金字塔,综合起来便于理解。  1.借鉴与软件开发的V模型  从V模型的底部往右上方向,先做单元测试,再做集成测试一直到最后的验收测试。  2.来源于MVC架构  MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。  我们可以简单理解为V是用户看到的界面,C是中间逻辑,M是数据。对于现在流行的微服务SOA来说,V就是前端WEB或者APP, C就是中间密密麻麻的各种接口,M就是最下层的数据:  3.来源于测试金子塔  testing ...
            0 0 1408
            分享
          • 前言例如:测试工程师面试题目1、软件的生命周期有哪些阶段?① 需求阶段分析和学习阶段,团队去查看这个需求是不是可测的。② 计划阶段辨别出哪些活动和资源和测试的目标时匹配的,辨别并追踪这些测试的指标、计划。③ 分析阶段通过需求文档等条件辨别测试条件,追溯到需求。④ 设计阶段概述测试条件;获取测试数据;搭建环境;跟踪测试指标。⑤ 编码阶段创建详细的测试用例,进行编码。⑥ 运行和维护阶段⑦ 总结阶段检验完成度和用户满意度。2、测试的整个流程有哪些① 需求评审阅读需求,理解需求,查看是否有不符合逻辑的需求,明确测试周期。② 测试计划根据项目计划和开发人员的时候指定测试计划,包含测试内容、测试规划、测试...
            1 1 3077
            分享
          •   苹果公司将于近期发布的 iOS 17.1 更新解决了一个"可能导致显示屏烧屏"的问题。自 iPhone 15 机型发布以来,一直有零星报道称新设备出现严重的屏幕烧毁现象。有人猜测可能是 OLED 显示屏的硬件问题,但根据 iOS 17.1 更新,苹果发现并解决了这个问题。  虽然大多数显示屏问题的报告都来自 iPhone15 用户,但也有一些使用 iPhone 13 Pro 和 iPhone 12 Pro 设备的用户出现了类似问题,这很可能就是为什么苹果的发布说明没有特别提及 iPhone 15 的原因。  那些发现 iPhone 出现"烧屏"问题的...
            0 0 1165
            分享
      • 51testing软件测试圈微信