appium windows下环境搭建

Appium优点如下:
1,跨架构、跨设备(android ios firefoxox)、跨语言(java python ruby nodejs php)、跨app(可以在多个app之间交互)
2,不依赖源代码
3,不限制测试框架和平台
4,可以测试原生、混合和移动的web应用

自动测试工具UiAutomator

前面几篇文章主要总结了MonkeyRunner,Robotium,今天主要是对另一个自动测试工具UiAutomator进行总结。以上三种自动测试化工具的特点如下:
1、MonkeyRunner:优点:操作最为简单,可以录制测试脚本,可视化操作;基于Pyhon语言编写,语法简单易学,可以跨应用,可以直接以ID来操作测试,不需要签名等其他工具;缺点:运行速度慢,容易出错,可用的接口少等;
2、Rubotium:主要针对某一个APK进行自动化测试,APK可以有源码,也可以没有源码,功能强大,基于java语言编写;缺点是针对APK操作,而且需要对被测的APK重新签名(有工具),因此操作相对复杂;
3、UiAutomator:优点:可以对所有操作进行自动化,操作简单,能看见点击的手势,基于java语言编写;缺点:Android版本需要高于4.0,无法根据控件ID操作,相对来说功能较为局限,修改脚本后,需要重新生成.jar文件并push至设备中再进行adb shell命令,此操作也相对比较复杂;
以上三种工具若想对apk单个界面进行快速自动测试,个人比较偏向MonkeyRunner,此工具易学,还可以引用第三方插件WrapeasyMonkey来操作,比较方便,修改代码运行也相对比较容易,只是运行速度慢。

MonkeyRunner入门(三)

引用monkeyrunner的第三方库wrapEasyMonkey,是基于EasyMonkeyDevice来二次封装的,并加入了自动异常处理、失败重试、case管理、断言、获取控件上的文本等,大大增强了monkeyrunner本来的功能。比如我们在测试一个apk时,要么通过控件的文本、坐标来进行控制,要么是通过控件id,但大家都知道,测试不同设备不同分辨率时测试同一个apk通过指定的坐标来控制是不现实的;同一apk中所有控件的文本也有相同的情况,因此通过控件的文本来控制也不现实;那通过控件id呢,同一apk下id也有重复的现象,那这应该如何处理呢?可以通过Hierarchy Viewer得到的控件树形图,其实我们完全可以基于每个控件所在的子节点的位置,结合python函数的不定参数的特性,去获取任意已知ID的父节点的任意子节点的引用,然后再用这个引用作为参数去获取其对应的文本、断言等等,要达到这样的功能需要修改原来那个包里的部分函数。

Robotium针对只有apk包的测试方法

被测工程:calculator.apk
Calcultor.apk描述:
1,控键说明:两个编辑框,一个按钮(控键id唯一)
2,对输入的两个数据进行乘法运算
下载Robotium官方例子的最新jar包:robotium-solo-4.0.jar
环境搭建:
1.安装jdk,配置环境变量
2.下载安装Android SDK
3.下载Eclipse,并安装ADT插件,集成Android SDK
操作步骤:
1.采用android自带的debug.keystore通过命令操作重新签名Apk文件
2.打开Eclipse,新建一个Android Test Project,输入工程名TestApk,点击下一步,在“Select Test Target”界面中选择“This project”选项,点击完成
3.在TestApk工程中引入Robotium.jar包。具体操作如下:
在TestApk工程中新建lib文件夹,将下载的robotium-solo-4.0.jar文件拷贝至lib文件夹中,右击选择“Build Path”命令—>“Java Build Path”列表—>“Libraries”选项—>“Add JARs…”按钮—>选择本工程下的lib目录中的“robotium-solo-4.0.jar”文件—->添加完成—>“Order

MonkeyRunner遇到的问题及解决办法

平时喜欢做笔记的我,今天趁有空得好好整理整理^-^ ^-^
一、在cmd中执行adb shell monkey -p fantongyo.apk -v 1000 报错
   注:以上命令表示让设备执行fantongyo.apk 1000次
   提示:No activities found to run, monkey aborted.
   解决办法:
    1.查看已连接的设备,执行adb devices,显示了设备名称
    2.执行命令adb install d:\fantongyo.apk看是否可以正常安装
    3.执行命令adb uninstall com.android.fantongyo看是否可以正常卸载apk(com.android.fantongyo指apk的包名)
    4.以上都正常,发现我已打开了eclipse编辑器,关闭编辑器后,再在cmd中执行adb shell monkey -p fantongyo.apk -v 1000成功
二、在cmd中执行monkeyrunner d:\input.py脚本时报错
    提示:SyntaxError:Non-ASCII character in file ‘d:\input.py’,but no encoding declared;
    解决办法:在脚本的第一行添加中文的注释语句代码:# -*- coding: UTF-8 -*-
三、引用第三方插件ViewClient时,脚本报错
提示:viewclient.py中的adb is not executable的相关错误
解决办法:
1,经viewclient.py查看有环境变量ANDROID_HOME,而机器本身没有添加ANDROID_HOME环境变量
2,添加环境变量ANDROID_HOME,值为sdk的目录

MonkeyRunner入门(二)

通过MonkeyRunner脚本对Calcultor.apk进行自动测试
Calcultor.apk描述:
1,控键说明:两个编辑框,一个按钮(控键id唯一)
2,对输入的两个数据进行乘法运算
脚本功能:主要是对第二个控键即编辑框进行输入操作,
测试方法一:
1,通过HierarchyViewer工具查看apk的包名、入口activity名、布局及控键id等信息
2,通过查看到的控键id坐标位置

MonkeyRunner 录制、回放脚本

一、配置环境
二、新建一个recorder.py文件并存放在D盘下,代码如下:
from com.android.monkeyrunner import MonkeyRunner
from com.android.monkeyrunner.recorder import MonkeyRecorder
device = MonkeyRunner.waitForConnection()
MonkeyRecorder.start(device)
三、在cmd中输入:monkeyrunner d:\recorder.py,打开了monkeyrecorder对话框