APP下载

基于WebGIS二三维地理视图模块的自动化测试实践

2021-07-03王志勇罗雨房效亮

电子测试 2021年10期
关键词:视图流程测试

王志勇,罗雨,房效亮

(正元地理信息集团股份有限公司,北京,101304)

关键字:WebGIS;自动化测试;selenium;二三维地理视图;地理信息系统

1 WebGIS应用中地理视图模块简介

二十一世纪初期,Internet在全世界进入了爆发式增长阶段,随着网络设备的铺设以及光纤和5G等相关技术的应用使得网速大幅度提升,这为WebGIS的发展提供了丰盛的沃土。在此基础上基于B/S的GIS系统脱颖而出,它摒弃了传统C/S架构GIS软件的更新繁琐,不便于跨平台和免安装客户端等自身天然的劣势。采用RIA(富客户端)技术、AJAX(动态网页)技术和Html5等最新展示技术,结合后台应用服务系统,利用互联网对地理空间数据进行发布和调用,使得WebGIS系统中地理视图模块展现出与C/S系统一样的效果和功能。

2 自动化测试需求

由于软件开发技术的持续更新与快速迭代,自动化测试技术也随之应运而生,并且在大多数互联网软件公司得到了很好的应用,满足各种应用需求的测试框架也层数不穷,例如:Selenium、WebDriver、Robot framework、Appium等,但是由于地理信息行业的存在着一定的特殊性,很难采用互联网等相关行业模式,以文本式交互系统为主来执行自动化软件测试,其难点主要包括以下几个方面:

(1)数据空间化,地理信息行业数据按大类可分为:矢量数据、栅格数据、新型测绘数据以及近年来一直在提倡的高维数据等,虽然不同数据展现的方式不同,但是最终均以可视化的二三维地理视图界面进行加载和展示,与传统数字化模式存在较大的区别。

(2)元素无法定位,WebGIS前端主要采用OpenLayers、AGS API for JS/Flex等JavaScript类库包或插件形式展示,空间数据无法直接作为Web元素对象被获取及定位。

(3)结果不易断言,由于地理信息数据实体以图形化加载展示,无法直接获取相关文本内容,无法通过字符串比对进行结果正确性的判定,并且图形化过程需动态渲染,展示内容不固定,展示效果不统一。因此对于传统通过Web界面获取元素文本信息等方式进行功能点正确性验证的方式,很难适应在地理信息系统中。

正是由于地理信息应用系统的二三维地理视图模块存在以上难点,导致自动化测试在WebGIS系统无法全面应用,攻克相关难题可以有效的提升WebGIS软件的测试效率,降低测试成本,为后期应用系统的快速迭代部署和交付奠定基础,为追求更高的软件质量要求提供技术保障。

3 二三维地理视图模块自动化测试方案设计

3.1 业务流程设计

WebGIS应用系统中二三维地理视图模块主要作用是对空间地理信息数据的图形化加载展示,以及在此基础上的浏览、分析和查询等操作,因此测试的业务逻辑流程主要包括:启动浏览器后打开二三维地理视图模块界面,加载相关空间地理数据后,模拟人工测试的平移、放大、缩小等浏览操作和距离量测、面积量测、点线面属性查询等查询操作。根据操作结果对指定范围进行截图,并且通过与预期结果数据图像对比后,输出测试结果,如果对比结果与预期一致则返回正确测试结果,如果对比结果与预期结果不一致,解析出不一致区域并且成像后输出测试结果,上述业务流程图如图1所示。

图1 WebGIS应用自动化测试流程图

3.2 实现原理设计

根据业务流程设计,实现原理分别为以下步骤:

(1)浏览器驱动:二三维地理视图模块自动化测试可以通过自动化测试框架Selenium3中的Webdriver对象驱动浏览器,打开指定的应用系统的二三维地理视图界面。

(2)人工测试模拟函数:为了实现模拟人工测试在二三维地理视图模块中的相关操作,采用基于java.awt.Robot类或者Sikuli对象引用的方式,封装用于鼠标及键盘模拟操作的平移、放大、缩小、量测、点击、框选以及快捷键和字符输入等操作方法。

(3)图像对比函数:为了实现图像后期对比,首先需要封装界面截图等相关工具函数类,对执行结果进行图像采集,为后期测试结果正确性对比提供数据支持。并且采用图像对比算法封装图像对比函数,实现地理信息数据操作结果与预期结果对比验证。

(4)用例编写:在以上封装类及Selenium对象类的基础上进行二三维地理视图模块自动化测试用例的编写,从而方便不同测试场景执行时的调用。

(5)一致性判断:在执行自动化测试过程中,通过加载不同测试数据和测试用例脚本可以执行不同场景的自动化测试,并且在自动化测试计划中添加预期结果断言,将执行结果截图数据与预期图像文件进行对比,采用灰度图像的相似对比技术,自动生成不同点位对照图像和对比结果。

(6)测试报告输出:将测试结果通过测试报告框架模型自动生成在测试报告中,并且打印测试过程日志,方便开发人员追踪和定位缺陷。

通过以上设计步骤,最终实现二三维地理视图模块自动化测试,再将其与整套自动化测试框架融合后,可以实现地理信息应用系统全流程的自动化软件测试实施方案,解决地理信息相关应用系统无法全面自动化测试的弊端,为提高应用系统测试效率奠定基础。

3.3 方案验证分析

依据上述自动化测试方案设计,结合正元智慧城市时空大数据与云平台中云端地图系统二三维地理视图展示模块进行自动化测试,已实现地理视图窗口内数据的缩放、平移、360度旋转、距离量测等操作的自动化测试,所有测试流程均与人工测试高度一致,通过多次对比验证,获取出根据二三维地理视图模块自动化测试设计实现的自动化测试与手动测试全流程的耗时数据,相关数据见表1所示,通过对比可以得出自动化测试执行效率明显大于手动测试。

表1 自动化测试与人工测试耗时

二三维地理视图模块自动化测试不仅提高测试效率,同时通过可视化的测试报告可以更加直观的显示每个测试用例的执行结果。在采用图像对比技术后,系统开发过程中对渲染和加载产生细微的影响都能进行详细的输出。最终可以对系统开发过程中相同地理信息数据加载显示的结果异同对比分析。相对于人工凭借经验识别数据加载结果的正确性,采用本套二三维地理视图模块自动化测试方案的验证结果更加严谨可靠。

4 结束语

基于二三维地理视图模块的自动化测试方案解决了WebGIS应用系统自动化测试过程中,无法全部覆盖功能点,以及可视化数据正确性验证的难点问题。为全流程自动化测试奠定了基础,并且结合主流的Selenium自动化测试框架技术,可以更加快速准确的完成已有功能测试,提高人工测试效率和版本迭代测试速度的同时,降低测试成本,保障系统平稳运行。

目前该测试方案已经应用在智慧城市云平台等相关系统中,实现了全流程自动化测试,配合团队敏捷开发流程,快速实现从代码编写、提交、审查、编译、打包、测试以及部署发布等全流程的自动化作业模式,单次测试耗时相比之前测试提升40%,精准度达到90%以上,为整个研发团队节省耗时超过30%,以上参数充分证明二三维地理视图模块自动化测试方案在实际工作中的必要性、可用性和高可靠性,实现了地理信息应用系统全流程自动化的可行性,为自动化测试技术在地理信息应用软件领域的广泛实施提供实践依据。

猜你喜欢

视图流程测试
吃水果有套“清洗流程”
幽默大测试
“摄问”测试
“摄问”测试
“摄问”测试
违反流程 致命误判
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图