论文部分内容阅读
随着安卓系统的日趋流行,安卓APP的数量也以极快的速度增长。为了应对快速变化的市场需求,提高竞争力,安卓APP的迭代速度普遍较快。为了在快速迭代过程中保证产品质量,软件开发企业在重复性较高的回归测试中都使用自动化测试来替代人工测试。但是在使用目前的自动化测试框架进行自动化测试时,需要测试人员编写测试脚本,对测试人员的编码水平要求较高。由此需要一个无需测试人员编写测试脚本的安卓APP自动化测试框架来解决此问题。本文使用JAVA编程语言、关键字驱动自动化测试方法和Appium框架,实现了一个能够对安卓APP进行自动化测试的框架。本文自动化测试框架对Appium框架进行封装和拓展,相对于Appium框架增加了根据测试人员在浏览器页面选择关键字动作自动生成测试脚本并执行、测试用例管理、测试计划管理、测试报告管理、设备状态管理等功能。同时在实用性上支持远程测试和多设备测试,在易用性上支持通过浏览器显示设备屏幕和控制设备、在浏览器上获取控件信息、进行测试用例调试等。本文首先对国内外针对于安卓APP的自动化测试框架做了研究和对比,选择了具有支持跨平台、支持跨应用、支持多种应用类型、支持多种语言编写测试脚本等优势的Appium开源框架作为基础框架,并针对于Appium框架的不足提出了本文的主要研究目标。然后对本文自动化测试框架在设计和实现过程之中涉及到的关键技术做了介绍,包括自动化测试技术、Appium框架、TestNG框架、vue-element-admin前端方案、Spring Boot Admin技术等。对本文框架的需求来源做了说明,对框架的浏览器端、服务端、数据库端的主要功能做了详细分析。本文对框架的功能性、实用性、易用性的关键技术的设计与实现做了详细说明。对于功能性来说,关键字动作与方法对应功能是通过数据库记录把供测试人员选择的关键字动作同代码中预置的关键字动作对应的方法关联起来实现的。自动生成测试脚本并执行功能是通过解析测试人员选择的关键字动作,并使用FreeMarker模板生成测试脚本源代码,经动态编译生成可执行文件后由TestNG框架执行来实现的。监控安卓设备状态功能是通过实现ADB工具包ddmlib中的IDeviceChangeListener接口来实现的。对于实用性来说,远程测试和多设备测试功能是通过Spring Boot Admin技术以及ADB技术实现的。对于易用性来说,浏览器显示并控制设备功能通过WebSocket、minicap、minitouch等技术配合实现。本文接下来介绍了框架的部署和启动方式,对框架的主要功能进行了测试验证,证明了本文框架的可用性。并通过与基础框架Appium和其它基于Appium的框架进行对比,体现了本文框架的优势所在。最后对本文框架的工作做了总结,并提出不足和进一步展望。