python3+uiautomator2多设备执行测试用例(多进程,同时执行)

多设备执行测试用例(多进程,同时执行)

import multiprocessing as np
import uiautomator2  as u2
import subprocess
import time

def getphonelist():  # 获取手机设备
    cmd = r'adb devices'  # % apk_file
    pr = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
    pr.wait()  # 不会马上返回输出的命令,需要等待
    out = pr.stdout.readlines()  # out = pr.stdout.read().decode("UTF-8")
    devices = []
    for i in (out)[1:-1]:
        device = str(i).split("\\")[0].split("'")[-1]
        devices.append(device)
    return devices  # 手机设备列表

def test_xxx(i):  #执行用例
    d = u2.connect(getphonelist()[int(i)])  # d = u2.connect('192.168.1.117')#  uiautomator2 连接手机
    MultiDevice(d)

def MultiDevice( d):  # 功能执行

    d.screen_on()
    d.app_start('com.tencent.mm')
    time.sleep(2)
    d.screen_off()

def main():#多进程

    for i in range(len(getphonelist())):  #有几个设备起几个进程
        p = np.Process(target=test_xxx, args=(str(i)))
        p.start()

if __name__ == '__main__':
    main()

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
要实现pytest+uiautomator2多进程设备执行,可以按照以下步骤操作: 1. 安装pytest-xdist插件,可以使用pip install pytest-xdist命令进行安装。 2. 编写pytest.ini配置文件,指定pytest-xdist插件的参数,例如: ``` [pytest] addopts = -n 3 ``` 其中,-n参数指定了使用3个进程执行测试用例。 3. 编写conftest.py配置文件,使用pytest_addoption函数添加自定义参数,例如: ``` def pytest_addoption(parser): parser.addoption('--devices', action='store', default='device1,device2', help='设备列表') ``` 其中,--devices参数指定了要执行测试用例设备列表。 4. 编写pytest fixture,使用pytest.fixture装饰器定义uiautomator2的设备对象,例如: ``` import pytest import uiautomator2 as u2 @pytest.fixture(scope='module', params=['device1', 'device2']) def device(request): device_name = request.param d = u2.connect(device_name) return d ``` 其中,params参数指定了要执行测试用例设备列表,fixture名称为device,作用域为module,返回uiautomator2的设备对象。 5. 编写测试用例,使用fixture名称作为参数,例如: ``` def test_example(device): assert device.app_current()['package'] == 'com.android.settings' ``` 其中,device参数为fixture名称,表示传入uiautomator2的设备对象。 6. 执行测试,使用pytest命令执行测试用例,例如: ``` pytest -s -v --devices=device1,device2 ``` 其中,--devices参数指定了要执行测试用例设备列表。 这样,就可以实现pytest+uiautomator2多进程设备执行测试用例了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值