当前位置: 首页 > 专利查询>天津大学专利>正文

基于Appium的手机地图路况加载时延自动测试方法技术

技术编号:17304374 阅读:29 留言:0更新日期:2018-02-18 22:21
本发明专利技术涉及一种基于Appium的手机地图路况加载时延自动测试方法,包括:获取截屏的大小;选取截图具有路况加载的部分,需要知道两个点,一个是具有路况部分在截图在的起始像素点,另一个是具有路况部分在截图中结束像素点;设置阈值Value,加载原始对比图片originalImage,定义待测试路况部分的像素点数量,定义对比后像素点不同的像素点总和;进行截图中有路况部分的对比,获取当前的截图CompareImage的命名时间戳,根据所获取的截图CompareImage的命名时间戳,获取时间戳记为endTime,点击路况加载时获取的时间记为startTime,那么路况加载时延的值为endTime‑startTime。

Automatic test method of time delay of mobile phone map based on Appium

The present invention relates to an automatic testing method, mobile phone traffic map loading time delay based on Appium includes: acquiring screenshot size; select screenshot with traffic loading part, you need to know two points, one is part of the road has screenshots of the initial pixel, the other is a part of the end of pixels on the road with. In setting the threshold; Value, loading the original picture originalImage, the number of pixels to be defined as part of the test road, the pixel defining contrast after different pixels sum; compare with the road part of the screenshot, named time stamp for the current CompareImage, named according to the time stamp the screenshots of CompareImage. Get the time stamp for endTime, click on the road gets when loading time startTime, then the traffic load delay value is endTime sta RtTime.

【技术实现步骤摘要】
基于Appium的手机地图路况加载时延自动测试方法
本专利技术属于手机应用自动化测试

技术介绍
目前,用于拨测的平台终端以低端非智能平台为主,终端适配难度大,拨测稳定性欠佳,拨测过程需要较多的人工干预;大强度拨测时易发生电池过热现象,存在隐患。移动终端业务应用软件采用人工拨测方式,该方式具有人工成本高,测试效率低,测试审核过程繁琐,测试质量无法达到精确性要求等缺陷。随着智能终端的推出,用于拨测的标准设备逐渐趋于淘汰,用于测试的脚本经常发生故障,因此会导致自动拨测工作的失去准确性,针对性,并导致资源浪费。为有效提升测试效率,降低大量重复人工测试工作,缩短测试周期,降低测试成本,同时更进一步的分析产品品质,更好的提升用户的满意度,建设基于Appium自动化测试框架的移动终端业务应用的自动拨测系统,通过该系统保障业务平台相关品质要求。Appium是一个开源的自动化测试工具,其支持iOS和安卓平台上的原生的,基于移动浏览器的,混合的应用。Appium是跨平台的:它允许你采用同一套API在不同的平台(iOS,Android)上编写测试代码。这就让测试套件在iOS和Android平台上实现代码复用成为可能。可用于IOS和Android以及firefox的操作系统。Appium的核心是一个web服务器,它提供了一套REST的接口。它收到客户端的连接,监听到命令,接着在移动设备上执行这些命令,然后将执行结果放在HTTP响应中返还给客户端。事实上,这种客户端/服务端的架构给予了许多的可能性:比如我们可以使用任何实现了该客户端的语言来写我们的测试代码。比如我们可以把服务端放在不同的机器上。比如我们可以只写测试代码,然后使用像SauceLabs这样的云服务来解释命令。手机地图路况加载时延即打开地图应用,进入主界面,从点击路况加载时延按钮到地图路况加载完成,其中所需时间即路况加载时延。Appium对手机的自动化测试是模拟人工对应用的点击操作,点击相应的按钮首先需要找见对应按钮的页面元素的编码,Appium手机界面元素,根据测试代码进行点击等模拟人工的操作。我们发现,手机地图类应用进入主界面后,点击路况加载时延按钮,路况加载完成前与完成后手机界面元素没有任何变化,对于Appium来说,没有变化即无法知道路况是否加载完成,也即无法获取路况加载时延。
技术实现思路
本专利技术的目的是提出一种基于Appium自动化测试工具的手机地图应用路况加载时延自动化测试方法。技术方案如下:一种基于Appium的手机地图路况加载时延自动测试方法,包括下列步骤:1)获取截屏的大小,即获取测试手机的分辨率,记为Width*Height。2)选取截图具有路况加载的部分,需要知道两个点,一个是具有路况部分在截图在的起始像素点,记为SWidth*SHeight,另一个是具有路况部分在截图中结束像素点,记为EWidth*EHeight,其中,SWidth<EWidth<Width,SHeight<EHeight<Height。3)设置阈值Value,加载原始对比图片originalImage,定义待测试路况部分的像素点数量,记为numTestPixels,numTestPixels=(EHeight-SHeight)*(EWidth-SWidth),定义对比后像素点不同的像素点总和,记为numDiffPixels,并预设值numDiffPixels=0。4)进行截图中有路况部分的对比,为一个循环,循环内部,首先顺序加载已经存储好的截图CompareImage,顺序加载每张CompareImage和原始对比图片InitialImage进行具有路况截图部分的每个像素点的对比,对比像素点的灰度值不相同,则numDiffPixels自加1,循环结束的条件为对比的不同像素点的总和与截图中具有路况部分像素点的和的比值大于预先设置的阈值Value;循环结束时获取当前的截图CompareImage的命名时间戳。5)根据所获取的截图CompareImage的命名时间戳,获取时间戳记为endTime,点击路况加载时获取的时间记为startTime,那么路况加载时延的值为endTime-startTime。具体实施方式本专利技术的基本思想是利用路况加载时延前后手机界面差异较大,对测试app没有很多imageview组成,无法通过元素查找这种一般测试手段完成待测指标的测试。借助monkeyrunner的截图比较功能,移植到Appium自动化测试工具中,从而完成测试。下面对本专利技术做进一步说明。(1)Appium自动启动待测试应用启动Appium客户端,点击运行按钮,连上待测试手机,通过dos命令adbdevices获取查看连接的电脑待测试设备。打开eclipse,在该开发环境中编写测试代码。配置Desiredcapabilities是键值对的集合,包括"devices"、"deviceName"、"udid"、"platformVersion"、"appPackage"、"appActivity",devices的值包括Android和iOS,deviceName的值为测试手机的名称,udid的值为adbdevices获得的手机id号,platformVersion值为待测试系统(Android,iOS)版本号,appPackage与appActivity为Android操作系统特有,值是Android测试系统中应用的属性,通过此属性启动对应的app。相应配置完成,利用Appium与eclipse通信协议,将键值对信息传递给Appium。运行测试脚本,对应测试应用会自动启动进入主界面。(2)跳转至路况加载页面Appium的基本测试机制是模拟人工对应用进行点击操作。利用开发者工具,找到路况加载按钮界面中路况加载按钮页面元素的编号,每个页面元素在页面中的编号对应常用有三种,分别是text、resource-id、class,分别对应findElementByXPath、findElementById、findElementByClassName。第一步Appium启动测试应用后,应用加载完成,自动进入主界面,根据开发工具显示的路况加载按钮对应的页面元素编号,任选三种方法之一对页面元素进行查找,确定进入具有路况加载按钮的主界面。(3)路况加载时延的获取这是本专利技术的关键之所在。进入具有路况加载的界面,利用Appium的driver.findElementByXPath("路况加载按钮的text").click()操作,点击路况加载时延按钮,同时利用System.currentTimeMillis()存储当前时间,调用monkeyrunner测试框架,进行第一张图片截取,即路况加载之前的截图,记为InitialImage,以作后面截图的对比图片,点击操作,获取时间,第一张图片截取几乎都是在毫秒级完成。调用monkeyrunner测试框架,以一秒为间隔,进行手机界面截图,记为CompareImage,所有的截图存储在本地预先设置好的文件夹中。路况加载时延中,一般时间不会超过3秒,本专利技术设置共10秒的截图,即一共有10张图片进行图片对本文档来自技高网
...

【技术保护点】
一种基于Appium的手机地图路况加载时延自动测试方法,包括下列步骤:1)获取截屏的大小,即获取测试手机的分辨率,记为Width*Height。2)选取截图具有路况加载的部分,需要知道两个点,一个是具有路况部分在截图在的起始像素点,记为SWidth*SHeight,另一个是具有路况部分在截图中结束像素点,记为EWidth*EHeight,其中,SWidth<EWidth<Width,SHeight<EHeight<Height;3)设置阈值Value,加载原始对比图片originalImage,定义待测试路况部分的像素点数量,记为numTestPixels,numTestPixels=(EHeight‑SHeight)*(EWidth‑SWidth),定义对比后像素点不同的像素点总和,记为numDiffPixels,并预设值numDiffPixels=0;4)进行截图中有路况部分的对比,为一个循环,循环内部,首先顺序加载已经存储好的截图CompareImage,顺序加载每张CompareImage和原始对比图片InitialImage进行具有路况截图部分的每个像素点的对比,对比像素点的灰度值不相同,则numDiffPixels自加1,循环结束的条件为对比的不同像素点的总和与截图中具有路况部分像素点的和的比值大于预先设置的阈值Value;循环结束时获取当前的截图CompareImage的命名时间戳;5)根据所获取的截图CompareImage的命名时间戳,获取时间戳记为endTime,点击路况加载时获取的时间记为startTime,那么路况加载时延的值为endTime‑startTime。...

【技术特征摘要】
1.一种基于Appium的手机地图路况加载时延自动测试方法,包括下列步骤:1)获取截屏的大小,即获取测试手机的分辨率,记为Width*Height。2)选取截图具有路况加载的部分,需要知道两个点,一个是具有路况部分在截图在的起始像素点,记为SWidth*SHeight,另一个是具有路况部分在截图中结束像素点,记为EWidth*EHeight,其中,SWidth&lt;EWidth&lt;Width,SHeight&lt;EHeight&lt;Height;3)设置阈值Value,加载原始对比图片originalImage,定义待测试路况部分的像素点数量,记为numTestPixels,numTestPixels=(EHeight-SHeight)*(EWidth-SWidth),定义对比后像素...

【专利技术属性】
技术研发人员:王宝亮张光荣
申请(专利权)人:天津大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1