Android自动化测试修炼手册(1)

自动化测试修炼手册##

写在开头:因为自己开始试着学习软件测试相关知识,以此博客记录下自己学习过程中遇到的问题或是心得以便将来回顾或是总结。但是由于软件测试内容太多全面,我就以测试手段分类中自动化测试这一内容开始我的学习之旅。
关于软件自动化测试开发:除手工测试外,其他都是自动化测试。因此,软件自动化测试开发指的是测试技术和开发技术相结合,用手动测试之外的测试技术,模拟手动用户场景测试的实现过程,简单来说,就是用写的代码来测试程序。

1-1课程简介
Android自动化测试的相关技术工具和框架:

  • 自动化测试环境的部署
  • Monkey工具
  • MonkeyRunner工具
  • Android单元测试框架
  • Robotium
  • UiAutomator
  • Appium框架

2-1Android自动化测试环境部署

  • 开发工具包:JDK Android SDK
  • 开发环境:eclipse ADT Ant
  • 运行环境:AndroidDevice AVD
    详细下载安装部署过程可参考以下链接:
    https://www.imooc.com/article/16056

2-2Android ADB工具使用详解
ADB工具:Android Debug Bridge电脑和Android设备之间的连接调试通道。
ADB常用命令:adb devices,adb push/pull,adb forward,adb start-server/kill-server,adb install/uninstall,adb shell…

3-1Monkey工具及常用命令参数详解
Monkey工具:Monkey是Android系统中自带的一个黑盒测试工具,一般通过随机触发界面事件,来确定应用是否会发生异常,多用于android应用的稳定性压力测试。
Monkey命令格式
adb shell monkey[options]< event-count >
官方文档:http://developer.android.com/studio/test/monkey.html

3-2Monkey工具执行及日志说明
对模拟器里计算器应用随机触发1000次操作但不带日志结果:
Android自动化测试修炼手册(1)
对模拟器里计算器应用随机触发10次操作但带有日志结果:
Android自动化测试修炼手册(1)

3-3Monkey工具脚本功能详解
ps:前面提到过Monkey工具是作为随机触发事件这么一个工具来使用的,但是Monkey也可以触发一些我们指定好顺序的操作来进行自动化测试,就可以利用到Monkey工具的脚本功能。
Monkey脚本命令格式:adb shell monkey -f < script > 1
之前提过的官方对monkey的解释中有一些隐藏参数是官方文档没有提及的,-f参数就是其中之一。
Monkey脚本-主要命令:

  • DispatchPointer:相当于手指按在某一个点上
  • Dispatchpress[keycose]:向系统发送固定的按键事件,即“keycode”,官方文档中有官方定义
  • LaunchActivity:启动应用的一个命令,指定应用的包名和Activity
  • UserWait:让脚本的执行暂停一段时间,做一个等待的操作。
  • RotateScreen:翻转屏幕的操作
  • Tap:单击事件

自己尝试编写了一个计算器自动测试“96+7=103并反转180度还原”的过程的脚本代码(monkey.script):
Android自动化测试修炼手册(1)
因为脚本文件是执行在设备上的,所以需要将该文件push进设备中再执行
Android自动化测试修炼手册(1)

3-4MonkeyServer的使用及自动化
Monkey Server:在设备上启动一个服务端,让我们的客户机可以远程的连接到设备上,来对设备进行一些远程的调试和控制操作。
-启动Monkey Server:adb shell monkey --port 1080&
-连接Monkey Serve:adb forward tcp:1080 tcp:1080
-telent 127.0.0.1 1080
Monkey Server-主要命令:touch [ down|up|move ] [ x] [y ],press [ KEYCODE ],sleep,getvar,type…
Monkey Server命令的脚本化

  • 关键脚本:
    set sh=WScript.CreateObject(“WScript.Shell”)
    WScript.sleep 1000
    sh.SendKeys"open 127.0.0.1 | 1080 {ENTER}"
    -启动命令:
    cscript//nologo monkeyServerRun.vbs