top100summit 芈珺七拼八凑搭建移动自动化测试框架

45
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力! 12年12月17日星期

Upload: drewz-lin

Post on 21-Aug-2015

886 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

12年12月17日星期⼀一

Page 2: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

TOP100 案例标题 mijun @douban

12年12月17日星期⼀一

Page 3: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

七拼八凑搭建移动自动化测试框架

12年12月17日星期⼀一

Page 4: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

为什么七拼八凑?

移动测试场景更加复杂

移动测试框架不够成熟,并且还在发展

更严格的权限管理

12年12月17日星期⼀一

Page 5: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

复杂的测试场景

远程应用中包含web应用;

进程间的通信;

变化多样的网络环境(wifi,3g等);

多样化的输入(例如:lbs信息,语音输入等);

高优先级,系统级别的中断(自动锁屏,电话呼入等);

12年12月17日星期⼀一

Page 6: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

怎么七拼八凑?

基于⼀一定的框架基础;

具体app具体分析,重点的解决1-2个主要的核心问题。

5

12年12月17日星期⼀一

Page 7: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

Selenium

6

12年12月17日星期⼀一

Page 8: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

Selenium

6

12年12月17日星期⼀一

Page 9: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

7

12年12月17日星期⼀一

Page 10: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层

7

12年12月17日星期⼀一

Page 11: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层

7

12年12月17日星期⼀一

Page 12: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

7

12年12月17日星期⼀一

Page 13: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层

7

12年12月17日星期⼀一

Page 14: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层

7

12年12月17日星期⼀一

Page 15: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层 selenium,httpclient,⋯

7

12年12月17日星期⼀一

Page 16: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层 selenium,httpclient,⋯

适配层

7

12年12月17日星期⼀一

Page 17: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层 selenium,httpclient,⋯

适配层

7

12年12月17日星期⼀一

Page 18: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

框架应该是什么样子的?

核心层 Junit,TestNG,pyunit

工具层 selenium,httpclient,⋯

适配层 1 对应变化的控件封装2 不想写太多的重复代码的方法封装

7

12年12月17日星期⼀一

Page 19: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

8

12年12月17日星期⼀一

Page 20: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

8

12年12月17日星期⼀一

Page 21: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层

8

12年12月17日星期⼀一

Page 22: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层

8

12年12月17日星期⼀一

Page 23: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

8

12年12月17日星期⼀一

Page 24: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

8

12年12月17日星期⼀一

Page 25: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层

8

12年12月17日星期⼀一

Page 26: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层

8

12年12月17日星期⼀一

Page 27: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

8

12年12月17日星期⼀一

Page 28: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

8

12年12月17日星期⼀一

Page 29: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

适配层

8

12年12月17日星期⼀一

Page 30: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

适配层

8

12年12月17日星期⼀一

Page 31: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

测试框架抽象

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

适配层 基于page-obj原理的测试方法的封装

8

12年12月17日星期⼀一

Page 32: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

开始七拼八凑

Android 自动化测试

robotium(native)

AndroidDriver(web)

目标: framework = robotium + AndroidDriver

9

12年12月17日星期⼀一

Page 33: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

robotium

最流行的Android自动化测试工具

真机模拟器都能运行

无法操作WebView内部的页面

⋯⋯

10

12年12月17日星期⼀一

Page 34: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

为什么robotium不支持web?

Android测试框架底层不支持,也没有必要支持?

Andorid可以直接使用js来进行交互;

WebView的操作可以直接mock掉;

实际情况:我们有时需要在ATDD的时候从更直观更端对端的角度来确认这个问题。

11

12年12月17日星期⼀一

Page 35: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

AndroidDriver

AndroidDriver 有2种方式:

1 Remote Server的方式

2 Android-Junit 的方式

我们将采用Android-Junit的方式

12

12年12月17日星期⼀一

Page 36: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

开始改造

得到源码

修改代码

编译打包

PS: Android4.0以上系统才支持。

13

12年12月17日星期⼀一

Page 37: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

14

12年12月17日星期⼀一

Page 38: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

15

12年12月17日星期⼀一

Page 39: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

16

12年12月17日星期⼀一

Page 40: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

小小的发散

增加控制网络的小工具到工具层

自己实现wifi 和 apn的中断和联通

在需要控制网络的case中调用。

PS: apn在Android4.0以上系统不能控制

17

12年12月17日星期⼀一

Page 41: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

回顾

核心层 负责测试执行的驱动和结果监测并且反馈

工具层 负责相应侧面的测试执行的动作触发

适配层 基于page-obj原理的测试方法的封装

18

12年12月17日星期⼀一

Page 42: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

案例启示

更多的扩展功能,可以在分析之后,在相应的层面上进行解决;

不同的app,需要不同的框架组合来达到自动化测试最大化。

19

12年12月17日星期⼀一

Page 43: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

总结

我们需要面向开源社区,发现更多更好的工具,并且进行简单的集成处理。

移动测试不只是框架需要七拼八凑,在执行测试脚本的时候也需要七拼八凑。最后在通过持续集成来组成以后完整的测试过程。

通过七拼八凑达到自动化测试的最大化,手动测试来弥补那些自动化无法实现的测试活动。

20

12年12月17日星期⼀一

Page 44: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

Q & A

您也可以通过以下方式找到我:豆瓣主页:h"p://www.douban.com/people/mijun/Email:  [email protected]微博:  @芈峮

21

12年12月17日星期⼀一

Page 45: Top100summit 芈珺七拼八凑搭建移动自动化测试框架

www.top100summit.com

揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!

22

12年12月17日星期⼀一