app 自动化测试 - 多设备并发 -appium+pytest+ 多线程

1、appium+python 实现单设备的 app 自动化测试

启动 appium server,占用端口 4723

电脑与一个设备连接,通过 adb devices 获取已连接的设备

python 代码当中,编写启动参数,通过 pytest 编写测试用例,来进行自动化测试。



2、若要多设备并发,同时执行自动化测试,那么需要:

确定设备个数

每个设备对应一个 appium server 的端口号,并启动 appium

pytest 要获取到每个设备的启动参数,然后执行自动化测试。

app 自动化测试 - 多设备并发 -appium+pytest+ 多线程

 

 

 

  3、实现策略

第一步:从设备池当中,获取当前连接的设备。若设备池为空,则无设备连接。

第二步:若设备池不为空,启动一个线程,用来启动appium server.与设备个数对应。
            起始server端口为4723,每多一个设备,端口号默认+4

第三步:若设备池不为空,则启用多个线程,来执行app自动化测试。

 

 

4、具体实现步骤 4.1 通过 adb 命令,获取当前已连接的设备数、设备名称、设备的安卓版本号。

定义一个 ManageDevices 类。

1. 重启adb服务。
2. 通过adb devices命令获取当前平台中,已连接的设备个数,和设备uuid.
3. 通过adb -P 5037 -s 设备uuid shell getprop ro.build.version.release获取每一个设备的版本号。
4. 将所有已连接设备的设备名称、设备版本号存储在一个列表当中。
5. 通过调用get_devices_info函数,即可获得4中的列表。

 

实现的部分代码为:

""" @Title : app多设备并发-appium+pytest @Author : 柠檬班-小简 @Email : lemonban_simple@qq.com """ class ManageDevices: """ 1、重启adb服务。 2、通过adb devices命令获取当前平台中,已连接的设备个数,和设备uuid. 3、通过adb -P 5037 -s 设备uuid shell getprop ro.build.version.release获取每一个设备的版本号。 4、将所有已连接设备的设备名称、设备版本号存储在一个列表当中。 5、通过调用get_devices_info函数,即可获得4中的列表。 """ def __init__(self): self.__devices_info = [] # 重启adb服务 self.__run_command_and_get_stout("adb kill-server") self.__run_command_and_get_stout("adb start-server") def get_devices_info(self): """ 获取已连接设备的uuid,和版本号。 :return: 所有已连接设备的uuid,和版本号。 """ self.__get_devices_uuid() print(self.__devices_info) self.__get_device_platform_vesion() return self.__devices_info

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxszz.html