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的每一个视图组件代表一个单元格。
  • 应用场景:控件之间存在相应关系。

这五个布局元素可以相互嵌套应用,做出美观的界面。


 

posted @ 2017-09-12 15:56  幸福在今天  阅读(1371)  评论(0)    收藏  举报