第36卷  第12期 福  建  电  脑 Vol. 36  No.12
2020年12月
Journal of Fujian Computer
Dec. 2020
———————————————
陈小云,女,1990年生,主要研究领域为建设工程业务、产品管理。E-mail:*****************。李宁,男,1982年生,主要研究领域为建设工程业务、造价业务管理、产品管理。E-mail:**************。
大型政务系统的上云测试实践
陈小云 李宁
(厦门海迈科技股份有限公司建设工程事业部 福建 厦门 361008)
摘  要 政务系统广泛地应用于各级政府部门,为机构内部和外部社会用户提供管理职能和服务,在建设之初往往通过物理服务器形式架设运行。政务系统的大型化和云端化已是目前的趋势和常态,但基于虚
拟化技术的云架构与物理服务器架构存在底层与兼容性等差别。为了保证迁移上云的切换顺利,范围完备且结果可信的测试工作尤为重要。本文以某个省级大型政务系统为例,对上云迁移工作涉及的测试验证工作进行相关探索和总结,为其他类似工作提供可参考的经验。  关键词 政务系统;政务云;性能测试
云上的诱惑 演员表中图法分类号 TP311.53  DOI:10.16707/jki.fjpc.2020.12.037
Cloud Migration Practice of Large E-government System
CHEN Xiaoyun, LI Ning
(Construction Projects Division, Xiamen Hymake Technology CO.,LTD, Xiamen, China, 361008)
Abstract  E-government system is widely used for Government departments at all levels, providing management and service abilities for internal organization and external social users, which is always built and run over the physical server at the beginning of construction. Enlargement and cloudization is growing trend at now, but there are many differences in basement and compatibility, between traditional architecture which based on a physical server, and cloud-architecture which based on virtualization technology. In order to ensure the migration work smoothly, a scope-complete and resul
t-reliable testing is very important.This paper takes a large, provincial level E-government system for example, focus on testing and verifying work related to the migration work, carries on the related exploration and summary, and provides reference experience for other similar works..  Keywords  E-government System; Government Affairs Cloud; Perfomance Testing
1 引言
云技术(Cloud technology )是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利[1]。
虚拟化技术是云计算的重要技术,是指计算元件在虚拟的基础上而不是真实的基础上运行。它可以扩大硬件的容量,简化软件的重新配置过程,减少软件虚拟机相关开销和支持更广泛的操作系统方面。通过虚拟化技术可实现软件应用与底层硬件
相隔离,主要用于物理资源的池化,从而可以弹性地分配给用户[1]。
在软件工程的测试工作分类中,功能测试和性能测试是最常见的两类。功能测试是对产品的各功能进行验证[2],根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。性能测试则是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试[3]。
电子政务系统是基于互联网技术的面向政府机关内部、其他政府机构的信息服务和信息处理系统[4]。系统利用高现代信息技术对政府进行信息化改造,以提高政府部门依法行政的水平。
2020年福建电脑121
随着我国政府对民生问题的日益重视,以及公共服务型政府的快速转型,政务系统由所属部门自建自管自维的运营模式已不能适应智慧型政府的要求[5]。因此,电子政务系统也逐渐向政务云平台的方向不断推进,以云计算技术搭建基础云平台,统一各类政务系统的硬件基础、网络环境以及通用软件服务,构建跨区域、跨部门、跨层级的资源共享、政务协同一体化的系统架构。
在实际工作中,需要针对某个省级大型政务系统的上云迁移需求,进行相关的测试验证工作。本文对该省级大型政务系统的上云测试工作进行探索和总结,为其他类似工作提供可参考的经验。
2 问题与风险
项目管理过程在某种角度上是一种基于风险管理的过程[6]。在政务系统迁云前应充分考虑到风险。风险可能来自以下几个方面:
(1)人员风险。参与迁移人员人数较少,会造成人员连续工作,增加出现错误的风险。
(2)设备损坏的风险。
(3)突发事件发生导致迁移延误的风险。
(4)迁云后的服务可用性与稳定性达不到要求的风险。
上云的主要目的是通过云平台运行为业务提供服务,无论何时考虑从一个运行环境迁移到另外一个运行环境,都必须首先考虑底层服务的可用性。这些服务包括:活动目录之类的基础设施应用程序,以及综合业务系统之类的面向客户的应用程序。
传统电子政务系统部署于物理架构,而上云则是虚拟化技术的云计算架构技术[7]。迁移工作包含了相关数据的迁移,如附件数据、数据库数据,还包含了代码的迁移。将应用程序数据从传统IT架构迁移到云平台上是最复杂也是最难验证结果的环节。某省级的这个大型政务系统,已经投入使用近十年,附件繁多,数据量庞大,迁移时间长。若直接采用基于硬盘等物理介质的备份拷贝方式,将导致迁移时间长,不是理想方案。而是采用通过FTP 方式进行附件的文件形式传输,配置迁移使用的专线线路的前提就是要实现原机房内网到政务云管理网的网络互通,保证迁移数据能够通过网络传输到政务云虚拟化平台的存储系统中。但需要确保文件被完全迁移,且没有任何丢失,这是必须考虑的风险。
当完成了应用程序相关的迁移工作后,最重要的问题是,当原地址物理服务器关机,新环境服务上线接管业务后,系统能否正常运行,功能能否正常使用,业务数据是否保持完整,用户访问是否无感变化,在访问高峰期时系统的性能是否能够满足,与外部系统的对接是否无缝切换。要验证这个问题,
则需要进行云上测试工作,主要包括功能和性能两个方面。从功能测试对产品的各个功能进行验证,根据功能测试用例,逐项测试,保证产品功能和迁移前一致。待功能测试工作完成并确定系统稳定后,进行性能测试工作,选定一批典型业务场景,并通过自动化的测试工具模拟多种正常、峰值以及异常负载条件,对系统软硬件的各项性能指标进行测试和评估,确保系统在迁移前后的表现稳定一致。
3 测试工作需求和计划
针对以上考虑问题,对该政务系统进行分析,可得知具有以下特点:
(1)用户类型多样
该系统是面向全省的,涵盖申请、审批、检查、归档等业务的一站式平台。用户除了省市各级行业主管部门外,还包括各类相关企业、项目负责人等。用户类型多样且数量规模庞大。
(2)业务有较强的时效性和不可重复性
该系统注重办件的时效性,例如企业在某个时间节点前需要完成许可证的申请业务;主管部门需要在收到申请3天内完成审批或打回操作等。
不可重复性则指申请和审批类型业务往往不能重复进行。
(3)用户功能场景复杂
该系统是一个一站式、全流程的业务平台。各种申请、审批流程涉及环节众多,用户的日常使用功能多样,对功能模块和数据表的访问在业务逻辑上交错复杂,经常出现高并发访问和数据互相依赖的现象。
(4)用户访问有明显的潮汐特征
该系统涉及范围广,其中许多业务具有规定的完成时间,例如每月度季度末的数据填报、上级发布的紧急任务需要在时间内完成反馈等。因此会周期性地在特定时间段出现用户访问量高度集中的现象,如果出现某个时间段任务重叠情况加剧,那
122 陈小云等:大型政务系统的上云测试实践第12期
客流叠加现象将更为突出,因此确保迁移后的系统稳定尤为重要。
(5)外部对接的系统众多
该系统是省级行业管理的核心平台,涉及到与众多外部系统的对接,包括数据的实时获取、定时上传下载等。保证对接正常是维持日常业务运转的重要要求,因此做好外部对接系统的梳理和对接方的联系尤为重要。
基于以上特点,对于测试工作,拟定以下范围、目标和步骤等。
(1)功能测试
为确保迁云后的服务可用性,功能测试方面需要覆盖系统所有模块,覆盖系统核心功能所有正向流程和部分非常规业务。因此计划以传统式测试为主线,将探索式测试作为补充[8]。传统式测试注重流程,而探索式弱化流程,强调实践能更快地进行测试。传统式测试流程依据此前已经编写的详细功能用例编进行测试,而探索式测试则直接使用“测试点”来进行测试。两种测试思想结合,优势互补,既能确保页面展示正常、功能正确又能更快更高效的发现缺陷。
(2)性能测试
因为该系统的功能迭代频率很高,之前的性能测试结果已不完全适用,需要衡量评定新的性能指标。此次性能测试是以探索方式进行,以到系统最佳并发用户数[9],即以资源不浪费的同时系统响应快,效率最大的时候为目标;以到系统的最大并发用户数作为警示和风险评估参照值,能在系统到这个拐点出现系统性能下降前做好风险预防。
(3)测试范围和步骤
大致包括以下步骤:
①列出该系统的所有模块以及功能流程。
②列出与该系统相关外部系统和相关配置。
③选定性能测试工具,考虑Loadrunner使用步骤简单、易操作,选定为本次性能测试的工具。
④根据以往的历史数据,圈定核心测试场景、制定测试方案以及性能评估综合指标体系。
⑤调整环境配置,确保测试过程产生的数据不会影响生产环境正常使用。
⑥进行功能测试和性能测试脚本编写。
⑦确定功能测试正确无误后,进行性能测试。
⑧分析性能测试结果,进行调优并验证调优结果,该环节进行多轮。
⑨出具功能测试和性能测试结果。
⑩迁移上线前准备,还原配置并确认系统配置修改成正式配置。
图1 测试步骤简要流程
4 实际工作与经验
针对前述功能测试和性能测试,将过程中遇到的问题和解决方案介绍如下:
(1)系统中电子签章的功能经常出现失败。通过后台服务查看日志,并用Telnet命令访问第三方系统服务验证,确定为第三方测试服务器异常导致,联系第三方解决该问题。
(2)系统中扫描二维码查看文书功能无法正常使用。通过查看日志等方式,确认该问题是由于相关插件未安装,以及云存储与部署环境的通讯问题,调整后解决该问题。
(3)访问电子文书时,偶尔出现第一次无法打开,但重试后正常的情况。检查后发现与系统开发框架有关,在服务集的部署方式下,没有自动同步文件副本导致。
(4)在编写性能测试参数化脚本时,需要准备大量的数据,并对部分数据进行编码转化,除需要对业务相关表熟悉之外,还需要涉及对辅助转义编码工具的运用。在本次测试过程中,选择python 语言对参数批量进行encode编码,以及频繁使用sql语句进行增删改查操作。但在测试工作初期,未考虑到数据库可能会多次还原而没有对sql语句进行保存,导致对工作效率有所影响。
(5)在性能测试过程中,出现大量如下错误:“[ERROR][processor.A bstractBizProcessor:142]ErrCode:12101001Message: session失效或者用户未登陆.”通过检查发现该
问题是redis配置问题,调整后解决。
(6
在性能测试场景运行过程中,后台出现
2020年福建电脑123
了很多sql语法错误,如:“--- Cause: java.sql. SQLException:'f59b0785675e05010167879074664d6 d' 附近有语法错误”。但通过功能测试可以确定该功能并无问题,排查分析后发现是在参数化过程中出现的问题,因此调整参数重新运行场景。
(7)在性能测试场景运行的过程中,从LoadRunner工具可以看到大部分事务运行失败,但通过浏览器直接访问方式,可确认功能是正常的,经排查确认原因为部分tomcat的配置有误,后调整解决。
(8)重启应用服务器后,发现某个访问文件的功能出错,排查后确定原因为:服务器重启后未自动挂载文件存储共享盘。勾选“重启服务器自动连接后”,解决该问题。
对上述问题分类概述如表1所示。
表1  测试问题分类概述
以上是在测试过程中遇到的一些问题以及如何解决的过程。总之,在遇到问题的时候,可以通过问题的表象、后台日志等等信息,分析问题可能出现的原因,并一一去尝试验证,进一步排查和确认问题的根本原因,直到问题解决。
5 总结
本文通过结合某省大型政务系统从传统IT架构迁移到云架构的测试情况介绍,为其他类似工作提供可参考的经验。
在此次大型政务系统迁云的测试过程中,采用的是传统测试方法和探索性测试方法来进行功能测试和性能测试,确保了迁云后应用服务能够正常使用。但因时间有限和经验不足等因素,仍然存在一些风险和不足,例如对混合场景的设计是否贴近真实,探索出的实际系统最佳并发用户数是否和实际情况贴近;在准备数据过程中未将中间成果保存而导致额外的时间花费;以及未对政务云的原生云服务有更进一步的应用。这些在未来的工作中,都是可以进一步改进的方向。
致谢感谢项目组成员林汉艺、薛军及吴成福等同事在项目设计实现和运行测试上所做的工作,感谢海迈科技金季岚等领导们的有价值的建议和讨论,同时也要感谢审稿专家们所提出的宝贵意见,促使本文质量得到进一步提升。
参考文献
[1] 360百科.云技术.baike.so/doc/5405007-5642774.html?data,
2020,7,20
[2] 申利芳.软件测试在程序开发中的应用.天津冶金,2011(06):49-50,62
[3] 李国文.计算机应用系统性能测试技术与运用分析.计算机产品与流
通,2019(10):12
[4] 黄莹.电子政务系统研究.数码世界,2017(010):160-161
[5] 吴建新.以智慧政府建设推进智慧城市发展的对策研究.中国信息
界,2011(5):24-26
[6] 百度百科.风险管理.baike.baidu/item/风险管理
/3419129?fr=aladdin,2020.7.19
[7] 赵琴.试论云计算架构及应用.中国新通信,2019(23):119
[8] 施青青.指挥信息系统软件探索式测试应用研究.网络安全技术与应
用,2019(5):108-110
[9] 百度百科.并发用户数.baike.baidu/item/并发用户数?fr=
aladdin,2020,7,19
编号测试类型问题概述
1
功能测试第三方测试服务器异常
2 云存储与部署环境的通讯问题
3 集的部署方式下,没有自动同步文件副本导致
4
性能测试数据准备语句未存储
5 redis配置错误
6 部分参数化的数据错误
7 部分tomcat的配置有误
8 未自动挂载文件存储共享盘