8.当然必须是debug包。
手机自动化测试原理
手机自动化测试的原理为PC上的控制端(测试工具)与手机上的agent端,通过串口、USB 或无线的方式实现PC与手机终端相连,然后应用测试工具向手机发送请求/命令,手机端收到后交给agent端解析, agent将解析出的命令下发给手机的对应功能模块,调用功能模块模拟操作。完成操作后,手机会返回结果,agent抓取这些信息后传回PC端,这样就完成了一个完整的手机端自动化测试。
自动化测试的流程是:搭建框架→设计测试用例→编写脚本→进行测试→得出结果。
自动化测试脚本是采用录制的机制,就是记录手工操作的键盘信息或者记录XPath信息,Xcode调用的一定是Instruments,Android基本上是UIAutomator。Instruments的功能本身也很强大,可以生成脚本,监测APP性能,比如耗电量、CPU使用率、内存使用率和流量监测。
自动化测试框架的搭建方法是通用的,需要针对不同的APP,不同的场景设计不同的测试框架才能进行自动化测试。
手机自动化测试常用技术方案
1.Appium:这是最近非常热门的开源框架,同时支持Android和iOS,iOS部分封装了Instruments,Android部分封装了UIAutomator,支持多挣语言来编写测试脚本。
2. UiAutomator:UiAutomator是Google仿照微软Uiautomation提供的一套自动化框架,基于Android AccessilibilityService提供的自动化测试框架,顾名思义,主要用于UI自动化测试,提供仿真单机、滑动、文本输入等事件,比如把一组反复动作通过UiAutomator实现,提高测试效率。在UiAutomator中,每一个UI控件都是一个UIObject对象。它支持所有的 Android事件操作,通过模拟器也能运行测试,很多自动化测试脚本编写客户端都封装了UiAutomator,包括百度云测、腾讯优测等。 UiAutomator是Google仿照微软Uiautomation提供的一套自动化框架,基于Android AccessilibilityService提供。
其应用方式有以下几种,一种是UiAutomatorView+monkey,另一种是直接调用UiAutomator API。第一种方法和hierachyview+monkey差不多,其区别是:UiAutomatorView通过ADB向设备侧发送一个dump命令,而不是建立一个socket,下载一个包含当前界面控件布局信息的xml文件。相比较hierachyview下载的内容而言,该文件小很多。因此,从效率上讲,这种方法比第一种应用模式快很多。
第二种方法则是直接调用UiAutomator框架对外提供的API,主要有 UiDevice、UiSelector、UiObject等。其原理与第一种方式,即HierachyView+Monkey,差不多。其过程大致是:首先,UiAutomator测试框架通过 Accessibilityservice,获取当前窗口的控件层次关系及属性信息,并查找到目标控件。若是点击事件,则计算出该控件的中心点坐标。其次,UiAutomator通过测试框架,注入用户事件(点击、输入类操作),从而实现模拟人的操作。
UiAutomator对外提供UiAutomatorTestCase、UiDevice、UiSelector、UiObject、UiCollection、UiScrollable等类,其作用如下:
●UiAutomatorTestCase :继承自Junit TestCase (Junit),对外提供setup、teardown等,以便初始化用例、清除环境等。