Appium Appium (iOS) 并行测试方法

fdeferf · 2017年05月10日 · 最后由 不贱不散 回复于 2019年08月09日 · 1946 次阅读

介绍:

  1. 指定 Appium 的服务端口和代码中设置的 driver 端口一致
  2. 设置 wdaLocalPort 要保证和其他测试的端口不同
  3. 设置 udid

appium 服务端口 4723 默认

appium -p 4723 

iproxy 默认端口转发 8100

capabilities.setCapability("wdaLocalPort", "8001");

设置 udid

capabilities.setCapability("udid","xxxx");

提示:

deviceName 可以不修改

platformVersion 可以写测试设备中最高的版本

使用 wdaLocalPort 属性修改 iProxy 转发端口

为保证每次测试成功最好加上 xcodeOrgIdxcodeSigningId

测试网页(暂未实验)

You should start webkit in two different terminal;
Device 1 :
ios_webkit_debug_proxy -c udid1:27753 -d

Device 2 :
ios_webkit_debug_proxy -c udid2:27754 -d

And start appium for each devices with udid's and webkit port's ;

Device 1 :
appium -U udid1 --webkit-debug-proxy-port 27753

Device 2 :
appium -U udid2 --webkit-debug-proxy-port 27754
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 16 条回复 时间 点赞

端口分配了不同的,运行还是串行的,无法并行

fdeferf 回复

我刚刚试了一下,初始化的时候前后初始化了两台不同的 iphone,cap 里面加入了不同 wdaLocalPort,但是测试还是只会在后一台被初始化的设备上启动。所以还是不太明白 LZ 到底是怎么设置的。。。虚心求解。

PS.之前的说法不是一直都是 iOS 本地真机只能串行测试不能并行测试么?

请问在代码中要如何写?只需在不同设备的 capabilities 设置中加入这条指令就可以么?

capabilities.setCapability("wdaLocalPort", "8001");

lz 能否贴下代码?非常感谢!
这个方法适用于多台真机还是多台模拟器?

gundamsing 回复

不同的设备, wdaLocalPort 的值不同, 比如我第一个设备的值是 8001, 那第二个设备可以是 8002, 只要不冲突即可, 这是真机的方法, 模拟器应该没有这么麻烦

gundamsing 回复

严格来说,那也可能我的这种方法也是串行的。

  1. 首先启动两个端口不同的 appium
  2. 启动第一个真机的用例(修改 driver 端口和 udid),wdaLocalPort 的值为 8001
  3. 启动第二个真机的用例(修改 driver 端口和 udid),wdaLocalPort 的值为 8002

我这边的用到并行的不多,参数也是手动改的,理论上这些都可以用代码代替,自动生成和修改这些参数

请教一下,我是直接下载 appium.app,请问在哪可以直接写代码呢?

浅浅 回复

Appium 软件里不能写代码,在你的开发工具里新建文件写,可以参考官方 DEMO

曾经试过这样的方式,其实跟 android 是一样的,但是达不到并行的效果,所以不知道是不是那里设置有问题

@mamian 我用的 Mac 机 做 iOS 测试,用的开发工具是 Xcode,是在 Xcode 里面的 xcuitest 写测试代码吗?

fdeferf 回复

命令行启动话的,是不是一定要到 appium 的目录下去启动 appium,现在我在命令行敲 appium 直接报错。(我安装 appium 不是按照命令行安装的,是按照 dmg 安装的)

Wu 回复

dmg 是 GUI 客户端, 要用 nodejs 安装

Wu 回复

你尝试一下, 开一个客户端, 然后开 2 个 Session

Wu 回复

最好不要用客户端, 用 shell 执行, 针对不同的端口 appium -p 端口号

@mamian 有什么方法一台 MAC 上打开 2 个 Appium 客户端吗?

fdeferf 回复

这样子啊,因为我只是想做一个 MAC 上运行 IOS 和 Android 两种设备,最直接的办法就是修改端口就好了(个人的思路),所以如果能能打开 2 个 GUI 的客户端,修改两个端口基本上应该就可以执行,现在我就是不知道要怎样才能打开 2 个客户端,你有尝试打开过 2 个 GUI 客户端吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册