Appium的安装及简单的使用介绍

本文首发于:行者AI

Appium是一个自动化开源工具,支持iOS、Android和Windows桌面平台上的原生、移动Web和混合应用的自动化。Appium是跨平台的:它允许你用同样的API对多平台(iOS、Android、Windows)写测试。做到在iOS、Android和Windows测试套件之间复用代码。

1. 下载安装及环境配置

1.1 安装python安装Appium-PyU | u 5 % J D ithon-Client库

可以使用pQ { @ M | y 0 ( Kip命令进行安装pip instx * k r & + ^ }all Appium-Python-Client& X Q 8 Z (,G L [安装完成后在python中运行此段代码from appium import webdriver校验是否安装成功 。

1.2 安装Android Si D ` nDK

J + E i .1)在官网上下载Androidx @ 1 ! F Studio,其中包含了Android SDK,网页下拉到底部的Command line tools only,下载其 c 4 2 r c x ~ M中的windows版本,下载完成后解压,CMD命令行中cd到bin目录下,输入sdk. i K ^ N k ; r Zmanager "platfrom-tools" "platforms;android-28" "build-tooV 1 y Ols;28.0.3"执行安装组件,过程中弹出Accept?(y/N),输入y回车即可。

Appium的安装及简单的使用介绍

(2)组件安装完成之后,执行以下步骤将Android SDK加入到环境8 6 u / _ s变量中。

  • 在系统环境变量中% 0 W 1 B 2 6创建ANDROID_HOME变量,值为SDK安装的根e N O S m a j U目录路径,例如:E:\andr` ` ; ^ [ t n B Moid_sdk
  • 将%ANDROID_HOME%\platform-tools加入到环境变量r a (Path中
  • 验证设置成功否:CMD命令行下输入adb version回车,可以看到当前; W C ) ? Gadb的版本信息,说明Android SDK已经安装并配置成功

1.3 安装JDK

(1)在oracle官网下载安装Je Q v k g q C 2 mDK,安装JDK8及以上的版本。

(2)安装完成后,S 8 3 V设置K ^ o ` rJDK的环境变量。

  • 在系统环境变量中创建JD ; V w I IAVA_HOME变量,值为JDK安装的跟目录路* T P径,例如:C:\Program Files[ 5 T\Java\jdk1.8.0_231
  • 在系统环境变量中创建CLAy ] : b j J ;SSPATH变量,值为 .;! b 7 r ] V%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
  • 在Path变量中添加%JAVA_HOMEN | ! c w 4 ~ 6 ?%\bin;%JAVA_HOME%\jre\bin
  • 验证JDK环境配置是否成功,CMD命令行下输入javu 2 l R A 5 h xa -version回车,可以看到当前JDK的版本信息,说明JDK已经安装并配置成功

1m H A s.4 安装appium server

(1)在appium官网上下载Appium Desktop进行安装C * Q 0 P 0 A {,找到与x d e z 3 A c V自己使用的系统对应的L & [ Q版本T x B C r o e,本次所有操作都v p U X 8 ! u是在windows上进行的。

Appium的安装及简单的使用介绍

(2)安装完成后,启动appium,host和port默认即可,在Edit Co6 ( Anfiguration中将Android SDK和Java JDK加到环境变量中。

Appium的安装及简单的使用介绍

(3)设置好后保存并重启Appium,然后启动服务,出现以下画A G g ] R 7 D y D面,说明你的appium serveV K ( /r已经正常启动了,可以开始真机测试了。

Appium的安装及简单的使用介绍

2. 真机测试

2.1 真机设置

USB连接手机,打开手机开发者模式,y A / u w g 5 C打开开发者选项中的USB调试、USB安装,小米手机还需要打开USB调试(2 N z ~ V @ q安全设置),然后在CMD8 W 4 z 3 S : a命令行输入adb devices回车,如果出现了手机的设备号,说明连接成功。

Appium的安装及简单的使用介绍

2.2 设置Appium

(1)点击Start Inspector Session对进行Desired Capabilities的配置,在JSON Ree ^ MpresT w - 0 5 entation中输入以下json数据点击保存进行快速的配置,也可以在左边一项一项的添加。r T :platformName、platformVersiob ! 0n、deviceName、appPackage、appA~ C [ &ctivity这五个参数是必填项

Appium的安装及简单的使用介绍

{
"platformName": "Android", # 声明是ios还是Android系统
"platformVersioQ o ?n": "8.1.0", # Android内核版本L Q : , L Y 8号
"deviceName": "MI_5X", # 连接的设备名称
"appPackage": "com.tencent.qqmusicz N r 4 3 + f", # apkT X T E I W _ P的包名
"appActivity": ".activity.AppStarterActivity",K A # # apk的P 8 A W v s ) IlauncherActi? # O 7vity
"resetKeyboard": True,
"noReset": True # 在开始会R S E | +话之前不r A g L d要重置应用程序状态
}

以上数据通过aD 9 ! ] f N Udb命E H 7 m ` P令获M ^ 5 s j取,获取appPackage与appActivity时需要将app启动,获取命令如下:

Appium的安装及简单的使用介绍

(2)配置好Desired Capabilities后,点击Start Session,app启动运行之后可以在界面上点击选择查看当前页面所有元素控件的详细信息,右侧Selected Element下方有三个按钮。

  • Tap执行选中元素的点击操作
  • Send Keys:为文本框等input对象传值
  • Clear:清e h . Z E ? n ? 8除输入框中的文本

Appium的安装及简单的使用介绍

2.3 编写自动化脚本

启动session成功运行app之后,点击你想要操作的元素,在右边可以看到这个元素的相关信息,这里我们可以通过id对该元素进行操作,在python中使用find_element_by_id()方法定位 U q HJ q k 9 a元素,还有很多方法可以定位元素。

如:fX K + 6 + X Tind_element_by_xpath(l ; - b)、driver.find_eE j ) _lement_by_name()、driver.find_element_by_partial_link_text()T C b d等,使用1 * a E : ~ ; m {click()方法对元素进行点击操作,使用swip()方法对屏幕进行滑动操作。

Appium的安装及简单的使用介绍

下面是python实现操作的源码展示,运行之后可以看到手机自动8 , P | - 6 4完成了启动app、点击、滑动和退出的操作后,说明python脚本] z 5运行成功。需要注意的是在完成上一步操作之后由于手机性能的V _ l A . i差异,app的响应速度不同,建议等待几秒后再进行下一步操作。

import time
from appium import webdriver
caps = {
"platformName": "Android", # 声明是ios还是Android系统
"platforS O ] - . t =mVersion": "8.1.0", # Android内核版本号
"deviceName": "MI_5X", # 连接的设备名称
"appPackage": "com.tence4  * | j ; m @nt.qqmusic", #n t A Q 4 g # apk的包名
"appActivity": ".activity.AppSD } 7 | D % * DtarterActivity", # apk的launcherActiv + 3 b @ity
"resetKeyboard": True,
"noReset": True # 在开始会话之前不要重置应用程序状态
}
driver = webdriver.Remote("hty R Vtp://localhost:4723/wd/hub", capsw U /) # 启动app
time.sleep(15)
el1 =A B | z % dri2 q g y 3 5ver.find_element_by_id("comt N n o m F v.tence{ Q u E {nt.qqmusic:id/clt") # 定位<分类歌单>元素
ela R n 3 5 [ L ! L1.click() # 点击
time.sleep(e p M Z  y V5)
driver.swipe(500, 1550, 500, 800) # 从(500, 1500)滑动到(500, 800)
driver.quit() # 退出

3. 总结

Appium是目前比较u 7 9 I x成熟的自动化测试工具,使用了系统自带的自动化框架,不需要把Appium特定的或者第三方的代码编7 ) j = ( 7 V译进你的应用,这样就可以使用正式发布的包进行测试,不用担心测试& k 2 , 5 c E s包与正式包存在区别。同时可以结合python已有的测试框架,例如:pytest、unittest,编写测试用例,执行自动化测试。Appium还有很多很有趣的功能没有介绍到,欢迎有疑问或者建议的朋友与我们一起探讨。


PS:更多技术干货,快关注【公众号 | xingzhe_ai】,与行者一起讨论吧!