论文部分内容阅读
随着移动互联网的兴起,越来越多的企业把目光投放到相关的移动互联网产品上。Android是一个开放的手机操作系统,吸引了大批的开发者和厂商的兴趣,相关的Android应用数量越来越多、功能也越来越复杂。移动应用对网络有严重的依赖,大多数的应用都需要良好的网络环境支持。但是,由于手机有可能到处移动,手机上应用,有其特殊性运行环境,设备运行环境的不确定性,其外部的网络环境无法得到保证。因此,在开发过程中,必须恰当地处理好各种网络状况。而在Android的开发测试中,虽然有不少自动化测试的平台和方案,但这些方案都没有针对各种网络的状态进行测试。要测试应用在不同网络环境下的运行结果,可以让测试人员拿着设备在不同位置移动并记录相关的操作结果。然而,这种方法费时费力,不够严谨和科学,存在着采集数据难,采集的数据不精确,采集后的数据难以处理的问题。针对Android难以对网络进行测试的问题,本文提出了一种方案,即利用软件控制网络通信,通过对网络进行流量控制,模拟出特定的网络环境(如2G、3G、4G),然后在这种网络条件下进行Android自动化测试。这个方案有两个重点,一个是流量控制功能,另一个自动化测试功能。课题研究的流量控制的功能,是利用Windows平台的WFP技术,基于WinDivert进行二次开发的,它实现了利用应用程序按照一定的规则模拟多种网络状况的功能。而Android自动化测试,则是利用Gradle实现对Android源代码进行编译、打包以及测试。流量控制与自动化测试这两个功能整合后,实现了把应用置于特定网络环境下的进行自动化测试的功能。进行测试时,系统平台会先把网络速度锁定在一定的范围,后续Android的应用运行时,只能运行在这个网络速度范围内运行。网络速度设定完毕后,系统执行从服务器上下载Android源代码、编译源代码、打包应用、安装应用、测试应用等一系列标准的自动化测试流程。利用这种方案进行开发测试,Android应用在测试期间只能在指定的网络速度下运行,这有利于观察、记录、重现相关的测试运行结果,对应用的测试将更为全面,测试结果也更为可靠。