美文网首页软件测试
ATX与Appium的对比(Android篇)

ATX与Appium的对比(Android篇)

作者: Lydia1991 | 来源:发表于2020-06-02 11:15 被阅读0次

2018年学习的Appium,2019年接触ATX,虽然ATX仅支持Python,但是我一直都是用的Python。

PS:也有大神写出了Java版本的ATX,需要的小伙伴自行查看:

https://testerhome.com/hu_qingen

一、 架构区别

Appium: 使用**WebDriver协议**驱动iOS,Android和Windows应用程序。

Appium架构

ATX:是在手机上运行了一个http rpc服务atx-agent,将uiautomator2中的功能开放出来,然后再将这些http接口封装成Python库。

ATX架构

二、安装区别

Appium需下载安装:

Appium Desktop, Java,AndroidSDK,Appium server, Appium-Python-Client

安装过程繁琐复杂,之后把手机接到电脑上,appium会自动把各种程序安装到手机上。

ATX需下载安装:

adb,uiautomator2

安装adb: 只下载adb压缩包去解压即可:

链接:https://pan.baidu.com/s/1SKu24yyShwg16lyIupO5VA提取码:ih0i

安装完成后执行命令adb version查看版本,验证是否安装成功。

安装uiautomator命令:pip install --pre -U uiautomator2

三、Appium desktop与ATX weditor

Appium需要构造一个desiredCapabilities:

ATX无需配置这些文件,必需的字段只有一个设备的序列号。其他的都是可选的。对于是否启动应用给用户提供了的选择权,将其翻译为完整的atx代码为:

import uiautomator2asu2

d=u2.connect("cff37bce3")

d.set_fastinput_ime(True)

s=d.session("com.netease.cloudmusic")

这里省略了appActivity,因为atx会自动解析出来相应的appActivity。fastinput_ime是专门为自动化定制的输入法,支持中文的输入,和一些特殊的指令如搜索,清空。

d.session函数对应于appium的session机制,每次运行相关代码的时候都会先检测一下应用是否存活。

四、控件的选择和操作

Appium常用定位元素的方法为find_element_by_xpath,find_element_by_id,find_element_by_text

一种常见的写法为:

# 设置元素的查找时间10s

driver.implicitly_wait(10)

element = driver.find_element_by_text("Settings")

if element:

     element.click()

ATX通常来说不推荐用xpath,因为要dump所有的hierarchy,速度比较慢。推荐用的时候各种查询条件混合一起使用。典型的用法为:

d(className="android.widget.Button",textContains="登录").click()

# using xpath

d.xpath('//android.widget.Button[contains(@text, "登录")]').click()

参考链接 TesterHome:https://testerhome.com/topics/14880?locale=zh-TW

相关文章

网友评论

    本文标题:ATX与Appium的对比(Android篇)

    本文链接:https://www.haomeiwen.com/subject/fovyzhtx.html