top100summit 芈珺七拼八凑搭建移动自动化测试框架
TRANSCRIPT
![Page 1: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/1.jpg)
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
12年12月17日星期⼀一
![Page 2: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/2.jpg)
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
TOP100 案例标题 mijun @douban
12年12月17日星期⼀一
![Page 3: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/3.jpg)
七拼八凑搭建移动自动化测试框架
12年12月17日星期⼀一
![Page 4: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/4.jpg)
为什么七拼八凑?
移动测试场景更加复杂
移动测试框架不够成熟,并且还在发展
更严格的权限管理
12年12月17日星期⼀一
![Page 5: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/5.jpg)
复杂的测试场景
远程应用中包含web应用;
进程间的通信;
变化多样的网络环境(wifi,3g等);
多样化的输入(例如:lbs信息,语音输入等);
高优先级,系统级别的中断(自动锁屏,电话呼入等);
12年12月17日星期⼀一
![Page 6: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/6.jpg)
怎么七拼八凑?
基于⼀一定的框架基础;
具体app具体分析,重点的解决1-2个主要的核心问题。
5
12年12月17日星期⼀一
![Page 7: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/7.jpg)
Selenium
6
12年12月17日星期⼀一
![Page 8: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/8.jpg)
Selenium
6
12年12月17日星期⼀一
![Page 9: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/9.jpg)
框架应该是什么样子的?
7
12年12月17日星期⼀一
![Page 10: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/10.jpg)
框架应该是什么样子的?
核心层
7
12年12月17日星期⼀一
![Page 11: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/11.jpg)
框架应该是什么样子的?
核心层
7
12年12月17日星期⼀一
![Page 12: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/12.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
7
12年12月17日星期⼀一
![Page 13: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/13.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层
7
12年12月17日星期⼀一
![Page 14: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/14.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层
7
12年12月17日星期⼀一
![Page 15: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/15.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层 selenium,httpclient,⋯
7
12年12月17日星期⼀一
![Page 16: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/16.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层 selenium,httpclient,⋯
适配层
7
12年12月17日星期⼀一
![Page 17: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/17.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层 selenium,httpclient,⋯
适配层
7
12年12月17日星期⼀一
![Page 18: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/18.jpg)
框架应该是什么样子的?
核心层 Junit,TestNG,pyunit
工具层 selenium,httpclient,⋯
适配层 1 对应变化的控件封装2 不想写太多的重复代码的方法封装
7
12年12月17日星期⼀一
![Page 19: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/19.jpg)
测试框架抽象
8
12年12月17日星期⼀一
![Page 20: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/20.jpg)
测试框架抽象
8
12年12月17日星期⼀一
![Page 21: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/21.jpg)
测试框架抽象
核心层
8
12年12月17日星期⼀一
![Page 22: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/22.jpg)
测试框架抽象
核心层
8
12年12月17日星期⼀一
![Page 23: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/23.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
8
12年12月17日星期⼀一
![Page 24: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/24.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
8
12年12月17日星期⼀一
![Page 25: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/25.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层
8
12年12月17日星期⼀一
![Page 26: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/26.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层
8
12年12月17日星期⼀一
![Page 27: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/27.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
8
12年12月17日星期⼀一
![Page 28: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/28.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
8
12年12月17日星期⼀一
![Page 29: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/29.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
适配层
8
12年12月17日星期⼀一
![Page 30: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/30.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
适配层
8
12年12月17日星期⼀一
![Page 31: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/31.jpg)
测试框架抽象
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
适配层 基于page-obj原理的测试方法的封装
8
12年12月17日星期⼀一
![Page 32: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/32.jpg)
开始七拼八凑
Android 自动化测试
robotium(native)
AndroidDriver(web)
目标: framework = robotium + AndroidDriver
9
12年12月17日星期⼀一
![Page 33: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/33.jpg)
robotium
最流行的Android自动化测试工具
真机模拟器都能运行
无法操作WebView内部的页面
⋯⋯
10
12年12月17日星期⼀一
![Page 34: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/34.jpg)
为什么robotium不支持web?
Android测试框架底层不支持,也没有必要支持?
Andorid可以直接使用js来进行交互;
WebView的操作可以直接mock掉;
实际情况:我们有时需要在ATDD的时候从更直观更端对端的角度来确认这个问题。
11
12年12月17日星期⼀一
![Page 35: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/35.jpg)
AndroidDriver
AndroidDriver 有2种方式:
1 Remote Server的方式
2 Android-Junit 的方式
我们将采用Android-Junit的方式
12
12年12月17日星期⼀一
![Page 36: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/36.jpg)
开始改造
得到源码
修改代码
编译打包
PS: Android4.0以上系统才支持。
13
12年12月17日星期⼀一
![Page 37: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/37.jpg)
14
12年12月17日星期⼀一
![Page 38: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/38.jpg)
15
12年12月17日星期⼀一
![Page 39: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/39.jpg)
16
12年12月17日星期⼀一
![Page 40: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/40.jpg)
小小的发散
增加控制网络的小工具到工具层
自己实现wifi 和 apn的中断和联通
在需要控制网络的case中调用。
PS: apn在Android4.0以上系统不能控制
17
12年12月17日星期⼀一
![Page 41: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/41.jpg)
回顾
核心层 负责测试执行的驱动和结果监测并且反馈
工具层 负责相应侧面的测试执行的动作触发
适配层 基于page-obj原理的测试方法的封装
18
12年12月17日星期⼀一
![Page 42: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/42.jpg)
案例启示
更多的扩展功能,可以在分析之后,在相应的层面上进行解决;
不同的app,需要不同的框架组合来达到自动化测试最大化。
19
12年12月17日星期⼀一
![Page 43: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/43.jpg)
总结
我们需要面向开源社区,发现更多更好的工具,并且进行简单的集成处理。
移动测试不只是框架需要七拼八凑,在执行测试脚本的时候也需要七拼八凑。最后在通过持续集成来组成以后完整的测试过程。
通过七拼八凑达到自动化测试的最大化,手动测试来弥补那些自动化无法实现的测试活动。
20
12年12月17日星期⼀一
![Page 44: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/44.jpg)
Q & A
您也可以通过以下方式找到我:豆瓣主页:h"p://www.douban.com/people/mijun/Email: [email protected]微博: @芈峮
21
12年12月17日星期⼀一
![Page 45: Top100summit 芈珺七拼八凑搭建移动自动化测试框架](https://reader030.vdocuments.site/reader030/viewer/2022012309/55d6e2dcbb61ebc20e8b4799/html5/thumbnails/45.jpg)
www.top100summit.com
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!
22
12年12月17日星期⼀一