Appium 并发和主从远程控制

最近有人在群里问并发的问题,我就把我的经验写下来供大家参考,我的这些方法其实都是从社区里的帖子找到的,没有什么新鲜的,但是有群友说还是分享一下更好;
主要参考如下帖子和回复
Appium 主从远程控制执行

连接 2 个设备测试的时候每次都只运行一个设备?

Appium Android ——利用 TestNG 并行执行用例

并发时要启动多个服务,所以端口号要不同,可以通过GUI和命令行两种方式启动多个服务并修改端口号
GUI只要点击多次就可以启动多个服务,
如下第一、第二步选取一种就可以了

1.GUI更改各种端口号
(1)更改服务端的ip和端口号,把ip改为服务端的ip,不要用127.0.0.1,要不然远程的时候,客户端连不上

(2)更改其他端口号,需要哪个就要更改哪个

2.命令行更改端口号
我的Appium是装的GUI的,但是也可以通过命令行调。
需要把Appium的相关路径加到环境变量里,路径如下
C:\Appium\node_modules.bin

命令类似如下:
appium -p 4492 -bp 2251 --selendroid-port 65222

具体见如下网址:
https://github.com/appium/appium/blob/master/docs/cn/appium-setup/parallel_tests.cn.md

3.代码的修改
(1)Android的配置里记得加上desired_caps['udid'] 这项,内容与deviceNme一致,通过adb devices查询到的,这样能保证找到手机

(2)http://192.168.11.11:4723/wd/hub

这项配置要改成你要连接的服务端的IP和端口号

我的各种配置都是通过读配置文件来完成配置的,大家可以参考

def setUp(self):
        desired_caps = {}
        desired_caps['platformName'] = global_list.ini_file.get(global_list.mobile_phone,'OS_type') #测试手机的系统类型
        desired_caps['platformVersion'] = global_list.ini_file.get(global_list.mobile_phone,'OS_version') #该手机系统的版本号
        desired_caps['deviceName'] = global_list.ini_file.get(global_list.mobile_phone,'deviceName') #该手机的deviceName,Android请用adb devices查询
        desired_caps['app'] = global_list.ini_file.get(global_list.mobile_phone,'app') #本地apk或者ipa的绝对路径,如果iPhone上安装了app,则为bundle ID
        desired_caps['udid'] = global_list.ini_file.get(global_list.mobile_phone,'udid') #iphone的udid,通过iTunes查找
        appium_server_ip = global_list.ini_file.get(global_list.mobile_phone,'appium_server_ip')
        appium_server_port = global_list.ini_file.get(global_list.mobile_phone,'appium_server_port')
        if global_list.os_type == 'Android':
            desired_caps['automationName'] = global_list.ini_file.get('android_config','automationName') #选择测试引擎
            desired_caps['appPackage'] = global_list.ini_file.get('android_config','appPackage') #app的包名,可以咨询开发
            desired_caps['appActivity'] = global_list.ini_file.get('android_config','appActivity') #咨询开发
            self.driver = webdriver.Remote('http://%s:%s/wd/hub' % (appium_server_ip,appium_server_port), desired_caps)    
        elif global_list.os_type == 'IOS':
            self.driver = webdriver.Remote(
                command_executor='http://%s:%s/wd/hub' % (appium_server_ip,appium_server_port),
                desired_capabilities = desired_caps
                )  

配置文件如下,用的ini文件

[all_need]

[email]
mail_from = 
mail_to= 
smtpserver = 
username =
password =

#capabilities
[android_config]
appPackage = com.ifengxy.ifengxycredit.ui
appActivity = .login.LoginActivity
automationName = Selendroid

#capabilities
[ios_config]

#Android app中各种查找元素用id
[android_id]
phone_number_edt = phone_number_edt
password_edt = password_edt
login_btn = login_btn

#IOS app中各种查找元素用id
[ios_id]
phone_number_edt = phone_number_edt
password_edt = password_edt
login_btn = login_btn

#手机的配置
[iphone6]
appium_server_ip = 192.168.11.11
appium_server_port = 4723
OS_type = IOS
OS_version = 8.3
deviceName =
udid = d66916b4ae8728a55f2e09e65bff579d43892080
app = 

[HUAWEI_MATE7]
appium_server_ip = 192.168.11.11
appium_server_port = 4723
OS_type = Android
OS_version = 4.4.2
deviceName = Y9K0214A14004193
udid = Y9K0214A14004193
app = D:\example\test\Credit_enter00003.apk

[MEIZU_MX4]
appium_server_ip = 192.168.11.11
appium_server_port = 4723
OS_type = Android
OS_version = 4.4.2
deviceName = 750ABLDYL593
udid = 750ABLDYL593
app = D:\example\test\Credit_enter00003.apk


通过以上配置,在不同的用例里连接不同的端口号就可以启动并发了
------------------------------------------------------------------分割线-------------------------------------------------------


4.主从远程控制
(1)在第一步已经把服务端上配置的ip由127.0.0.1改成真正的ip了,如果不改在客户端是连接不上的
在客户端的机器上如果能打开这个连接就表示可以了http://192.168.11.11:4723/wd/hub (记得把IP和端口号改掉)
显示如下文字就是正确的


(2)在客户端的那台机器上安装相应语言的Appium客户端
(3)手机要连接到服务端这台机器上
(4)在客户端上启动测试用例,连接想要的ip和端口
Android:self.driver = webdriver.Remote('http://%s:%s/wd/hub' % (appium_server_ip,appium_server_port), desired_caps)

(转载,感谢可口可乐的围脖

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值