1.应用服务器的类型和特征
1.1 应用服务器分类
- Web 服务器
- 数据库服务器
- 实时通讯服务器
- 邮件服务器
- 群件服务器
- 文件/打印服务器
C/S结构优点及缺陷
B/S结构有点及缺陷
三层结构及应用: 表示层,业务层,应用层各个层次的定义和分工
B/S结构有点及缺陷
三层结构及应用: 表示层,业务层,应用层各个层次的定义和分工
1.3 企业级的服务器
企业级的服务器的主要特点:
不同类型的应用服务器不同的测试重点和角度,如:
- 分布式的结构提供了高性能和高适应性
- 高可用性的服务器平台
- 可升级的体系结构
- 易整合,易管理和易用性的设计
不同类型的应用服务器不同的测试重点和角度,如:
- 在邮件服务器中,容量,吞吐能力, 防病毒攻击等是测试重点.
- 在实时通信系统中,测试需要考察服务器功能的实现, 数据的及时性,完整性, 系统稳定性, 系统数据备份的冗余设计, 防网络攻击及故障恢复处理系统的设计
2.基于Web服务器应用的测试范围
- 功能测试
- UI测试
- 负载/压力测试
- 安全性测试
- 兼容性测试
- 网络链接测试
- 其他测试如:分辨率,流量
2.1 常用的Web元素功能测试
页面链接
表单
- 页面是否存在
- 页面是否正确
- 不同的脚本语言
- 相同的脚本语言在不同浏览器中的表现
表单
2.2 Web服务器的安全测试
- 数据加密
- 登录
- 超时
- Cookie和Session
- SSL (安全套接字)
- 脚本语言 (vbscript, javascript)
- 日志文件
- 目录
2.3 Web服务器的负载测试
负载测试的目的
基准测试以及校验测试
使用测试工具模拟并发用户以及获取测试结果
2.4 Web站点经验点滴
基准测试以及校验测试
使用测试工具模拟并发用户以及获取测试结果
- Webload
- LoadRunner
- JMeter
- …
- 在执行客户端并发性能测试的过程中,需要同时监控数据库服务器、Web服务器以及网络资源等使用情况,以便对系统的性能做全面评估
- 录制脚本和手工编写脚本相结合
- 设置数据池,实现变量加载
- 业务批量执行
- 模拟用户数的递增
- 合理设置交易之间时间间隔
- 模拟IP地址变量的技术
- 超时(timeout)的设置
- 并发用户连续执行交易数的设置
- 错误处理
- 利用QALoad的ActiveData技术
- 采用复合交易测试方案
- 尽量将执行负载测试的机器合理分布
- 并发用户数量极限点
- 加压机器的CPU使用率也有必要监控
- 设置并发点
- HTML与URL录制方式
3.基于数据库服务器的测试
- 数据库服务器的组成
- DBMS
- 常用的数据库服务器平台
3.1 Oracle故障诊断
为了分析故障位置,将故障诊断数据(Oracle Diagnostics)与交易执行响应时间(Transaction Response Time)数据关联起来。
例如:某交易 “enter”的平均响应时间高,使用故障诊断(Oracle diagnostics),就可以查找到是什么原因导致了这个问题。
利用故障诊断的方法(Oracle DB Side Transactions by SQL Stage)可以将SQL语句执行过程中的时间划分为四部分:
3.2 数据库服务器典型性能问题
例如:某交易 “enter”的平均响应时间高,使用故障诊断(Oracle diagnostics),就可以查找到是什么原因导致了这个问题。
利用故障诊断的方法(Oracle DB Side Transactions by SQL Stage)可以将SQL语句执行过程中的时间划分为四部分:
- 解析时间(Parse Time)
- 执行时间(Execute Time)
- 读取时间(Fetch Time)
- 其他时间(Other Time),例如绑定时间(bind time)。
数据库服务器性能问题及原因分析 :
单一类型事务响应时间过长
锁冲突严重
数据库性能问题的一般解决办法 :
3.3 Oracle与提高性能有关的特性
单一类型事务响应时间过长
- 数据库服务器负载
- 糟糕的数据库设计
- 事务粒度过大
- 批任务对普通用户性能的影响
锁冲突严重
- 资源锁定造成的数据库事务超时
- 数据库死锁
- 监视性能相关数据;
- 定位资源占用较大的事务并做出必要的优化或调整;
- 定位锁冲突,修改锁冲突发生严重的应用逻辑;
- 对规模较大的数据或者无法通过一般优化解决的锁冲突进行分布。
- 索引
- 并行执行
- 簇与散列簇
- 分区
- 多线程服务器
- 同时读取多块数据
3.4 Oracle配置的关键参数
- MAX_DSPATCHERS:这个参数指定了系统允许同时进行的调度进程的最大数量。
- MAX_SHARED_SERVERS:这个参数指定了系统允许同时进行的共享服务器进程的最大数量。如果系统中出现的人为死锁过于频繁,那么管理员应该增大这个参数的值。
- PARALLEL_ADAPTIVE_MULTI_USER:当这个参数的值为TRUE时,系统将启动一个能提高使用并行执行的多用户系统性能的自适应算法。这个算法将根据查询开始时的系统负载自动降低查询请求的并行度。
- PARLLEL_MIN_SERVERS:这个参数指定了实例并行执行进程的最小数量。其值就是实例启动时Oracle创建的并行执行进程数。
- PARLLEL_THREADS_PER_CPU:这个参数指定了实例默认的并行度和并行自适应以及负载平衡算法。它指明了并行执行过程中一个CPU能处理的进程或线程数。
- PARTITION_VIEW_ENABLED:这个参数指定了优化器是否使用分区视图。Oracle推荐用户使用分区表(这是在Oracle8之后引入的)而不是分区视图。分区视图只是为了提供Oracle的后向兼容性。
- REVOVERY_PARALLELISM:这个参数指定了恢复数据库系统时使用的进程数。
Oracle系统性能测试的目标:
3.6 Oralce系统性能测试的范围
- 模拟数据库系统的数据负载,操作,侦测和获取性能测试数据, 帮助开发和DBA来优化和调整数据库或者应用程序.
- 最终的结果是获取更快的数据库响应速度或者更高吞度能力.
- 硬件 (CPU, Memory, I/O竞争等)
- 系统配置 (SGA/PGA)
- 应用程序(SQL, PL-SQL)
- 网络连接
3.6 Oralce系统性能测试的范围
应用程序调优-For Application developer
3.7 数据库性能测试
- SQL语句测试调优
- Thin, OCI测试
- Schema(表,索引,存储过程)设计
- PL-SQL语句和调用
- 数据复制
- 内存/CPU/I/O竞争/网络
- SGA配置
- 动态表空间估计
- 分区表,索引设计
大数据量测试
大容量测试
性能测试过程和策略
理解测试需求:
3.8 基于数据库服务器的测试
大容量测试
性能测试过程和策略
理解测试需求:
- 是校验测试还是基准测试?
- 是单个用户大数据量测试还是多个用户并发测试?
- 什么地方是可能的性能瓶颈?
- 可能是哪个方面的性能测试? (应用程序or系统参数or Schema对象)
- 页面级的辅助测试工具: JMeter, Webload etc
- 第三方监控程序: 如DB Flash, 或者有些通过log文件, 来监控动态的访问路径, 高占用的进程,会话和SQL语句
3.8 基于数据库服务器的测试
- 自定义或者常用的命令, 来动态监控和获取执行SQL, PL-SQL所需要的时间, 占用的CPU和内存资源.
- 数据库系统本身的性能工具包, 如在Oracle中使用的Explain Plan, AutoTrace, PKPROF以及Statspack.
- 数据量设计或加载.
- 测试环境建立和测试过程分析
- 测试脚本设计
- 性能瓶颈参数
- 优化和对比
3.9 数据库并发控制测试
数据库并发能力: 多个应用请求的并发处理过程.
并发主要考虑的几个方面:
并发主要考虑的几个方面:
- 数据丢失
- 不可重复数据
- 读脏数据
- 数据库的锁
- 并发流程分析
- 并发控制测试设计