很多同学都有在Windows电脑上连接本地iOS设备去进行测试的需求,其中tidevice库是大家在Windows上使用的最多的iOS通信库,其中有一些接口是我们比较常用的,所以Airtest这边对一些常用的接口进行了封装,供大家日常写脚本的时候去进行调用。那么我们今天一起来看一下Airtest封装的一些接口吧~

Airtest封装的Tidevice接口

devices() :列出USB连接的所有设备的 UDID 列表

这个接口可以将本地中通过usb连接的所有iOS设备的UDID列表返回出来。

  1. devices = TIDevice.devices()

  2. print(devices)

图片

device_info(udid) :获取手机信息

通过输入udid去进行检索设备,并将检索到的设备信息返回输出,其中包括下述内容:

  • productVersion(str):产品的版本。

  • productType(str):产品的类型。

  • modelNumber(str):设备的型号。

  • serialNumber(str):设备的序列号。

  • phoneNumber(str):与设备关联的电话号码。

  • timeZone(str):设备的时区。

  • uniqueDeviceID(str):设备的唯一标识符。

  • marketName(str):设备的市场名称。


  1. from airtest.core.ios.ios import TIDevice

  2. print(TIDevice.device_info(udid))

图片

list_wda(udid) :列出手机上安装的所有WDA的 bundleID

通过该接口可以在符合特定命名规则的设备上获取该设备的所有 WDA,并返回每个WDA包名,默认是返回TIDevice.list_wda(udid)[0]


  1. from airtest.core.ios.ios import TIDevice

  2. print(TIDevice.list_wda(udid))

图片

ps_wda(udid) :获取当前启动中的WDA列表

获取满足特定命名规则的设备上所有正在运行的 WDA,并返回每个WDA包名,默认是返回TIDevice.list_wda(udid)[0]


  1. from airtest.core.ios.ios import TIDevice

  2. print(TIDevice.ps_wda(udid))

图片

xctest(wda_bundle_id):启动WDA

通过该接口可以启动指定的WDA,通过传入WDA的指定包名,调用接口即可打开对应的WDA

  1. from airtest.core.ios.ios import TIDevice

  2. import threading

  3. wda_bundle_id = TIDevice.list_wda(udid)[0]

  4. # 创建一个线程,执行xctest

  5. t = threading.Thread(target=TIDevice.xctest, args=(udid, wda_bundle_id), daemon=True)

  6. t.start()

  7. time.sleep(5)

  8. ps_wda = TIDevice.ps_wda(udid)

  9. print(ps_wda)

  10. time.sleep(5)

  11. # 终止线程

  12. t.join(timeout=3)

图片

完整演示案例

结合上面的样例,我们通过一个小小的例子来看一下具体使用的情况是怎么样的。

我们这边是先打开AirtestIDE连接上我们所需要测试的iOS设备,连接上设备后,我们先是读取并输出了所连接设备的UDID,设备信息等内容,然后读取并输出连接的iOS设备所安装的全部WDA,并启动第一个WDA,将当前在使用的WDA进行输出可以看到WDA包名是相对应的,最后直接关闭WDA服务。

图片

参考代码如下:


  1. # -*- encoding=utf8 -*-

  2. __author__ = "Airtest"

  3. from airtest.core.api import *

  4. from airtest.core.ios.ios import TIDevice

  5. import threading

  6. auto_setup(__file__)

  7. #输出电脑所连接的iOS设备udid

  8. devices = TIDevice.devices()

  9. print("电脑上连接的iOS设备的UDID是:{}".format(devices))

  10. udid = devices[0]

  11. #输出所连接设备的信息

  12. print("该设备的信息为:")

  13. print(TIDevice.device_info(udid))

  14. #输出该设备安装的全部wda包名

  15. print("该设备安装的全部wda如下:")

  16. for wda_item in TIDevice.list_wda(udid):

  17.     print(wda_item)

  18. #获取第一个wda的包名

  19. wda_bundle_id = TIDevice.list_wda(udid)[0]

  20. # 创建一个线程,执行xctest,启动第一个wda

  21. t = threading.Thread(target=TIDevice.xctest, args=(udid, wda_bundle_id), daemon=True)

  22. t.start()

  23. time.sleep(5)

  24. #输出当前启动的wda包名

  25. ps_wda = TIDevice.ps_wda(udid)

  26. print("当前设备所启动的wda是:{}".format(ps_wda))

  27. time.sleep(5)

  28. # 终止线程

  29. t.join(timeout=3)

小结

今天我们介绍了五个Airtest封装的tidevice接口以及其使用方式跟效果。

  1. devices :列出USB连接的所有设备的 UDID 列表

  2. device_info :获取手机信息

  3. list_wda :列出手机上安装的所有WDA的 bundleID

  4. ps_wda :获取当前启动中的WDA列表

  5. xctest:启动WDA

通过上面五个接口可以直接获取本地usb连接设备的一些信息,包括设备出厂信息、wda包名、iOS型号等等,这些信息可以帮助我们提取所需要的内容去进行调用。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐