当给你一个需求或者一个系统让你去做自动化的时候你什么都不知道你就去做自动化能行吗?你不去分析系统的哪些模块儿适合做自动化哪些不适合 ?
如果盲目的去做,当你做到后面的时候可能你框架还没弄好需求或者系统又变了,那你是否做了无用功?所以我们第一步一定是确定需求或者系统哪些模块适合做自动化,而且一定要明白这个需求或者系统做自动化给我们带来的好处是什么,而不是说为了自动化而做自动化。
有的人可能对选择方案会比较陌生,不知道这个到底是干什么的?那么问你一个很简单的问题,现在自动化测试框架常见的有robotium、appium、monkeyrunnner、UIAutomator等等,这么多的框架你到底选择哪一个呢?其实这就是一个方案的选择,那么有时候你也会根据你项目的需求去选择一个更加适合的框架,让我们这个需求实现利益最大化。
这个最好理解,方案选择好之后就该准备环境了。这个环境不会像大家想的那样配置一个jdk、appium、ide就行了,你需要考虑的是appium的版本、持续集成、代码管理等等问题。
系统设计主要是对整个测试框架系统进行合理的设计,比如各个公共模块的封装,不同模块的文件管理,配置数据和代码的分离、日志管理等等。就像工程建设实现都是经过严格的方案设计,然后根据设计方案进行施工。
编码故名思意就是编写代码,这里我们的编写代码是根据事设计好的用例来进行编写代码。
测试金字塔分层一般为三层:底层单元测试、中间层为接口测试、顶层为UI层。测试人员一般是在UI层进行测试。
移动APP的UI自动化测试长久以来一直是一个难点,难点在于UI的”变”, 变化导致自动化用例的大量维护。 从分层测试的角度,自动化测试应该逐层进行。 最大量实现自动化测试的应该是单元测试, 最容易实现也最容易在早期发现问题; 其次是接口级测试, 以验证逻辑为目的进行自动化, 由于接口的相对稳定, 自动化测试成本相对也可以接受; 自动化成本最大的便是UI级自动化测试, 然而UI界面是直接反馈给用户的效果展示,适度的尤其是BVT级的自动化测试也是非常必要的。
最后检测环境变量是否配置成功,cmd窗口输入java -version,会显示安装的java版本。就表示环境变量配置成功。
Android SDK包下载
电脑系统变量里面添加变量名ANDROID_HOME 路径为实际存放SDk的路径
其他几个路径配置到系统环境Path中如下图所示
配置检测
在cmd界面输入‘adb’和‘aapt’来判断是否安装SDK成功
Android SDK中提供了如下工具来支持UI自动化测
使用方法
报错1
Error while parsing UI hierarchy XML file: Invalid ui automator hierarchy file.
一般Andriod 4.X系统会容易出现,换5.X及以上的系统OK
报错2
java.lang.ArrayIndexOutOfBoundsException
【解答】一般是设备息屏,导致页面没有元素显示,获取时数组地址越界报错,激活设备重启UI Auto即可
报错3
Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn‘t exist!
这个错的原因是因为没有dump下来界面的信息保存到uidump.xml文件中,而该文件保存在/data/local/tmp下,如果没生成该文件,uiautomatorviewer就会报这个错。
解决方案为:重启设备或者重新连接
VT是什么?为什么要开启VT?
VT,全称是Virtualization Technology,即是虚拟化技术,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
如何开启VT?
原文:https://www.cnblogs.com/uni5/p/11830304.html