Appium_12_并发

本文详细介绍了如何使用Appium并发启动多个服务以进行多设备测试,包括多进程并发启动设备和Appium服务。还讨论了端口检测与释放,以及在并发测试中遇到的问题和解决方案,如端口占用和并发用例执行。最后提到了Docker和STF在Appium并发测试中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动多个Appium服务

前面课程只是启动了单个appium服务,只能控制单台设备。如果需要针对多台设备测试那么该如何处理?

首先看下面两个启动appium服务案例。

启动appium服务1

C:\Users\Shuqing>appium -p 4723

[Appium] Welcome to Appium v1.7.2

[Appium] Appium REST http interface listener started on 0.0.0.0:4723

 

 

启动appium 服务2

C:\Users\Shuqing>appium -p 4725

[Appium] Welcome to Appium v1.7.2

[Appium] Non-default server args:

[Appium]   port: 4725

[Appium] Appium REST http interface listener started on 0.0.0.0:4725

 

上面案例我们启动了2个不同的appium服务器,他们通过不同的端口来区分不同的服务;如同百米赛跑要给不同的运动员安排不同的赛道,每个运动员也只能在自己指定的赛道进行比赛。

Appium常用参数

参数

默认值

含义

-U, --udid

null

连接物理设备的唯一设备标识符

-a, --address

0.0.0.0

监听的 ip 地址

-p, --port

4723

监听的端口

-bp, --bootstrap-port

4724

连接Android设备的端口号(Android-only)

-g, --log

null

将日志输出到指定文件

--no-reset

false

session 之间不重置应用状态

--session-override

false

允许 session 被覆盖 (冲突的话)

--app-activity

null

打开Android应用时,启动的 Activity(Android-only) 的名字

--app

null

本地绝对路径_或_远程 http URL 所指向的一个安装包

更多参数请输入命令: appium -h

Appium安卓手机每次运行时都要安装 Unlock、Setting解决方案

首先通过如下命令找到appium的安装路径

C:\Users\Shuqing>where appium

C:\Users\Shuqing\AppData\Roaming\npm\appium

C:\Users\Shuqing\AppData\Roaming\npm\appium.cmd

1.打开 C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\lib 中的android-helpers.js

#注释475行如下代码

//await helpers.pushSettingsApp(adb);

 

#注释486行如下代码

//await helpers.pushUnlock(adb);

2.打开C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\appium-android-driver\build\lib中的android-helpers.js

#注释1128行下面这行代码

//return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));

 

#修改为如下:

return context$1$0.abrupt('return', defaultIME);

 

#注释1163行下面这行代码

//return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));

 

#修改如下:

return context$1$0.abrupt('return', defaultIME);

 

 

修改完成后重启Appium服务即可,如果新设备没有这个两个守护App可以手动安装这两个App到设备。

Appium Setting路径 :

{appium安装路径}\node_modules\_io.appium.settings@2.4.0@io.appium.settings\app\build\outputs\apk\settings_apk-debug.apk

 

eg:

C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\_io.appium.settings@2.4.0@io.appium.settings\app\build\outputs\apk\settings_apk-debug.apk

Unlock app路径:

appium安装路径\node_modules\_appium-unlock@2.0.0@appium-unlock\bin \unlock_apk-debug.apk

 

eg

C:\Users\Shuqing\AppData\Roaming\npm\node_modules\appium\node_modules\_io.appium.settings@2.4.0@io.appium.settings\app\build\outputs\apk\unlock_apk-debug.apk

多设备启动

前面我们已经启动了多个appium服务,那么接下来我们可以基于这些服务来启动不同的设备。

测试场景

连接以下2台设备,然后分别启动考研帮App

  • 设备1:127.0.0.1:62001
  • 设备2:127.0.0.1:62025

代码实现

multi_device.py

from appium import webdriver

import yaml

from time import ctime

 

with open('desired_caps.yaml','r')as file:

    data=yaml.load(file)

 

devices_list=['127.0.0.1:62001','127.0.0.1:62025']

 

def appium_desire(udid,port):

    desired_caps={}

    desired_caps['platformName']=data['platformName']

    desired_caps['platformVersion']=data['platformVersion']

    desired_caps['deviceName']=data['deviceName']

    desired_caps[<

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值