appium的一个Demo(包括获取APP的UI元素)
参照:http://www.cnblogs.com/fnng/p/4579152.html
首先启动Android模拟器
第二步,启动Appium
点击左上角有“机器人”的按钮:设置platform version
然后点击右上角的“三角”按钮启动Appium。
通过Python编写自动化测试脚本。
#coding=utf-8
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_name("1").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("9").click()
driver.find_element_by_name("delete").click()
driver.find_element_by_name("9").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("+").click()
driver.find_element_by_name("6").click()
driver.find_element_by_name("=").click()
driver.quit()
|
这里可以看到需要已知apk包名,以及启动加载的activity
附:如何启动APP(获取包名、获取launchActivity)
方式一:有APP的apk文件时
参照:http://www.cnblogs.com/yoyoketang/p/6128735.html
如何启动APP呢,首先要获取包名、获取launchActivity. 此处使用SDK自带的实用工具aapt:
1、下载aapt
1.在android-sdk里面双击SDK-manager,下载buidl-tools
2.勾选build-tools,随便选一个版本,我这里选的是25的版本
3.下载完成后,在D:\androidsdk\android-sdk-windows\build-tools\24.0.0目录下找到aapt.exe,将这个路径设置环境变量,添加到path下
4.打开cmd 输入aapt出现帮助信息,说明环境OK了

2、获取apk包名
1.将准备测试的APK放到D盘某个目录,如D:\test
2.打开cmd 输入指令aapt要访问的apk包:
aapt dump badging D:\test\android_v1.1.apk
3.以此,可以看到apk的包名:com.slifev30
C:\Users\Lenovo>cd D:\android-sdk_r24.0.2-windows\android-sdk-windows\build-tools\25.0.2
C:\Users\Lenovo>d:
D:\android-sdk_r24.0.2-windows\android-sdk-windows\build-tools\25.0.2>aapt dump badging F:\android_v0.1.apk
package: name='com.slifev30' versionCode='36' versionName=v0.1' platformBuildVersionName='7.1.1' install-location:'preferExternal' sdkVersion:'14' targetSdkVersion:'22' uses-permission: name='android.permission.READ_EXTERNAL_STORAGE'
3、获取launcherActivity
1.接着上一步操作,cmd屏幕拖到中间找到launcherActivity
2.这里可以看到,app的launcherActivity值:为com.smartlifev30.activity.GuideActivity
launchable-activity: name='com.slifev30.activity.GuideActivity' label='' icon=''feature-group: label=''
uses-feature: name='android.hardware.camera'
方式二:无APP的apk文件
参照:虫师 http://www.cnblogs.com/fnng/p/7350900.html
这种方法也比较简单,主要针对你没有.apk包的情况,比如Android原生自带的APP(计算器、通讯录、短信...),可以通过adb 命令。
1,打开APP。
2,执行> adb logcat>F:/log.txt
3, 胡乱的对APP做一些操作。
4, Ctrl+c 结束adb命令。
5, 打开F:\log.txt文件,搜索:Displayed
附 用uiautomatorviewer 获取UI的元素信息
参照:http://www.cnblogs.com/lazytest/p/5612709.html
在Android的SDk提供了以下的工具来支持我们进行UI自动化测试:
uiautomatorviewer:用来扫描和分析Android应用程序的UI控件的工具。
uiautomator:一个包含创建测试、执行自动化测试API的java库。
要使用这些工具,你必须安装Android开发工具以下版本:
Android SDK Tools:API 21 版本或者21以上版本;
Android SDK Platform:API 16 版本或者16以上版本.
在你开始写测试用例之前,使用uiautomatorviewer可以帮助你熟悉你的UI组件(包括视图和控件)
在 ..\sdk\tools\ 目录下打开 uiautomatorviewer.bat (打开前请手机连接电脑,手机开启USB调试)

----Android APP五大布局介绍------------
作者:Carson_Ho
链接:http://www.jianshu.com/p/4fac6304d872
來源:简书
在Android中,共有五种布局方式,分别是:
- FrameLayout(框架布局)
- LinearLayout(线性布局)
- AbsoluteLayout(绝对布局)
- RelativeLayout(相对布局)
- TableLayout(表格布局)
1. FrameLayout框架布局
- 布局特点:放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素
- 应用场景:适合浏览单张图片。
2. LinearLayout线性布局
- 布局特点:放主要提供控件水平或者垂直排列的模型,每个子组件
都是以垂直或水平的方式来线性排布.(默认是垂直) - 应用场景:最常用的布局方式
linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。
3. AbsoluteLayout绝对定位布局
- 布局特点:采用坐标轴的方式定位组件,左上角是(0,0)点,往右x轴递增,往下Y轴递增,组件定位属性为android:layout_x和 android:layout_y来确定坐标。
- 应用场景:准确定位空间位置
由于Android手机的屏幕尺寸、分辨率存在较大差异,使用AbsoluteLayout无法兼顾适配问题,所以该布局已经过时
4. RelativeLayout相对布局
- 布局特点:为某一个组件为参照物,来定位下一个组件的位置的布局方式。
- 应用场景:控件之间存在相应关系(适配神器,推荐使用)
5. TableLayout表格布局
- 布局特点:类似Html里的Table.使用TableRow来布局,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
- 应用场景:控件之间存在相应关系。
这五个布局元素可以相互嵌套应用,做出美观的界面。

浙公网安备 33010602011771号