1.Monkey

http://developer.android.com/intl/zh-cn/tools/help/monkey.html

这个工具是最简单的,我主要用他来压力测试,所谓压力测试就是 乱点。。。模拟各种各样奇怪的操作 看你的app能不能抗的住。

举例来说:

1 android shell monkey -p 你想测试程序的包名 -v 500


2.MonkeyRunner

http://developer.android.com/intl/zh-cn/tools/help/monkeyrunner_concepts.html

这个相对于Monkey 来说 就是真正意义上的 自动化测试工具了。只需要编写脚本即可完成 我们平时所需要的 大部分  冒烟用例等等。

尤其是在4.x以下的机型里,由于无法使用uiautomator, MonkeyRunner几乎就是唯一的自动化测试编写办法。

下面我举个例子,比如我们app里最常用的登录功能,我们就可以编写一个脚本来完成。

 1 # coding=UTF-8

 2 from com.android.monkeyrunner import MonkeyRunner as mr

 3 from com.android.monkeyrunner import MonkeyDevice as md

 4 from com.android.monkeyrunner import MonkeyImage as mi

 5 from com.android.monkeyrunner.easy import EasyMonkeyDevice

 6 from com.android.monkeyrunner.easy import By

 7 

 8 #定义安装文件路径

 9 installPackage = 'C:\\Users\\Administrator\\ViewPageTest\\app\\build\\outputs\\apk\\app-debug.apk'

10 

11 #要测试的程序的包名

12 apkPackageName ='com.example.administrator.viewpagetest'

13 

14 #要启动的第一个activity的名称

15 initActivityName=apkPackageName+"/com.example.administrator.viewpagetest.MainActivity"

16 

17 

18 device = mr.waitForConnection()

19 

20 

21 #安装apk包

22 device.installPackage(installPackage.decode('utf-8'))

23 

24 

25 #启动应用程序

26 device.startActivity(component=initActivityName)

27 #防止启动首页面 需要时间过长

28 mr.sleep(3)

29 

30 easy_device = EasyMonkeyDevice(device)

31 

32 mr.sleep(3)

33 

34 

35 

36 easy_device.type(By.id('id/username_et'),'zhangsan')

37 # 这里的mr静止 主要用于演示demo上的gif效果 

38 mr.sleep(2)

39 easy_device.type(By.id('id/password_et'),'123456')

40 mr.sleep(2)

41 easy_device.touch(By.id('id/submit_bt'),md.DOWN_AND_UP)

你看上面的脚本 完成了 自己安装apk 输入用户名和密码 并且点击登录按钮的过程。

有人问,你这个模拟登录的过程是模拟出来了,那我怎么知道 到底登录成功没有呢?

其实也很简单。主要有几个方法。

1.登录成功以后你这个页面肯定是要跳转到主界面的对吧,你就用脚本执行下shell命令 看看主页面 是否在栈的最上方?(前面我的activity 启动模式那篇博客里讲过这个命令的)

2.你可以在log 里面 打印出登录成功这个消息 然后用脚本捕捉到这个log 日志 就知道是否登录成功了。

3.甚至你还可以捕获界面上某个控件的文字值。

4.比较某个操作结束后的 截屏。保存为图像以后 和正确操作以后的图像进行对比。

这里我就不继续往下写这个脚本了。有兴趣的同学可以自己尝试 完成日常工作里的 那些冒烟用例。(意义重大,否则每次发版本 你的那些用例全部要用手点击手机完成一遍 那多麻烦!)

此外 我们还可以利用recorder来录制脚本,然后再反过来用python执行这个脚本 来执行我们的测试过程。这个方法 我就不做详细分析了,很简单。(但是要注意 这个方法 启动的 捕捉器 在多数情况下都非常卡顿,所以采用率不高。)



3.UiAutomator

http://developer.android.com/intl/zh-cn/tools/testing-support-library/index.html

这个工具我个人认为是所有android 程序员都必须要掌握的,有了这个强大的工具,我们就可以负责任的对自己的代码 说 木问题,ok!

此工具 能模拟几乎所有对android设备的操作。

而且代码也非常简单 全部都是java代码,并且android的api 他还几乎都能够使用。简直酷到没有朋友!比android studio 自带的ApplicationTestCase 强到不知道哪里去了。


更多相关文章

  1. Android(安卓)启动过程
  2. Android(安卓)8.0 SystemUI(一)
  3. Activity启动模式(launchMode)详解
  4. Android与H5交互,向H5注入APP账号密码免登录等。
  5. Android之Activity的启动方式
  6. 解决Android中Fragment调用startactivityforresult不能返回结果
  7. Android微信登陆
  8. Android(安卓)8.0系统以后你该这样启动Service
  9. Android(安卓)HTTP GET/POST

随机推荐

  1. Android ADT安装
  2. Android Studio中添加自定义字体的方法
  3. Google 上载 Android(安卓)4.2.2 binarie
  4. 【TabHost】Android设置TabHost文字及图
  5. 图片url地址转换成file文件
  6. android屏幕常亮保持
  7. 开发工具(持续更新)
  8. 显示Android当前可用系统内存方法
  9. Android selector控制TextView和Button按
  10. Android编程心得---捕捉Home键事件的完美