微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于国产基础软件应用系统的性能测试与优化

基于国产基础软件应用系统的性能测试与优化

时间:07-21 来源:互联网 点击:

  国产基础软件的性能是影响软件应用的关键因素,只有国产基础软件的应用系统在性能方面满足了用户的需求才能被用户接受。应用系统与国产基础软件的集成理论上是可行的,但是,在高并发量、高访问数据量情况下,基于国产基础软件应用系统的性能能否满足需求尚未得到验证。因此,需要对国产基础软件组合以及包含实际应用的完整系统进行性能测试。

  本文以基于国产基础软件的医疗信息系统为例,介绍如何测试系统在承受高并发量、高访问数据量情况下的性能,并对影响系统性能的主要因素进行分析,提出了系统的性能优化方案。实验结果表明,该方案大幅提高了系统性能,为基于国产基础软件的应用系统性能优化提供了一个可借鉴的方法。

  1 性能测试

  1.1 性能测试方法

  性能测试是通过模拟大量用户与系统进行交互的行为,对被测系统进行加压,获取系统负载增加或在特定负载时,用户的真实体验,从而确定系统所能承受的最大负载与特定负载下的性能表现。

  系统的性能测试方法较多,按照测试目的分类,可以分为负载测试、压力测试、配置测试、并发测试、可靠性测试等[1]。其中,负载测试是通过在被测系统上不断增加负载压力,获得系统在不同负载下的性能表现。压力测试主要测试系统资源在饱和状态时,应用系统能够提供的最大服务级别。本文选择负载测试和压力测试对系统进行了多轮的测试。

  1.2 性能指标

  性能指标是描述系统性能最直接的数据,提供了性能度量的标准。本文在测试中对并发用户数、响应时间、吞吐量、资源利用率等性能指标进行监控。性能指标描述如下:

  (1)并发用户数,在特定时间内,同时进行会话的用户数。

  (2)响应时间,从请求的发出到客户端收到服务器响应所经历的时间延迟。

  (3)吞吐量,在单位时间内系统处理客户请求的数量。

  (4)资源利用率,系统各种资源的使用状况,比如服务器的CPU、内存和网络带宽等。

  2 性能测试实施

  2.1 系统分析

  医疗信息系统构建于国产基础软件的政务信息化领域平台体系,采用J2EE架构,使用JSP、Strut、Hibernate等技术开发,是以国产基础软件为核心、低成本的公共服务系统原型和解决方案。医疗信息系统体系结构如图1所示。

  医疗信息系统主要面向各大医院,对医院的需求调研与系统分析如表1所示[2]。

  性能测试需要模拟大量用户的操作行为,需要测试工具的支持来实现用户的行为模拟、负载的生成、数据采集与分析等。本文引入测试工具LoadRunner对系统进行性能测试,测试基于国产基础软件的医疗信息系统的性能能否满足表1所示的需求。

  2.2 测试环境

  测试时,使用1台PC机作为负载测试机,1台服务器作为应用服务器和数据库服务器。PC机采用100 Mb/s局域网连接服务器。服务器软件组成方案如表2所示[3]。

  2.3 录制测试脚本

  测试脚本是一组代码,执行时,可以模拟用户操作对服务器产生的请求数据,或是模拟用户执行操作的过程、用户等待行为等。脚本的录制按照以下步骤执行:

  (1)使用LoadRunner录制测试从业务使用频繁程度以及负载量的大小选择新建患者资料、患者资料查询、新增日程功能作为三组测试[4]。这三组测试脚本模拟的执行过程为系统登录、业务操作和退出系统。

  (2)每个操作定义为一个事务,在事务前后加入随机的思考时间。

  (3)在事务前设置集合点,保证用户执行操作的并发。

  (4)在用户实际操作的过程中,不同用户提交的数据、系统动态生成的会话标志是不一致的。通过参数化来设定差异值的取值范围、迭代方式,实现数据的变量化,而系统的会话标志如session,则需要设置关联来保存。

  2.4 设计测试场景

  在性能测试中,常见的错误观点是只设置单一的场景。场景的设计是至关重要的,只有设计的测试场景真实地反映用户的实际场景,性能测试的结果才可靠。

  场景的设计需要考虑到系统运行时,不同操作对系统形成的负载差异,需要确定典型的应用场景下不同操作用户的比例[5]。医疗信息系统日常执行新建患者资料、查询患者资料、新建日程的比例分别为25%、60%、15%。

  在创建的场景中载入已录制的三组测试脚本,并设置执行比例。编辑场景中的计划生产器,设置虚拟用户以一定的间隔时间按比例递增,逐步启动与服务器建立连接。

  2.5 分析测试结果

  在性能测试的过程中,LoadRunner会收集到大量的测试数据,包括每个性能指标,如事务的错误、警告和通知信息等。并发用户数为200的事务响应时间如表3所示。

在测试过程中出现的问题:(1)大量用户并发时,服务器CPU、内存的资源利用率却很低;(2)事务执行成功率低、成功事务的平均响应时间长,很多事务因为连接超时而失败;(3)出现内

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top