《性能测试从零开始》第9章 学以致用
1.项目背景及结构设计介绍
系统:金融交易系统
注册会员----参加交易----委托交易员
交易中心----分中心----会员
结构设计:表示逻辑(客户界面)--业务逻辑(服务组件)--数据管理(数据库)
- 表示层提供协议控制和用户界面,与系统最终用户实现直接交互。负责接收用户的服务请求,通过Socket连接向交易前置服务发送。
- 商业逻辑层作为中间层实现核心业务逻辑服务,这些组件由中间件管理,接收客户的服务请求,向交易主机提交数据操作,并将交易主机的业务处理结果返回给请求者。
- 数据层负责整个系统中数据信息的存储、访问及其优化。
通过使用中间层,实现了业务逻辑与表示逻辑、业务逻辑与数据管理的分离,使得系统能够灵活地适应用户业务逻辑的变化
2.性能要求和性能指标分析(GOAL阶段)
2.1 性能指标
2.2 业务模型分析和需求细化
3.性能测试方案和用例设计(Analysis阶段)
第一条路线上主要运行的是交易指令,以及交易指令所产生的反馈信息。
第二条路线上主要运行的是查询指令。
两条流程线相对独立,但又是互相依赖的。由于是对同一个数据库系统进行读操作和写操作,查询流程的结果依赖于交易流程数据的产生,交易流程产生的数据又通过查询流程得到验证。在进行压力测试时,两者的协同会对数据库形成压力的冲击。
鉴于以上分析,针对各个流程可能出现的薄弱环节,我们决定把本次性能测试分为如下几个子测试来进行。
(1)并发测试
在业务终端模拟多个用户进行并发登录,通过服务器的返回信息、响应时间和服务器端的性能行为表现来考证系统的并发处理能力。
(2)负载测试
此下又有三个子测试。
● 交易流程测试:在交易终端上,通过模拟多个用户,产生大量请求业务交易报文,直接施压在前置机上。本流程测试主要考证交易流程上各个节点在并发和持续大批量业务请求情况下的处理能力。
● 查询流程测试:在查询终端上,通过模拟多个用户,产生大量请求查询的报文,直接施压在查询前置机上。查询成功与否以是否得到所请求的Web页面为标准。本流程测试主要考证查询流程上各个节点在持续大批量业务请求情况下的处理能力。
● 综合测试:在上面两种测试都通过的情况下,进行综合测试,即同时在交易终端和查询终端上发起大量请求,分别施压在交易前置机和查询前置机上。本流程测试主要考证数据库的并发处理读操作和写操作的能力。
4.性能测试各种度量的建立(Metrics阶段)
4.1 性能脚本的生成
确定脚本生成策略
完善脚本
4.2 定义用户行为
4.3 场景的设置和运行
并发登录测试场景----从第一秒钟开始,每秒钟登录13个用户,并保持Socket连接,直到1分钟结束,从终端向系统一共发送750个左右的用户登录请求,系统在一分钟内建立了750个连接。在终端观察并统计登录响应时间。如果系统不能响应持续增加的登录请求或平均登录响应时间大于30秒,并发登录测试场景都不能算通过。
交易流程测试和查询流程测试
综合测试
健壮性测试
4.4 性能数据收集
5.运行场景,得到测试结果和相关数据(Excution阶段)
5.1 脚本的开发
5.2 数据的生成
6.分析测试瓶颈(Adjust阶段)
6.1 并发测试结果分析
6.2 交易流程测试结果及性能评价
6.3 查询流程测试结果分析