欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    自主压力测试平台的设计与实现-403.docx

    • 资源ID:1927018       资源大小:3.45MB        全文页数:87页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    自主压力测试平台的设计与实现-403.docx

    密级: 保密期限: 硕士学位论文题目:自主压力测试平台的设计与实现学 号: 2012111472 姓 名: 郄 霖 专 业:计算机科学与技术导 师: 王红熳 学 院: 网络技术研究院 2015 年 1 月 21 日独创性(或创新性)声明本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。本人签名: 日期: 关于论文使用授权的说明学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。(保密的学位论文在解密后遵守此规定)保密论文注释:本学位论文属于保密在 年解密后适用本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。本人签名: 日期: 导师签名: 日期: 摘要自主压力测试平台的设计与实现摘 要近年来由于国家政策的支持,自主化软硬件产品发展迅速。针对自主化平台的测试的需求也逐渐显露出来,从生产厂家到用户都需要对产品进行测试以保证产品质量以及产品的运行效果。目前在国产软硬件的测试工作中,主要使用了网上的开源工具,这些工具模拟用户请求对应用系统进行测试,主要采取了同步请求的方式,模拟拟用户在发起请求后处于等待状态,直到收到上一请求的响应后才会发起新的请求,这样的方式并不能比较直观的反映被测系统的真实的性能负载。此外开源的测试工具也不能满足自主化平台测试工作的安全性需求。本文针对自主化产品测试工作中的问题,提出了采用异步压力机制对被测系统施压的方法,并结合测试工作的具体内容建立了针对自主平台测试的压力产生模型。通过对CIN-SCF中间件的改造,利用CIN-SCF平台的自动机管理与控制功能,实现了异步的压力产生机制,并通过自定义的业务触发方式实现了对压力产生模型以及秒级别压力产生模式的控制。利用针对数据库的测试作为切入点,检查包括自主数据库、自主操作系统、自主芯片服务器在内的全自主平台的事务处理能力。本文首先分析了压力测试需要关注的主要内容,并以此提出了自主压力测试平台的主要需求;之后重点研究解决了异步压力产生机制的实现方式以及压力控制模型及控制方式,并给出了自主压力测试平台的概要设计与详细设计,分析了模块间的处理流程,并介绍了模块的具体实现;本文设计与实现的自主压力测试平台,实现了异步消息的产生机制,支持多种协议并可编写灵活的测试脚本,同时整个自主压力测试系统具有完全自主的知识产权,可以运行于全国产平台之上,避免了安全隐患。本文的自主压力测试平台通过了单元测试、集成测试与系统测试,并投入到了某研究所自主平台服务器的测试工作当中,发现了大量的系统问题,取得了良好的测试效果。关键词:自主平台 压力测试 异步压力 数据库测试IABSTRACTTHE DESIGN AND IMPLEMENTATION OF STRESS TESTING TOOL ACCORDING TO THE DOMESTIC PLATFORMABSTRACTIn recent years, because of the support of national policy, domestic hardware and software products developed rapidly. The demand for testing of domestic plantform is gradually revealed. Domestic computer platforms need to be tested to ensure its quality. At present, domestic computer test mainly use open source tools. Tool simulates synchronous request, simulated users dont send new request until receive the response of last resquest. This method cannot reflect the load performance directly. Besides, open-source software cannot avoid security hazards.This paper presents pressure produced by the model, through the transformation of CIN-SCF middleware to realize the pressure test tool using asynchronous pressure request. Using the database as a starting point for testing, inspection including domestic database, domestic operating system, domestic chip server, transaction processing ability of domestic platform.This paper firstly analyzes the requirements of pressure test aimed at domestic platform. Focus on solving the realization way and the pressure control model and control method of asynchronous pressure generating mechanism. The design and implementation of stress testing tool has a completely independent intellectual property rights. The testing tool is applied to a research institute independent platform service test work of the system, found a large number of problems, and achieved good results.KEY WORDS: domestic platform pressure test synchronous pressure database test目录目录第一章前言11.1论文背景11.2论文内容2第二章背景知识介绍32.1压力测试32.1.1压力测试的概念32.1.2压力测试内容的确定32.1.3压力测试关键指标的设定42.2测试工具LoadRunner介绍42.2.1LoadRunner体系结构52.2.2LoadRunner工作原理62.2.3LoadRunner的不足之处62.3ODBC简介62.3.1ODBC总体结构62.3.2ODBC应用原理72.4CIN-SCF中间件介绍72.4.1CIN-SCF概述72.4.2业务逻辑程序开发92.4.3业务触发方式102.5本章小结10第三章自主压力测试平台的需求分析113.1自主压力测试平台总体概述113.1.1系统环境113.1.2功能概述123.1.3角色定义与用例分析123.2自主压力测试平台功能需求分析133.2.1测试任务制定功能133.2.2测试流程控制功能143.2.3测试实时监控功能183.2.4测试报告生成功能193.3自主压力测试平台非功能需求分析203.3.1并发压力需求分析203.3.2稳定性需求分析203.3.3跨平台能力需求分析213.4本章小结21第四章自主压力测试平台的概要设计224.1总体结构224.2压力测试平台静态结构224.3压力测试平台关键流程264.3.1测试任务制定流程264.3.2压力产生模式控制流程274.3.3测试前检查流程284.3.4测试执行流程294.3.5测试终止流程304.3.6测试实时监控流程314.3.7测试报告生成流程324.4压力测试平台数据结构设计324.4.1压力测试平台数据分析334.4.2共享内存结构设计344.4.3测试配置文件设计354.4.4测试结果文件设计364.5关键问题研究及解决方案374.5.1压力模型设计及控制机制374.5.2异步压力产生机制的实现404.6本章小结41第五章自主平台的压力测试平台的详细设计与实现425.1压力产生及控制子系统425.1.1任务调度模块445.1.2压力控制模块465.1.3并发控制模块485.1.4统计控制模块495.2测试管理子系统505.2.1配置管理模块515.2.2节点管理模块535.2.3任务管理模块545.2.4报告管理模块555.3测试脚本库子系统565.3.1测试脚本选取与执行流程565.3.2测试脚本执行基本流程575.4本章小结58第六章自主压力测试平台的测试与应用596.1测试环境596.2测试方法与测试结果606.2.1单元测试606.2.2集成测试636.2.3系统测试646.3自主压力测试平台的实际应用案例666.3.1系统部署说明666.3.2系统应用情况676.4本章小结67第七章结束语687.1工作总结687.2系统展望69参考文献71致 谢73作者攻读学位期间发表的学术论文目录74 71第一章 前言第一章 前言1.1 论文背景近几年来,由于国家在政策以及资金上大力支持,国产自主软硬件产品发展迅速,已经基本形成了从自主芯片、自主操作系统、自主数据库到前端应用的一体化的全国产平台的软硬件解决方案。此外,棱镜计划的曝光更是将信息安全的问题暴露在人们的视野里。从2009年开始,“棱镜”项目便将目标对准了中国内地和香港的电脑系统,项目主要通过潜入政府部门、教育部门的服务器以及电脑,监视日常活动,美国政府网络入侵中国网络成功率高达75%,国内的计算机系统无法实现完全自主可控是产生上述问题的重要原因。“棱镜”事件后许多国家政府宣布使用自主研发的系统,我过政府也将国产计算机、操作系统等大规模的纳入到政府采购中。这为国产自主软硬件产品带来了机遇的同时也面临这重大的挑战。自主化产品的性能测试对于生产厂家和用户来说都至关重要。对于各生产厂家来说,需要行之有效的工具对其产品的性能进行测试,以便找出产品缺陷、性能瓶颈,从而不断的对产品进行优化;对用户来说,需要对不同厂家的产品及组合进行测试,得到单项指标、综合指标,从而选择最优的产品及其组合,使系统在实施中达到良好的运行效果。目前市面上的测试工具难以满足自主平台的测试需求。常见的测试工具有LoadRunner、PerformanceRunner、JMeter等,这些测试工具均采用了同步请求的测试方式,即模拟多个用户不断地对系统发起请求,用户是在上一请求结束后才会发起新的请求,这种测试方式并不能提供较大的并发压力,因此也不能真实的反应被测系统的最大性能负载。此外,上述工具均为开源工具或国外企业开发的工具,在安全性方面也不能满足自主平台测试的需求。本文设计实现的自主压力测试平台正是为了解决上述问题。其中的“自主”有两层含义,一是本文所提及的压力测试平台的被测目标是包括了自主数据库、自主操作系统、自主芯片的整机在内的全自主平台;二是指本文所设计实现的压力测试平台不但具有完全的自主知识产权,同时也可以运行在全自主的平台之上。因此,本文实现的压力测试平台在满足了针对国产平台测试的同时,也满足了全自主平台的测试环境,满足了安全性方面的需求。本文作者在攻读硕士学位期间,从事了压力测试相关的研究和实践,有幸参与到了自主压力测试平台的设计、开发测试以及部署应用等工作,本论文根据作者在自主压力测试平台项目中的实践工作为基础写作而成。本文将给出自主压力测试平台的设计和实现方案。1.2 论文内容本论文在压力测试平台LoadTester项目的基础上详细描述了基于CIN-SCF中间件的自主压力测试平台的设计与实现。作者通过总结读研期间的理论研究和实践学习工作 ,通过对整个系统的把握,从自主压力测试平台的功能需求、概要设计、详细设计、测试工作以及应用部署这几个方面对自主压力测试平台做了详细介绍。论文共分为以下八个章节:第一章主要介绍了论文的背景和论文的主要内容,对论文的结构进行了划分。第二章主要介绍了本论文所描述的自主压力测试平台的背景知识,压力测试的介绍、LoadRunner测试工具的介绍、开放数据互联(ODBC, Open Database Connectivity)的介绍以及CIN-SCF中间件的介绍。第三章分析了压力测试平台的需求,本章首先对压力测试平台的总体需求进行了描述,包括功能概述、用户角色分析、总体用例、功能需求分析和非功能需求分析等内容。第四章介绍了压力测试平台的概要设计,分别从平台外部架构、静态结构以及动态结构、数据结构以及关键问题几方面讨论了压力测试平台的总体设计方案。第五章重点描述了压力测试平台的子系统的设计以及重要模块的详细设计与实现,给出了模块工作的具体流程。第六章介绍了自主压力测试平台的测试,本章介绍了自主压力测试平台的测试环境和测试方法并给出系统的测试结果,包括单元测试、集成测试和系统测试。第七章对压力测试平台的应用和部署进行了介绍,并讨论了系统在应用部署过程中发现的问题。第八章结束语,本章首先对论文以及作者研究生期间的学习和工作经历进行了总结,最后对压力测试平台及相关领域的未来发展进行了展望。第二章 背景知识介绍第二章 背景知识介绍本章主要介绍了基于CIN-SCF中间件的自主压力测试平台在设计与实现时所涉及的背景知识和相关技术,主要包括四个部分:压力测试介绍、测试工具LoadRunner介绍、ODBC介绍和CIN-SCF中间件介绍。2.1 压力测试自主压力测试平台主要对被测系统进行压力测试,做好压力测试平台的设计,首先需要了解压力测试的概念与内容,从而可以明确测试平台的功能,设计时候需要关注的重点。122.12.1.1 压力测试的概念在软件的测试工作中,压力测试是非常重要的一项测试,压力测试是对软件基本质量的保证1。一般来说,压力测试采用的手段是,通过向被测系统发送逐渐增加的模拟请求,观察被测系统资源(CPU使用率、内存使用率)的变化情况以及请求处理的时延等情况,来衡量被测系统所能提供的最大服务级别。换言之,压力测试是采用并发的手段,增加系统负载直至其失效,得到被测系统的一系列指标,从而得到系统的最大处理能力。压力测试的意义在于,通过模模拟真实的使用环境,并通过逐渐增加的请求,得到系统在不同压力情况下的效率状况,然后进行针对行的测试分析,从而找到影响系统性能的关键因素,并对系统进行优化处理,以达到提高系统的处理能力的目的。2.1.2 压力测试内容的确定根据压力测试的概念的介绍,我们可以得出压力测试要求测试工具可以通过产生一定量请求或请求的组合,并发的向被测系统发起请求,并能够实时地接收并记录被测系统的运行状态以及请求的结果,在测试结束后提供测试报告,以判断被测系统的性能指标是否符合预期要求2。通常来说,压力测试需要包含:容量测试、强度测试、稳定性测试和可扩展性测试这四个主要部分。1) 容量测试。检查被测系统能在指定并发请求下正常工作。要求压力测试通过模拟用户指定容量下的请求,对被测系统施加压力,并对被测系统的各项性能指标进行监测,当压力负载逐渐增加至指定最高负载时,记录被测系统各项性能指标和系统资源占用的变化情况查看是否符合预期要求3。2) 强度测试。即测试系统的最大负荷能力4。要求测试工具能够模拟一定强度下的请求,并逐渐增大模拟请求的强度,直至出现处理速度过慢或被测系统不能正常工作的情况,以得到使得被测系统出现问题达到压力负载。3) 稳定性测试。检查被测试系统能否长时间地可靠运行5。要求测试可以以动态变化的压力值向被测系统发送一定请求或请求的组合,并持续一个较长的时间,以检查被测系统在一定强度下是否能够连续工作至少24 小时以上,记录测试中被测系统的各项数据 ,查看被测系统是否可以保持稳定运行,是否存在资源消耗累积等问题。稳定性测试一般持续2472小时。4) 可扩展性测试。测试被测系统能否通过扩展连接数来承受更大负荷,以及被测系统在扩容过程中的处理能力和是否存在的服务停顿、性能下降等问题。测试系统所能支持的连接数量3。2.1.3 压力测试关键指标的设定自主平台的性能测试的指标主要从系统容量、事务处理时延、资源利用率、成功率等方面进行设定。1) 系统的容量。主要指系统在能够支持的最大的每秒事务量 (TPS, Transactions Per Second)。要求系统能保持固定TPS稳定运行一段时间(大于1小时)6,强度测试可在容量值的基础上取2-3倍。2) 事务处理时延。指的是从事务请求开始到事务处理结束收到响应为之的时间8.针对不同的事务会有不同的合理时延,一般针对于数据库的单项操作,时延在200ms以内是可以接受的. 不同被测系统的测试都是相同前置条件的基础之上进行的,可作为横向对比参数。3) 资源利用率。是指在一定压力条件下,系统资源的占用情况.此指标有助于确认被测数据库管理系统是否能够满足数据连接负载要求以及对应的压力负载性能要求。4) 成功率。对于一些交易类系统来说,核心交易要求成功率不能低于99.999%7,据此容量测试及稳定性测试要求系统成功率不低于99.999%,强度测试要求系统处理成功率不低于99%。2.2 测试工具LoadRunner介绍LoadRunner是一种在性能测试中经常使用的测试工具。它通过模拟产生成千上万的用户请求来对整个系统的处理能力进行测试,从而发现系统的瓶颈。使用LoadRunner测试工具可以有效的节约人力资源和时间,加快系统的发布周期。目前来说,网络的应用系统均需要支持大量甚至是海量的用户,而随着技术的发展,网络架构中各种软硬件产品也越来越复杂。面对大量用户的并发访问,公司在系统运行中需要发现并解决可能会出现的用户请求响应过慢,服务器系统的崩溃等一系列问题。惠普的LoadRunner工具,能最大程度的让用户在缩减提供额外服务器等成本的基础上,最大限度的保证系统的质量,保证服务的可靠性和可扩展性。了解LoadRunner测试工具,可以借鉴其优点,找出其不足之处加以改进,有助于我们进一步确定测试平台的设计内容,以及关注的关键问题。122.12.22.2.1 LoadRunner体系结构LoadRunner的体系结构如图2-1所示:图2-1 LoadRunner体系结构图LoadRunner测试工具是一套软件系统,主要包括了以下三个部分:Ø 虚拟用户脚本生成器(VuGen, Virtual User Generator)。VuGen是LoadRunner用于开发虚拟用户(Vuser, Virtual User)脚本的主要工具,VuGen的主要功能包括录制、运行Vuser脚本。VuGen会以各种函数的方式生成Vuser脚本。Ø 压力调度和监控器(Controller)。Controller程序的主题框架,其主要功能是对测试过程进行控制并监控测试过程,Controller可以控制Vuser脚本通过多线程的方式在图2-1所示的Player机器上运行。Controller同时支持将多个Player组成集群发起请求,以提供更大的压力。Ø 结果分析器(Analysis)。Analysis主要用于对测试后结果进行不同角度的分析。它可以以图表的形式对测试数据进行展示,用户可以自定义需要展示的内容。同时Analysis也可以比较两次运行之间的结果差异,从而帮助用户进行性能调优2.2.2 LoadRunner工作原理VuGen根据用户定义的协议,抓取用户在录制用例的操作时产生的协议消息的包,生成各种函数来实现对操作的复制,并根据通信过程,生成各种协议,实现对操作的复制,生成脚本。用户在自动生成的脚本上,进行简单修改,从而实现可以完全模拟用户行为的脚本文件,之后LoadRunner通过多进程/多线程的方式回放录制的脚本,从而实现模拟了大量虚拟用户对被测系统进行访问的操作。脚本的产生以及回放过程中,可能会出现一些问题,例如session的过期、相同IP地址的限制等9,LoadRunner通过了参数关联、数据参数化等方式解决了这些问题,在此不做详细介绍。2.2.3 LoadRunner的不足之处LoadRunner测试时预先设定虚拟用户数。这些虚拟用户数是固定的,在测试中不能进行调整;LoadRunner发送请求时采用超时机制,即请求时间超出预先设定时间时,则该虚拟用户以后停止向被测系统发送请求,使得被测系统的压力越来越小;LoadRunner采用同步请求方式,没有得到响应的虚拟用户会一直等待,不会发送新的请求,使得真正测试时系统的并发数小于预先设定的并发值。2.3 ODBC简介ODBC是有关数据库的一组规范。ODBC对用户提供了一种标准的数据库的访问接口(API, Application Programming Interface),用户可以通过ODBC提供的接口执行结构化查询语言(SQL, Structured Query Language)。自主压力测试平台可以通过使用ODBC来接入数据库系统,对其进行响应的管理与操作。2.32.3.1 ODBC总体结构ODBC由应用程序、驱动程序管理器、数据库驱动程序和数据源等部件组成10。如图2-2所示。图2-2 ODBC的组成1) 应用程序通过ODBC给出的API,调用并执行ODBC中的函数,将SQL语句提交,并通过ODBC的API方位不同数据源中的数据。2) ODBC驱动管理器,是一个动态链接库,管理器可以根据不同的数据类型调用不同的驱动器从而管理不同的数据源之间的连接。3) 驱动器可以处理ODBC的函数调用,根据SQL请求,建立与数据源之间的连接,翻译数据格式并返回请求结果。4) 数据源主要包括了用户要方位的数据,以及数据不同来源的平台:操作系统、数据库管理系统(DBMS, Database Management System)等。2.3.2 ODBC应用原理ODBC的使用是基于动态链接库的方式。任何数据库,只要是符合ODBC给出的接口规范,并且听过了范围DB的驱动程序,使用ODBC进行相关操作。ODBC通过其配置文件来确定数据源采用的驱动程序。配置文件中对驱动程序的名称、位置等内容进行了描述。ODBC首先会简历与应用程序之间的连接,然后建立与数据源之间的连接,最后与操作进行连接以处理SQL语句。2.4 CIN-SCF中间件介绍2.42.4.1 CIN-SCF概述CIN-SCF中间件是一个服务端软件控制框架,基于此框架能够快速开发和部署通信领域软件11。作为一个通信软件中间件,它的首要特点就是其高可用性和稳定性,在此基础上,它还可以很好的支持主流的通信协议,满足高并发量、高实时性的要求,并支持分布式部署,可以向用户提供不间断的服务。CIN-SCF逻辑结构如图2-3所示。1) 业务脚本业务逻辑源文件使用SCF平台提供的库进行开发,开发结束后在SCF平台上进行编译得出的文件即是业务逻辑脚本。2) 业务执行环境业务执行环境(SLEE, Service Logic Execution Environment)负责对业务逻辑的整个生命周期进行管理,可以对业务脚本的自动机实例进行调度。同时SLEE提供了可供编程的业务逻辑程序编程语言(SLPL, Service Logic Programing Language)业务接口,用以扩展SCF平台本身的功能,对业务提供自定义的控制管理。3) 协议能力SCF支持多种协议,除七号信令系统(SS7, Signaling System 7)、IP多媒体子系统(IMS, IP Multimedia Subsystem)等相关的通信协议外,本文主要使用了对TCP/IP以及HTTP协议的相关支持。图2-3 CIN-SCF逻辑结构业务脚本通过SLPL的业务接口运行与SLEE之上,SLEE根据配置文件,在业务被触发时由任务调度模块选取业务脚本,产生自动机实例,执行业务脚本。一个SLEE中最多支持8192个自动机实例,由任务调度模块轮询执行。协议处理模块提供了不同的协议栈的封装,业务脚本可方便的进行各种通信。CIN-SCF中间件具有以下优点:Ø 支持中间件的二次开发CIN-SCF中间件提供了一组API。利用这些API,用户可以在SCF原有功能上进行扩展,增加各种处理功能,并可以向业务脚本提供自定义的函数,配合业务脚本完成制定化的功能。Ø 支持高并发处理针对电信领域用户量大、并发量大的特点,CIN-SCF内置实现了高效的并发处理机制12,使开发者无需再单独考虑这一问题,保证了系统及时响应,同时开发者可以利用平台支持高并发处理的能力,改造平台使其完成其他高并发处理的功能。Ø 方便的进程间通信作为一个通信软件的框架 ,CIN-SCF封装了各种通信协议栈,同时SCF多个进程间也实现了高效的通信方式。主要的通信方式有如下几种:Socket通信是CIN-SCF中最重要的一种通信方式。CIN-SCF封装了socket通信的细节,在部署时只要配置相应的配置文件即可实现socket通信。SCF在启动时根据配置自动初始化socket连接(或者不初始化),如果连接建立成功,根据配置进行例检(或者不例检),若连接建立失败或者在运行过程中例检超时,则重新建立连接。为提高吞吐率,CIN-SCF采用异步socket读写模式,每个连接维护独立的消息收发缓冲区,定时监控socket是否有消息,当有消息需要读写时则进行读写操作。Ø 多协议支持CIN-SCF中间件支持多种国际标准化协议,例如智能网应用协议(INAP, Intelligent Network Application Protocol)、移动应用部分(MAP, Mobile Application Part)、会话发起协议(SIP, Session Initiation Protocol)等等,能够提供丰富多彩的业务开发支持并具备强大的扩展能力。除此之外,CIN-SCF还提供了消息模板,开发人员可以通过编写可扩展标记语言(XML, Extensible Markup Language,)文本定义消息格式,实现对非标准协议的支持。CIN-SCF在支持HTTP的同时,也可以作为web服务器,其语法类似与jsp,只需在html代码中内嵌<shp><?shp>即可。Ø 自动机机制业务逻辑程序加载到SCF进程上就可以运行了,业务的执行是以自动机的方式实现的,自动机是在业务调用过程中所需处理的数据以及消息的一个实例,自动机在业务逻辑程序被调用时创建,在执行结束后被删除。系统运行过程中可以通过查看自动机数获取当前正在处理的呼叫(或事务)数。2.4.2 业务逻辑程序开发SLPL是CIN-SCF中间件支持的一种类C/C+的脚本语言,使用这个语言,可以设计简单的业务逻辑程序以及复杂应用运行于CIN-SCF的业务执行环境SLEE之上。SLPL语言支持通用的过程式或者面向对象编程,并支持数据结构的定义。语法非常类似与C+/Java语言的一般特性。下面是一个简单的业务逻辑:#progma cvoid main()var TString s=My first service!;print(s);这个业务逻辑将会在终端上打印“My first service!”。SLPL的语法与C/C+基本相同,熟练掌握C/C+语言的开发者使用SLPL几乎不存在任何障碍。2.4.3 业务触发方式CIN-SCF业务脚本支持多种触发方式,下面重点介绍几种主要的触发方式:Ø 命令触发方式CIN-SCF提供了管理工具inaccess,可以接入SCF进程,在管理界面中使用“invokeserivce+业务键+业务参数”的方式触发对应的业务逻辑。Ø 协议消息触发方式协议消息触发方式是CIN-SCF最主要的触发方式,是指CIN-SCF平台根据收到的不同的协议格式消息,在各协议的配置文件中找到对应的协议关键字段数据和要触发的业务逻辑编号,按照配置文件中的配置触发对应的业务逻辑。其中本文设计的自主压力平台的WEB使用了根据HTTP消息触发业务的方式,SCF根据HTTP消息中的统一资源定位器(URL, Uniform Resource Locator)字段,找到对应的业务并触发业务执行。Ø 程序调用触发方式CIN-SCF中间件提供了业务触发的API,可供开发人员在二次开发时可以方便的进行业务的调度,在SCF原有的业务脚本触发方式上进行扩展,根据用户需求自定义脚本的触发方式。2.5 本章小结在本章中,主要介绍了压力测试平台设计与实现过程中需要了解的背景知识。首先介绍了压力测试的概念,并确定了压力测试的内容以及相应指标;之后对目前常用的测试工具LoadRunner进行了相关介绍,并之处了其测试方式的不足之处;之后简单介绍了访问数据库时需要使用的ODBC的相关概念;最后介绍了本文设计实现的自主压力测试平台所基于的CIN-SCF中间件。第三章 压力测试平台的需求分析第三章 自主压力测试平台的需求分析上一章介绍了压力测试的相关概念以及一些背景知识,本章将对自主压力测试平台的需求进行分析,首先将总体介绍自主压力平台的需求,然后重点介绍压力测试平台的功能性需求,最后介绍压力测试平台的非功能性需求。3.1 自主压力测试平台总体概述33.13.1.1 系统环境自主压力测试平台作为一个测试平台向用户提供操作界面并对被测系统发起压力请求,其外围环境可以分为浏览器和被测系统两大部分,系统环境如图3-1所示。图3-1 自主压力测试平台环境示意图1) 浏览器测试人员通过浏览器访问自主压力测试平台,进行测试的相关配置、控制、监控以及测试报告的查看等工作。自主压力测试平台向浏览器提供基本的Web服务,通过HTTP协议与浏览器进行交互。2) 被测系统测试平台可通过ODBC直接连接数据库系统,以进行数据库相关的压力测试,也可通过数据库的访问来验证操作系统的读写等基本能力的测试。压力测试平台可直接访问操作系统,完成对操作系统处理能力方面的压力测试,同时国产数据系统运行于国产操作系统之上,通过数据库的连接,也可对操作系统施加压力,进行相关测试。3.1.2 功能概述计算机系统平台的自主化产品种类繁多,如果单独对各项能力进行测试,不仅实施难度大,测试粒度过小,而且不容易发现平台整体协作上的各种问题;此外,针对自主平台测试时,用户大多只能选择类似LoadRunner等国外的开源工具进行测试。对于国产化产品的测试,缺少高效的可运行于国产平台的测试工具。自主压力测试平台针对于以上问题,设计并实现了针对全国产平台,并且可运行与自主产平台之上的测试工具。数据库系统位于操作系统之上,数据库的不同操作综合利用了操作系统对资源的管理、网络管理能力,同时又使用了CPU的处理能力。因此本文所实现的压力测试平台选取了对自主数据库系统的测试来考察整个自主平台的能力,并设计了合理的压力产生模型,通过模拟产生一定量请求或请求的组合,发送给被测系统,实时地接收和记录被测系统的处理结果,以及被测系统的资源占用情况.测试结束后提供测试报告,以判断被测系统的性能指标是否符合预期要求。自主压力测试平台主要实现了以下功能:1) 测试任务制定功能。用户可根据测试需要,自定义测试所需的用例及组合、测试的时长、压力的变化模式等;同时用户也可以根据测试需要,设置测试所需要的主机、测试的环境等基本信息。2) 测试流程控制功能。用户可通过浏览器访问web页面的方式检查测试状态、控制测试流程。同时平台支持通过各种压力产生模型,从整体与秒级别产生测试所需的模拟压力请求。3) 测试实时监控功能。用户可在浏览器上实时监控测试过程中的包括压力值、处理时延、成功率、CPU占用、内存占用等信息在内的各种测试中信息。4) 测试报告生成功能。压力测试平台可以在测试结束后提供可在线以及离线查看的测试报告,详细记录测试过程中的各种信息。3.1.3 角色定义与用例分析自主压力测试平台的主要用例参与者主要有:测试者和测试平台管理员。总体用例图如图3-2所示。Ø 测试人员主要负责根据测试平台已有能力,设置测试内容;控制测试的流程;以及测试报告的查看与导出等功能。Ø 测试平台管理员,主要负责对平台进行维护,包括测试用机的管理(增加、删除),测试功能的添加。 图3-2 压力测试平台总体用例图3.2 自主压力测试平台功能需求分析通过对压力测试平台的总体功能和系统角色进行分析之后,本节将对关键功能进行描述,对压力测试平台的功能作进一步的细化,详细介绍压力测试平台需要实现的功能。1233.13.23.2.1 测试任务制定功能一个测试任务制定包括测试基本信息配置、测试控制信息配置、节点配置三大部分。测试基本信息主要包括测试名称、被测对象地址端口、被测系统基本信息(CPU、内存、操作系统、数据库等)用于记录测试的环境;测试控制信息主要包括压力并发模式、测试时长、初始压力、压力变化方式、时延阈

    注意事项

    本文(自主压力测试平台的设计与实现-403.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开