凌 赟 凤德金
(广西民族大学软件工程系,广西 南宁530006)
在政府网站绩效评估指标体系中,影响政府绩效的指标有网站规范、展现布局、地址链接、信息更新情况等,而其中一些可以通过自动化的方式进行测评。本系统拟对政府网站测评绩效评估指标中的地址链接、展现布局、网站可用性的指标采用自动化方式完成测评。
通过分析政府网站绩效评估指标体系,可归纳出系统应该实现如下功能需求:
1.1 测评首页可用性。测评标准为监测网站一周,每天间隔性访问20 次以上,计算首页打不开的次数占全部监测次数的比例,超过(含)15 秒网站仍打不开的次数比例累计超过(含)5%即判定为不合格网站。
1.2 测评火狐、IE 等主流浏览器兼容性。实现获取网站在火狐、IE、谷歌浏览器运行下的首页截图。
1.3 测评链接可用性。测评标准为每发现一个首页上不能正常访问的链接,扣一分。
Selenium 作为专用的Web 应用程序自动化测试工具,基于其易扩展、兼容性强、方便易用等特点,本系统采用该框架完成系统设计与实现。Selenium 历经三个版本的发展,目前最新版本是Selenium 3,由各浏览器厂商为Selenium 提供的WebDriver,使Selenium 具有更高的自动化效率和成功率。
WebDriver 的功能非常强大,其拥有的功能特性为本系统的实现提供了良好的技术支持,如下所列:
2.1 支持多种浏览器,例如Mozilla FireFox、Google Chrome、Internet Explorer 等,为本系统实现浏览器兼容性的功能提供了良好的支持。
2.2 WebDriver 不仅提供了定位页面元素的方法,还可以获取网页源代码,通过它可以爬取页面数据。本系统在实现测评链接可用性功能时需要获取首页上的所有链接,所以在这个部分我们通过WebDriver 提供的定位元素的方法findElements(By.cssSelector("a"))实现爬取首页上的所有链接。
2.3 WebDriver 支持页面截图,它提供了TakesScreenshot 接口来实现网页的截屏。
2.4 WebDriver 支持JS(javascript)的注入,在本系统编写实现Window.performance 和停止加载网页自动化测试脚本的过程中需要执行JS 语句,在WebDriver 中执行JS 要先将WebDriver的实例强制转换成JavascriptExecutor 类型,第二步则可以注入JS 代码。本系统中利用(JavascriptExecutor)driver).executeScript("window.stop()实现了停止加载网页的功能。
系统的另一个关键功能是采集网页相关性能数据,Window.performance 是W3C(World Wide Web Consortium)性能小组推出的一套性能API 标准,提供了获取与浏览器性能有关的时间数据功能。
系统通过Apache Echarts 实现各项网站的性能指标数据的可视化。
本系统基于分层体系结构风格,根据需求将系统划分为数据可视化层,控制器层,数据采集层以及数据分析层。其总体架构如图1 所示。
系统架构图
下面将对系统各个层次的职责进行阐述。
控制器层有两个作用,一是从数据可视化层接收用户输入的信息,然后将请求参数传递给数据采集层里对应的子模块,二是将最终的测评结果返回给数据可视化层对应的视图。
数据采集层是整个测评系统的基础,它的职责是对网站测评所需数据进行采集,在本系统中所采集的数据主要是网页性能数据。数据采集层需要实现数据采集脚本的功能。在该层中,需要采集网页的请求状态,网页的加载时间、首屏时间以及在火狐、IE、chrome 浏览器下的首页快照。实现该模块的基础是Selenium 框架,依赖此框架提供的WebDriver 接口,启动浏览器,在获得WebDriver 实例后,才能进行下一步的数据采集操作。
数据分析层主要实现数据过滤和数据计算功能。主要流程是对采集到的数据进行无效数据的过滤,得到需要向用户展示的数据,并根据这些数据进行再加工,对数据进行一些比较、计算,最终得到测评结果,为数据可视化层做好数据准备。
数据的过滤目的是将与测评结果无关联的数据进行过滤删除,获取测评指标所需要的数据,本系统主要是对采集到的网页性能数据进行过滤。数据计算是进一步将过滤得到的数据进行再加工。本系统需要展示测评结果,测评结果的产生需要对网页性能数据进行计算占比、加减运算以及求平均值;并参照测评指标,得到最终的测评结果。
数据可视化层主要负责视图的显示,该模块集成SpringBoot Thymeleaf 模板完成视图的设计与展示,结合Echarts 实现数据可视化。
系统的测试内容主要是功能测试,采用黑盒测试方法,接下来对部分测试用例的设计进行说明,阐述系统的测试工作。
链接可用性测试完成验证链接可用性测评结果是否与测评指标一致。通过在用户界面中选择测评链接可用性,输入待测评的网址,确认后返回不可打开链接数,并展示依据绩效测评指标做出的评分。
首屏时间测试完成验证首屏时间测评结果是否与测评指标一致。通过在用户界面中选择测评首屏时间,输入待测评的网址,确认后返回首屏在Firefox、Google 以及IE 的打开时间,并展示依据绩效测评指标做出的评分。
通过以上两项测试,测评链接可用性和测评首屏时间实际结果均与预期结果一致,这两个功能测试通过。
本文面向政府门户网站,提出基于Selenium 框架的自动化测评平台,并成功实践了对政府网站的自动测评。根据需求对系统进行设计,并基于Selenium 搭建自动化测试平台,能够通过模拟浏览器来进行自动化采集相关性能数据,达到最终的测评目的,系统运行效果良好,提高了测评工作的效率和质量。
作者要感谢张纲强老师和编辑的宝贵意见和建议,这些意见和建议极大地帮助改善了论文的质量。这项工作得到了来自广西民族大学软件工程重点实验室(2020-18XJSY-03)、国家级大学生创新创业训练计划项目(201810608005)、广西高等教育本科教学改革工程项目(2019JGB174)以及广西民族大学特色专业及实验实训教学基地一体化建设项目的支持。