删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

面向云存储服务的分布式测试框架设计与实现

本站小编 Free考研考试/2022-01-02

马振威1,2, 张海明1, 温亮明1,2, 黎建辉,1,*1. 中国科学院计算机网络信息中心,北京 100190
2. 中国科学院大学,北京 100049

Design and Implementation of a Distributed Testing Framework for Cloud Storage Services

Ma Zhenwei1,2, Zhang Haiming1, Wen Liangming1,2, Li Jianhui,1,*1. Computer Network Information Center, Chinese Academy of Sciences, Beijing 100190, China
2. University of Chinese Academy of Sciences, Beijing 100049, China

通讯作者: * 黎建辉(E-mail:lijh@cnic.cn

收稿日期:2019-12-23网络出版日期:2020-04-20
基金资助:中国科学院战略性先导科技专项(A类)子课题“大数据资源库与门户系统”.XDA19020104


Received:2019-12-23Online:2020-04-20
作者简介 About authors

马振威,中国科学院计算机网络信息中心,中国科学院大学,硕士研究生,主要研究方向为大数据、分布式传输、分布式存储。
本文中负责分布式测试框架的设计与实现。
Ma Zhenwei is a master student at Computer Network Information Center of the Chinese Academy of Sciences (University of the Chinese Academy of Sciences). His main research interests are big data, distributed transmission and distributed storage.
In this paper, he is responsible for the design and implementation of the distributed testing framework.
E-mail:mazhenwei@cnic.cn


张海明,中国科学院计算机网络信息中心,博士,高级工程师,硕士生导师,主要研究方向为大规模分布式存储、云计算、大数据及数据出版。
本文中负责测试框架方法介绍与应用分析。
Zhang Haiming, Ph.D., is a senior engineer and the master tutor at Computer Network Information Center, Chinese Academy of Sciences. His main research directions are large-scale distributed storage, cloud computing, big data and data publishing.
In this paper, he is responsible for completing the introduction of the test framework methods and application analysis.
E-mail:hai@cnic.cn


温亮明,中国科学院计算机网络信息中心,中国科学院大学,博士研究生,主要研究方向为科学数据共享、数据资产管理。
本文中负责综述概括与现状分析。
Wen Liangming is a PhD candidate at Computer Network Information Center of the Chinese Academy of Sciences (University of the Chinese Academy of Sciences). His main research directions are scientific data sharing and data asset management.
In this paper, he is responsible for the writing the summary and current analysis in this article.
E-mail:wenliangming@cnic.cn


黎建辉,中国科学院计算机网络信息中心,博士,研究员,博士生导师,研究方向为大数据资源开放共享、大数据管理技术、大数据计算与分析技术等。
本文中负责分布式平台方法原理和结论展望。
Li Jianhui, Ph.D., is a research fellow and the Ph.D. supervisor at Computer Network Information Center, Chinese Academy of Sciences. His research directions are open sharing of big data resources, big data management technology, big data computing and analysis technology.
In this paper, he is responsible for the summarizing the principle and conclusion of the distributed platform methods. E-mail:lijh@cnic.cn



摘要
【目的】分布式测试框架是一种通过集群进行大规模测试的方法,它通过中控系统对大量廉价主机进行控制,使其以一种标准化模式进行工作,对于规模庞大的待测试系统具有重要的现实意义。【方法】文章首先介绍了分布式执行集群部署方案和管理中控架构,设计了包含三个实现模块的测试框架流程。然后介绍了分布式测试框架的软硬件环境和对象云存储系统架构,最后通过对象云存储系统进行单桶测试和吞吐量测试。【结论】测试结果表明,面向云存储服务的分布式测试框架具有快速、多模式、高效等特性,有效满足大规模测试系统的性能要求。
关键词: 分布式测试;数据传输

Abstract
[Objective] The distributed testing framework is a method for large-scale testing by clusters. It controls a large number of cheap hosts through a central control system and makes them work in a standardized mode. It has important practical significance for testing large-scale systems. [Methods] The article first introduces the distributed task cluster deployment scheme, the master central control architecture, and the design of a testing framework consisting of three implementation modules. Then introduces the software and hardware environment of the distributed test framework and the object cloud storage system architecture. In the end, the storage system performing single bucket tests and throughput tests is presented. [Conclusions] The test results show that the large-scale distributed testing framework has characteristics such as fast, multi-mode, and high efficiency, which satisfy the performance requirements of large-scale system testing.
Keywords:distributed testing;data transmission


PDF (6401KB)元数据多维度评价相关文章导出EndNote|Ris|Bibtex收藏本文
本文引用格式
马振威, 张海明, 温亮明, 黎建辉. 面向云存储服务的分布式测试框架设计与实现. 数据与计算发展前沿[J], 2020, 2(2): 136-144 doi:10.11871/jfdc.issn.2096-742X.2020.02.011
Ma Zhenwei. Design and Implementation of a Distributed Testing Framework for Cloud Storage Services. Frontiers of Data and Computing[J], 2020, 2(2): 136-144 doi:10.11871/jfdc.issn.2096-742X.2020.02.011


引言

随着科学技术的发展,各类软件应运而生,数据传输无处不在,数据也变成现代企业的石油,保存有价值的数据,在需要时候方便快捷地查询数据已是当务之急。现阶段传统的关系型数据库和非关系型数据库已经无法满足日益增长的数据处理需求,在处理巨型文件时,面临超出本地服务器存储上限的瓶颈。此外,一味地增加服务器数量,也会产生巨大的经济成本,无法实现快速、统一的数据管理优化。此时,对象云存储服务应运而生,对象云存储服务是基于对象的海量云存储服务,为用户提供海量、安全、高可靠性、低廉成本的数据存储能力,可以快速地通过Web、API接口等方式对云存储服务器进行创建目录、删除目录、修改目录、上传对象、下载对象、删除对象等。云端服务器由统一的存储引擎对数据进行专门管理,保证了存储的安全可靠。解除了客户对海量文件的存储难题,用户可以在任何时间、任何电脑、任何地点存储和访问任意类型的数据[1]

在云存储系统进行测试阶段,现在主要有两大类方式,人工手动测试与自动化测试。手动测试大多依靠测试人员手工完成,由于人工不善于执行重复枯燥的工作,因此手工测试不仅速度缓慢、精确度低,而且出错概率较大,往往会将不准确的测试结果反馈给开发团队。自动化测试是将自动化工具与技术应用于软件测试,由相关程序和算法自动重复执行相同的测试操作,不仅测试结果精准,而且能将测试结果快速反馈给相关人员,有助于以更少的工作量构建质量更好的软件,但是在云存储测试时候也无法完全发挥优越性能。

随着数据规模不断扩大,功能更加复杂,网络带宽紧张,给传统的测试工具带来了巨大压力,以至于无法快速准确的进行测试。分布式测试框架可以根据不同的测试用例,通过中控系统统一指挥调度进行工作,达到完成不同测试用例的任务,分布式系统又可以并发执行,大大节省测试时间。因此分布式测试框架相较人工测试和单节点自动化测试有明显的时间和空间优越性。

1 研究现状分析

目前软件测试和静态分析是两种使用最为广泛的缺陷检测技术[2],可以检测出系统运行时性能的优劣。软件测试主要是通过大量测试用例进行集中测试,需要提前准备充足的资源;静态分析能在程序较早阶段发现程序缺陷。但是在对云存储系统性能瓶颈检测时候,这两种手段往往达不到理想的效果。针对这一问题,学术界虽然进行了一些探讨,但研究结果相对匮乏:Ma Chunyan等提出了Stream X-machine[3]模型,该模型能比较直观地观察服务器的测试结果;Ipate F等提出了RFSM[4]测试模型。以上研究从不同方面解决了Web服务器测试用例的自动化生成问题,但是并没有解决服务器的并发传输性能问题。鞠炜刚等提出了基于环境资源自动匹配的云测试框架[5],解决了测试环境的合理利用,但是没有解决根本的高并发问题。众包测试[6]利用到了分布式的思想对软件进行测试,采用请求者与工人的模式进行分布式测试,但是对于云存储系统不能快速的启动工人测试。基于此,本文主要运用分布式测试,对系统传输功能不断增压,从而在系统结构和系统资源上进行优化。通过大量用户长时间同时向服务器传输数据,测试系统接收速率变化,监控和分析资源性能指标。

2 框架设计

本文设计的分布式测试框架整体采用管理-执行(Master-Task)形式。Master主机负责判断区分下传指令或者下传文件来进行算法选择,Task集群负责对实际命令的执行。图1为整个分布式测试框架的结构示意图,整体框架主要包含Master主机维护模块、待测试文件同步系统模块、下达系统命令模块。

图1

新窗口打开|下载原图ZIP|生成PPT
图1分布式测试框架

Fig.1Distributed testing framework



2.1 分布式Task集群部署方案

Task集群节点众多,并且根据测试任务的大小,单次上传的文件可能达到TB级别,所以对集群之间的数据快速备份要求极高,并要求得到快速反馈。因此,传统的单一数据传输和接收模式在效果和效率上显然难以满足需求,传统模式数据以线性的模式进行传输,时间效率为N,在面对庞大数据时候将面临灾难性的考验。本文借鉴Hadoop生态环境中Spark[7]的管理模式,结合Linux系统多进程服务,通过分布式部署客户主机,设计了一套基于二叉树递归的传输算法,并在实践中得到了良好的效果。

在实际部署环境中,管理(Master)主机需要将客户端主机上传的文件拷贝到执行(Task)集群上,然后通过集群进行压力测试。首先考虑到中控管理主机性能问题,因为测试环境并不是超级计算机,没有庞大的计算性能,所以同时开启的最高线程数设定为5个,可以并行将待测试文件上传到执行集群中,这是在传统的上传模式上通过Linux多线程实现,但本质还是线性传输,速度只能提高5倍,在面临上千集群时显然不是理想的。因此,本文采取二叉树递归传输算法进行文件上传,不但降低了中控管理主机的传输压力和负载,而且大幅度缩短了传输时间。

二叉树递归传输算法是利用二叉树的树形结构,将Task集群以二叉树的形式进行逻辑排列,二叉树之间的传输通过Master主机分配任务进行2倍递增的速率,从而将Masker对Task集群的控制时间从N变为了log2n,大大缩短了集群启动时间,从而为传输减少了系统等待。先由Master主机向其子Task主机传递一份数据,然后Task主机再将数据下发给它的子节点,以此类推最终达到快速的文件传输,完成Task集群部署。

2.2 Master中控架构

在自动化测试系统中,Master主机发挥重要作用,它主要负责所有Task主机的控制、文件下发、命令传达、帮助客户端主机管理Task集群等。由于客户端主机想要进行测试任务,首先要经过Master主机将需要的环境部署好,压力测试本身就是一种破坏性的性能测试,随时都有可能使待测试系统崩溃,因此本文设计的测试系统采取了聚合模式,每一个Task集群都可以和Master主机直接通信,保证单个节点的损坏情况能影响到测试的准确性。最后将每一台主机的测试日志整理反馈给Master主机以快速进行系统日志整理,以便检查工作情况。

Master主机具备良好的文件管理性能,其能将所有的文件拷贝到备用(Secondary)主机上,以防止单点故障引发的全系统崩溃,当中控主机发生故障时,Secondary主机会自动代替中控主机的位置成为新的中控主机并操控Task集群。由于基于操控所下发的命令所占字节较小,因此测试实验中采用了并行传输策略。在进行中控时,Task集群的200个节点对于Master主机而言都是受信任状态并免密接受Master控制,Master主机向Task集群下达工作指令,Task集群在收到指令后立刻向Master主机反馈成功接收指令并执行工作指令,整个过程的延迟只需要0.1秒。在后续Task集群工作环节,Master主机将每个Task集群的反馈情况记录到日志中,在8核的Master主机下可以无影响的并发执行8个控制,将命令下达至整个集群耗时仅2.5s,取得了较好的部署效果。

节点修复问题在实际应用中也占据非常重要的地位,只有先确定哪个节点发生故障,才能据此实行解决方案。当收到节点反馈时,中控主机会自动识别未反馈的主机并标注,再次向未反馈主机发送执行命令,如此重复发送3次,如果始终得不到回复,则将未反馈节点列为损坏节点。一般情况下,中控主机无法对执行主机进行控制,主要原因是因为中控主机的权限较低,重新设置免密登陆即可解决。图2为单节点流程控制示意图。

图2

新窗口打开|下载原图ZIP|生成PPT
图2单节点流程控制

Fig.2Single node flow control



2.3 测试框架实现流程

2.3.1 Master主机维护模块实现

Master主机维护模块主要记录Task集群之间的信任关系和控制情况。在进行集群扩展时,只需要在本模块添加记录并更新即可达到快速扩展的目标。主机控制模式采用递归搜索二叉树方式进行遍历整个Task集群。中控主机维护列表如表1

Table 1
表1
表1信任关系
Table 1Relationship of trust
主机IP角色定位管理权限
IP100管理节点所有节点
IP101执行节点IP103 IP104
IP102执行节点IP105 IP106
IP103执行节点IP107 IP108
IP104执行节点IP109 IP110
IP105执行节点IP111 IP112
IP106执行节点IP113 IP114
IP107执行节点IP115 IP116
IP108执行节点IP117 IP118
IP109执行节点IP119 IP120
IP110执行节点IP121 IP122
IP111执行节点IP123 IP124
IP112执行节点IP125 IP126
IP113执行节点IP127 IP128
...执行节点...

新窗口打开|下载CSV

每个Task主机都包含私有子节点,Task主机可以对子节点下达命令,私有子节点的地址由如下步骤计算得到。



2.3.2 待测试文件同步系统模块实现

待测试文件同步系统的主要功就是将被测试的文件高效地传输到整个Task集群,以通过集群去完成对象云存储系统的测试分析。在进行文件同步时,用到了上文所描述的Task集群部署方案中的二叉树递归传输算法,可以达到快速部署的目标,具体实现细节如下。



2.3.3 下达系统命令模块实现

本模块主要是中控主机对每个集群节点的下达命令传输,通过主机控制执行节点进行工作的命令仅占据KB级别的内存。如果使用递归算法,则时间耗费较大,因此本文采用并行传输方式,由于Master主机对整个Task集群具有控制权限,其会快速地将指令下达给Task集群,每一个正常的Task节点都会收到来自Master主机发送的执行命令,Task节点收到命令后会向Master主机确认接收,Task节点根据接收到的命令执行测试任务,任务执行完毕之后将执行结果等信息一并发送给Master主机,生成完整的日志文件。如果某些Task节点没有执行测试任务,则会被Master主机标记并再次下达命令,3次无法启动将会重启免密登陆服务,然后再次下达命令,如果仍然无法得到反馈结果,该节点则会被记录到日志文件,交由人工判断处理。

3 测试环境

3.1 分布式测试系统环境

本文工作主要通过自行研发的分布式测试框架对系统性能进行测试、分析,框架主要思想也是通过压力测试[8]进行实现。压力测试主要通过对系统加压,让它在极限工作环境下工作,观察运行情况,发现性能缺陷,进而对系统结构进行优化调整。由于响应时间、最大并发用户数、吞吐量和资源利用率可以分别用来衡量软件的及时性、扩充能力和容量、处理能力、运行状态,且系统处理速率越快、吞吐量越大、并发数越多说明系统性能越好,反之越差[9]。因此本文选择并发用户数、持续运行时间、传输数据量三个角度进行测试分析。用户可以通过中控系统的中控主机将要测试的文件以二叉树递归传输算法发送到每个执行节点上进行工作,用户只需要在Master下达命令即可完成所有Task测试工作,无需关心每一个Task的运行情况。表2为整个测试系统所用到的主机的详细信息。

Table 2
表2
表2测试环境系统信息
Table 2Test environment system information
系统/硬件版本/容量
系统版本Linux centos7 3.10.0-862.14.4.el7.x86_64
处理器8核 2GHz
内存8192MB
网卡速度1000Mbps
磁盘速度133MB/s

新窗口打开|下载CSV

3.2 对象云存储系统架构

实验涉及的对象云存储系统主体架构通过Django开发框架完成,虽然Django框架无法满足高可用性,但是结合Nginx进行负载均衡,对外透明对内平均分配资源,从而达到高可用性。

由于数据的安全性和隐私性问题日益突出[10,11],为了解决此问题,我们的底层存储采用的是优化的Ceph[12]存储系统。Ceph集群作为高可用、高扩展、高性能、低成本的分布式存储系统代表,具备很多优越的性能,如其开源特性以及提供块存储、对象存储和文件系统的统一存储能力已在越来越多的企业中得到应用[13]图3为整个系统的实验环境结构。

图3

新窗口打开|下载原图ZIP|生成PPT
图3实验环境结构

Fig.3Experimental environment



4 测试结果

在对象云存储系统上线之前需要进行大规模测试,对性能进行分析、度量、优化,保证系统上线之后的稳定运行。本文基于上述章节所述的分布式测试框架,通过不同时间段的上传,统计分析出网络高峰期对系统的影响。压力测试作为测量系统瓶颈的主要方式,要求其具备大规模、持续性、并发性等特点。

分布式框架主要目的是快速、便捷、并发的执行任务,快速和便捷在于通过中控系统短时间启动上百个节点工作,并发在于每个节点互不影响、相互独立的进行工作。下面将针对这些特性展开相关测试工作。

4.1 并发测试

分布式测试框架的快速部署源于中控系统通过二叉树递归算法对系统的启动。图4为通过传统模式传输待测试文件和通过二叉树递归传输算法进行待测试文件传输的对比图。

图4

新窗口打开|下载原图ZIP|生成PPT
图4传输算法对比图

Fig.4Transmission algorithm comparison chart



图4中蓝色虚线表示二叉树递归传输算法,红色虚线表示传统线性传输算法。试验中待测试文件的体量为5GB,测试框架之间主机配置和主机之间的连接完全相同,两个主机之间传输文件平均耗时1分钟。中控主机打开5线程传输时可以同时传输数据给5个执行主机,用时1分钟,但此时中控主机已经要达到饱和状态。通过10分钟部署环境测试,很容易发现二叉树递归传输算法比传统的线性传输算法性能优越,虽然最初2分钟内线性传输算法启动比二叉树递归算法快,但是随着规模增加,尤其是达到10分钟时,线性传输算法只能部署50台Task主机,而二叉树递归传输算法则可以达到1000台Task主机。实验表明二叉树递归传输算法在部署Task主机时候有高效性、合理性。

4.2 单桶测试

对象云存储系统是对象的存储,将对象放到设定的测试桶中,由系统对桶进行管理维护。每个桶的容量以及查询、写入速率是考察对象云存储系统的重要指标。

本次通过模拟200个用户进行传输测试,每个用户单次上传大小为1MB的文件,重复进行1000次传输,预计单桶总文件量达到200000个。测试初期打开查询桶中记录的耗时在1秒之内,基本可以达到用户对系统测试时间的要求。但随着桶中文件数量的增加,查询速率会变得越来越慢,甚至达到了4秒左右,严重影响了用户体验,测试结果如图5所示。

图5

新窗口打开|下载原图ZIP|生成PPT
图5效果对比图

Fig.5Comparison chart of effect



通过测试发现,数据库的选用是影响性能的主要因素,发现的系统瓶颈,为后续工作中调整优化系统结构提供了方向。

4.3 吞吐量测试

由于系统可能遇到大规模用户同时上传数据的问题,因此服务器处理并发数据流的能力是评价系统优劣的重要指标。本节将发挥测试框架分布式的优势,测试系统接收用户数据的性能,通过分布式测试框架模拟200个用户同时向对象云存储系统分别持续传输1MB、100MB、1GB、10GB、100GB大小的文件,统计所用时间然后进行分析。以1MB小文件上传为例,其单用户速率可达到4个/每秒左右,每秒钟上传文件数量所占比例如图6所示。

图6

新窗口打开|下载原图ZIP|生成PPT
图6每秒钟上传文件数量所占比例图

Fig.6The proportion of the number of uploaded files per second



在进行1GB、10GB大文件并行传输测试时,服务器需要持续接收并处理所有用户的数据,此时我们使用团队搭建的大规模监控框架[14]——Zabbix进行观察。在进行长达两个小时的测试中,发现单节点上传速率可以达到0.9Gbps。

本次测试还从不同时间段角度分析系统性能,分别选用周六20:20、周一20:20、周二20:20、周三20:20通过外网对1MB大小待测试文件进行上传。外网主机正常传输速率为10MB/s,测试结果如图7所示。

图7

新窗口打开|下载原图ZIP|生成PPT
图7累计用时

Fig.7Cumulative time



通过对比用户在实际网络中的文件传输速率,我们发现在不同时间段内文件传输结果有所差异,其中周六网络高峰期传输速率明显比工作日缓慢,据此可以推断外部环境因素是影响用户体验的重要原因之一。

实验整体表明,本文所设计的大规模分布式测试框架可以高效地对不同大小、不同格式的文件进行同步上传测试,系统整体具有较高的灵活性;可以快速递归启动Task进行压力测试,节省大量时间;可以在不同时间段进行分布式测试,排查各种影响性能的因素。从而实现分布式测试框架便捷、快速、并发的目标。

5 结语

本文通过自行设计的分布式测试框架从多个角度对云存储系统进行测试,在实际应用中达到了一定的测试效果,对云存储平台的优化具有一定实践指导意义。虽然分布式测试框架前期的搭建需要投入一定的精力,但是这些投入可以得到长期回报,可以减少工作量,保证系统的稳定运行,提高准确性,最终节省成本和时间。

本分布式测试框架在硬件测试上也能发挥稳定的性能优势,如进行硬盘读写速率测试和网卡性能测试时,传统的单物理机测试可能无法达到高性能硬件的峰值,从而产生错误的数据,而分布式测试框架则可以通过多节点同时工作轻松达到硬件峰值,从而快速测出硬件性能。

虽然分布式测试框架在云存储系统和硬盘、网卡等性能测试上体现出较好的效果,但是在对mysql、redis等数据库进行性能测试时候效果不甚理想,原因在于通过外部环境对数据库注入数据本身有延迟,会干扰到数值的准确性。未来,将继续探索干扰数据传输的外部影响因素,依托机器学习相关算法进一步优化系统响应时间。

利益冲突声明

所有作者声明不存在利益冲突关系。

参考文献 原文顺序
文献年度倒序
文中引用次数倒序
被引期刊影响因子

阿里云对象云存储.[EB/OL].[2019-10-25].[2019-11-21].https://help.aliyun.com/document_detail/31817.html?spm=a2c4g.11186623.6.544.717e7eacrcFz5N.
URL [本文引用: 1]

Pezzè M, Young M . Software Testing and Analysis: Process,Principles and Techniques
[M]. Hoboken:John Wiley & Sons, Inc., 2005.

[本文引用: 1]

Ma Chun-Yan, Zhang Tao . Web Service Sequence Testing Based on Stream X-machine
[C].The 10th International Conference on Quality Software(QSIC 2010) , 2010,7:232-239.

[本文引用: 1]

Florentin Ipate, Marian Gheorghe . Testing(Stream)X-machines
[M]. Applicable Algebra in Engineering, Communication and Computing. 2003: 217-237.

[本文引用: 1]

鞠炜刚, 欧林宝 . 基于环境资源自动匹配的云测试框架研究与应用
[J]. 计算机应用与软件, 2018,35(1):32-37.

[本文引用: 1]

章晓芳, 冯洋 . 众包软件测试技术研究进展
[J]. 软件学报, 2018,29(1):69-88.

[本文引用: 1]

Apache Spark?-Unified Analytics Engine for Big Data
[EB/OL].[ 2019- 09- 01].[2019-11-21]. http://spark.apache.org/docs/latest/cluster-overview.html.

URL [本文引用: 1]

张红美 . 基于约束优化的实时软件压力测试用例生成方法研究
[D]. 苏州大学, 2016.

[本文引用: 1]

吕永智 . 软件压力测试技术概述
[J]. 信息与电脑(理论版), 2012(2): 51,53.

[本文引用: 1]

Lori M . Kaufman.Data Security in the world of cloud computing
[J]. IEEE Security &Privacy, 2009,7(4):61-64.

[本文引用: 1]

Feng Deng-Guo, Zhang Min . Study on cloud computing security
[J]. Journal of Software, 2011,22(1):71-83.

[本文引用: 1]

Weil S A, Brandt S A, Miller E L , et al. Ceph:A scalable,high-performance distributed file system
[C]//Proceedings of the Symposium on Operating Systems Design and Implementation.Seattle,USA, 2006: 307-320.

[本文引用: 1]

王勇, 叶苗, 何倩 , . 基于软件定义网络和多属性决策的Ceph存储系统节点选择方法
[J]. 计算机学报, 2019,42(2):93-108.

[本文引用: 1]

李云婷, 张海明, 黎建辉 . 一种大规模MongoDB集群的监控解决方案与实现
[J]. 科研信息化技术与应用, 2019(4):1674-9480.

[本文引用: 1]

相关话题/测试 系统 数据 工作 软件