读书人

Layout Tests 施用场景 - 百度手机浏览

发布时间: 2013-10-08 16:32:36 作者: rapoo

Layout Tests 应用场景 - 百度手机浏览器T5内核2 - LayoutTest apk 结构分析

百度手机浏览器的体验地址: http://shouji.baidu.com/browser/

=========================正文===========================================

从上一篇的执行示意图中可以看到,LayoutTest 的执行以及报告生成都发生在 apk

中,所以 apk 是这个测试方案的核心,本文就着重讲述这个 apk

LayoutTests apk的结构从 AndrodManifest.xml 里面可以看到,这个 apk 由一个 Application 一个 Instrumentation组成。Instrumentation 是可以让应用通过 adb shell am instrument 的命令启动这个 apk,并传入参数进来,目前这个参数是测试用例的相对路径
mTestsRelativePath = arguments.getString("path");
Application 包括三个Activity 和 一个 service。ManagerService

顾名思义,是管理者的角色,实际上是负责TestsListActivity、Executor 还有一个 Summarizer 进行沟通的。

Layout Tests 施用场景 - 百度手机浏览器T5内核2 - LayoutTest apk 结构分析

三个Activity,

DirListActivity

是通 luncher 点开apk之后展现测试列表的 Activity,如下图:

Layout Tests 施用场景 - 百度手机浏览器T5内核2 - LayoutTest apk 结构分析

TestsListActivity

主要作用是遍历 server 端的目录,找到给定路径下面所有的测试case,存入到变量中,调用 Executor 去执行,并且等 executor 的执行结果,把结果通过 managerService 传递给 Summerizer。

executor 在独立的进程中

是真正加载测试用例(网页)的activity,它封装了百度的统一内核SDK,统一内核SDK封装了T5 内核。executor 中通过 BWebView.loadUrl 加载 TestsListActivity 传递过来的 url,调用到 T5 内核进行 html 的解析、渲染,JavaScript 的执行 等。当页面加载完成之后,会调用 dumpAsText 把页面中的文本导入到文本文件中。比如下面这个测试用例:

fast/cookies/local-file-can-set-cookies.html


dumpAsText 会把页面存到 sdcard 里面,文件名是 fast/cookies/local-file-can-set-cookies-actual.txt,当然,字体信息会丢失,但是不影响文本比对。

之后对比 fast/cookies/local-file-can-set-cookies-expected.txt 和fast/cookies/local-file-can-set-cookies-actual.txt

如果两者相同,就PASS,如果不同,就 Fail。 (ps. 如果这个case 过不了,显然是一个最基本的问题,浏览器引擎根本无法上线使用。)

LayoutTest apk 的核心源码Layout Tests 施用场景 - 百度手机浏览器T5内核2 - LayoutTest apk 结构分析

下一篇再分析详细过程


2楼u0111873612013-06-24 10:20
fdasdsadsasadsadsa
1楼suannai03142013-06-21 11:26
您的文章已被推荐到博客首页和个人页侧边栏推荐文章,感谢您的分享。

读书人网 >移动开发

热点推荐