admin管理员组

文章数量:1530845

2024年3月8日发(作者:)

12306互联网售票系统测试的实现

李天翼

【摘 要】12306互联网售票系统是中国铁路重要的生产系统之一,直接面向广大旅客提供票务服务,该系统的稳定运行离不开合理有效的测试。软件测试是提高软件系统质量的重要手段,对于不同的系统,测试的手段和方法也不尽相同,文章从功能、性能、可靠性、安全性等方面系统地介绍了12306互联网售票系统的测试需求和测试过程。%12306 Internet Ticketing and Reservation System is one

of the most important production systems in China railway, directly faces

the passengers to provide ticketing services. The stable operation of the

System is inseparable from the rational and effective testing. Software

testing is an important means to improve the quality of software systems,

for different systems, means and methods of testing are not the same. This

article introduced test requirements and test process of 12306 Website

platform from the aspects of functionality, performance, reliability, security,

and so on.

【期刊名称】《铁路计算机应用》

【年(卷),期】2016(025)010

【总页数】4页(P27-30)

【关键词】12306;互联网;软件测试

【作 者】李天翼

【作者单位】中国铁道科学研究院 电子计算技术研究所,北京 100081

【正文语种】中 文

【中图分类】U293.22;TP39

12306互联网售票系统是在中国铁路客票和预订系统基础上,拓展互联网售票、手机售票等功能构建的电子商务系统。2011年6月12日,系统投入试运行,其后进行过若干次升级,对系统架构、网络布局、应用功能、业务流程等进行了持续的优化和改进,从而大幅提升了系统的处理能力、运行稳定性和用户体验。

测试是确保系统质量的重要手段,在12306互联网售票系统的历次版本升级过程中,合理有效地测试是必不可缺的一个环节。通过对系统进行全面的测试,修复软件、硬件、网络、应用等各方面存在的缺陷,验证系统的功能、性能、可靠性、易用性和安全性等方面能够满足设计需求,同时为系统的下一次升级工作提供数据支撑。

12306互联网售票系统整体上采用了双中心架构,在中国铁路总公司部署第一生产中心(简称:一中心),在中国铁道科学研究院部署第二生产中心(简称:二中心)。为提高系统安全性,网络上采用了三级结构,分别是外网、内网和客票网,系统的体系结构如图1所示。

12306互联网售票系统采用虚拟化技术实现了一中心和二中心的双活架构,两个中心采取相同的部署,互为备份,各自拥有独立的Web、AS、排队系统、缓存服务集群、车票查询集群、用户数据集群、交易中间件和电子客票库。正常情况下双中心同时在线提供服务,其中任意一个中心发生故障时可由另外一个中心承载全部的售票业务。

基于12306互联网售票系统特殊的体系架构,为了组织好系统测试工作,测试人员需要更加了解系统架构和系统组成,理清系统的模块组成,各模块之间的接口类型和接口测试需求,掌握基本的数据流向。

2.1 功能测试需求

12306互联网售票系统的功能测试主要包括:功能点测试、业务流程测试和用户界面测试等。

通过测试系统整体的业务流程,验证业务能否正常流转、流转内容是否正确、能否完成业务处理、异常业务的容错处理等;基本功能测试过程中针对各功能点设计测试用例,需要通过对数据的输入、处理、输出及异常输入,验证系统的功能是否正确;用户界面好坏决定了用户对系统的第一印象,设计良好的界面能够引导用户自己完成相应操作,起到向导的作用,所以还要进行全面的UI测试,提升用户体验度。

2.2 性能测试需求

性能测试的目标是对12306互联网售票系统关键功能点的性能进行测试和验证,在时间特性和资源利用性两个方面考察系统的整体性能表现。性能测试应在满足大用户量、大数据量和长时间稳定运行的前提下开展。通过对历年互联网售票高峰期数据进行统计分析,性能测试的目标应满足日均售票1 000万张的处理能力。

2.3 安全测试需求

作为电子商务系统,12306互联网售票系统的安全问题不容忽视。为了保障旅客资金和铁路票款的安全,需要对系统的网络安全、主机安全、应用安全、数据安全及备份恢复等进行全面的安全性测试。

2.4 其它特性测试需求

除了一般功能特性,还需要重点关注系统的可靠性和兼容性。可靠性是指系统在规定的时间和条件下不出现故障,可靠性测试重点考虑软件、硬件和双活架构的可靠性。兼容性测试是指软件在不同的软硬件平台上是否能够正常运行的测试,主要测试12306网站在不同浏览器上的表现是否正常;手机APP在不同手机上安装、卸载、运行、流畅性以及分辨率等。

3.1 功能测试实现

12306互联网售票系统共划分了售票、退票、改签、变更到站等基本功能,以及个人信息、联系人、订单信息、保险、旅客服务等辅助功能,还有行程冲突控制、用户Session控制、黑名单控制、身份核验等特殊功能总计几十项。功能测试以黑盒测试为主,综合运用等价类、边界值、因/果图、错误推测等方法设计测试用例,形成完整的测试用例库。测试用例设计时充分考虑了每一个功能点的适合性、准确性和可操作性;同时根据需求手册分别对应用系统中的业务流程进行分析和设计,除了主流程还要对每一个分支流程进行测试,测试顺序为先测主流程后测分支流程。

在测试手段上,采用了手工测试、自动化测试和第三方测试相结合的方式。通过手工执行测试用例库的方式对功能点和业务流程进行覆盖式测试。通过开发了部分主要功能点和业务流程的测试脚本,使用自动化测试工具,实现Firefox、Chrome、Opera、Safari、IE等主流浏览器的兼容性测试。对部分需要大数据量的功能测试也使用了自动化测试工具辅助完成,从而有效地减少了测试时间,提高了测试的准确性。针对手机售票,借助第三方测试平台对手机APP进行TOP600的兼容性测试,测试结果表明手机软件适用于市场95%以上的主流手机。

自12306互联网售票系统上线至今,共对17个大版本和超过100个以上的小版本进行测试,累积设计业务场景1 000多个,编制测试用例9 000多个,执行测试用例超过100万次,系统上线后的总缺陷率小于1‰,有效保障了旅客顺利完成购票。

3.2 性能测试实现

12306网站的日访问量极大,高峰期的日浏览量(PV)已达到300亿次以上,性能测试的重点是要保证大规模用户量情况下的网络购票流程及相关操作可以正常进行。

由图1可知,系统设计上采用了业务分区的模式来满足旅客不同的业务需求,其中购票业务是测试重中之重,旅客购票的核心操作包括系统登录、车票查询、车票预订、常用联系人查询、订单支付、订单查询等,这些核心操作对应了系统的各业务分区。性能测试时采用单业务场景和混合业务场景的模式分别对系统的处理能力进行验证。单业务场景测试可以得知系统各业务分区的极限处理能力,混合业务场景测试可以得到系统的综合处理能力。

为真实模拟互联网用户购票的操作行为,我们利用公有云平台部署性能测试软件,通过12306网站测试域名发起压力,在性能测试时实现模拟同时在线用户数不少于20万,模拟单日订票张数不少于1 000万,模拟订票系统吞吐量(TPS)不低于600笔/s,模拟电子支付TPS不低于420笔/s。为了模拟上述指标,我们的测试团队专门开发了T-Ticket测试平台,开发了上述关键节点的压力测试脚本,目前已经累计执行压力测试10 000 h以上,发现了软件方面的性能瓶颈33个,硬件方面的性能瓶颈17个,并及时进行了修复和调优。经过努力,12306互联网售票系统的运行稳定性、处理能力稳步上升,不仅日处理能力从最早的不足200万张上升到了当前的1 000万张,而且之前经常出现的系统难以登录、长时间排队、订单不能查询等情况也得到了明显的改善。在2016年春运售票期间,系统创出了单日售票量600多万张的最高纪录,2016春运售票区间内系统一直平稳运行,未出现任何影响旅客购票体验的情况。

3.3 安全测试实现

12306互联网售票系统的网络架构分为外网、内网和客票专网区域,安全测评范围为外网和内网。识别被测系统的整体结构、边界和网络区域划分,选取各区域重要设备和软件系统,并覆盖不同设备类型、操作系统和数据库系统分别进行检查和测试。

检查是指对测试对象进行观察、调查、评审、分析或核查的过程,检查包括:对安

全配置的核查、对安全策略的分析和评审等,需要对网络设备、安全设备、主机设备等进行配置核查,通过查看设备的配置项是否合理、安全策略是否启用来检查设备是否实现相应的安全防护功能。

测试是指在特定环境中运行一个或多个评估对象(限于机制或行为)并将实际结果与预期结果进行比较的过程。测试可以分为手工测试和工具测试。手工测试主要采用黑盒测试方法对安全功能进行测试,通过设计、执行测试用例验证系统安全功能,并通过人工访谈方式对采集到的测试结果进行补充和确认,进行综合分析。工具测试主要指采用自动化的方式(包括工具、脚本等)获得系统漏洞并进一步采用工具进行验证,包括端口扫描测试、漏洞扫描测试和渗透测试。利用工具可以检查出Web应用和主机操作系统存在的各种程序或脚本存在的安全漏洞,如SQL注入漏洞、跨站脚本、跨站请求伪造漏洞等。此类漏洞是目前引起网络安全风险的重要原因。除以上安全漏洞扫描工具外,12306互联网售票系统测试还采用了网络监控工具,对被测试软件所发出的数据包进行截获,查看是否可以截获到用户敏感信息,如用户登录密码等。

3.4 双活测试实现

12306互联网售票系统采用了一中心和二中心的双活架构,双活架构是指在一中心和二中心同时在线,同时为旅客提供服务。为保证双活模式能够发挥作用,必须针对性的进行双活测试,方法就是模拟某个中心全部或部分应用出现故障无法提供服务时,验证另一个中心的相同应用是否能够及时接管,从而保证整个系统可以继续正常运行。

根据系统的架构,分析业务必要性、重要性,我们组织了以下双活测试场景:(1)排队系统切换测试:模拟一个中心的排队系统出现故障,另一个中心的排队系统是否可以及时接管服务。(2)用户中心双活测试:模拟一个用户中心故障,另一个用户中心接管,通过登录用户、常用联系人和核验后用户的信息正确性来验证用户

中心双活。在数据库切换前完成注册新用户、修改用户信息和常用联系人信息,切换数据库后验证新注册用户是否可以登录,修改的信息是否保存正确,对用户购票操作是否有影响 。(3)电子客票库双活测试:模拟一个中心的承载电子客票数据库的物理机中出现故障,同中心备份数据库、异中心备份数据库和同中心运行数据库,是否可正常接管服务,且对故障前后旅客的订单信息无影响。(4)整体双活测试:验证一个中心出现故障,无法提供服务后,另一个中心是否可以正常、及时地接管全部服务。以上场景在测试时,均采取人为模拟制造故障的方式,查看故障前后的业务是否正常。

完整的测试流程是由测试需求分析、测试设计、测试执行、测试总结等过程组成,测试执行又具体划分为单元测试、集成测试、系统测试、验收测试等环节。由于篇幅有限,本文主要描述了12306互联网售票系统测试阶段的方法与实现,系统实际测试时不只是包含了本文所述的内容。测试不仅仅是局限于发现问题和解决问题,它还是提高12306互联网售票系统服务质量的重要手段,只有做好产品,才能让12306互联网售票系统拥有更好的使用价值,得到市场的广泛认可。

[1]朱建生,王明哲,杨立鹏.12306互联网售票系统的架构优化及演进[J].铁路计算机应用,2015,24(11):1-4.

[2]冯 菲,李天翼,于 澎.铁路互联网售票系统自动化测试研究与实现[J].铁路计算机应用,2015,24(11):24-26.

[3]朱建生,周亮瑾,单杏花,等.新一代客票系统总体架构研究[J].铁路技术创新,2012(4):93-97.

本文标签: 测试系统售票进行互联网