阿里巴巴性能测试实践

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
制定测试方案
测试需求 测试方法与策略 测试环境 测试场景与用例 异常处理流程
9
第二章 开发调试脚本
选取协议 增强脚本 调试脚本 试运行脚本
10
选取协议
依赖Client/Server 消息通信机制 优先采用上层协议(如rmi > socket) 交互过程采用底层协议优先采用API 变长网络包,加密解密优先采用API 为了测试,变更程序适应测试回放 (如DOS攻击/随机验 证码/控件回送应答码,或者工作流去处人工参与环节) 为了测试,部分变更流程(增加/删除事务成对出现)
项目总结 (技术以及过程改进) 如何提高脚本重用率 调优与硬件扩容的平衡 实际运营与系统负载建模的差异度
20
第六章 最佳实践
测试方编制需求框架,需求方或运营方明 确需求细节 关键点结对审核 技术攻关先行 重视数据异常,数据分析结合SA/DBA专 家意见 结合知识栈,提取系统调优的合理建议
21
小结
11
增强脚本
参数化用户输入 关联数据 增加验证点 (如特征字) 增加函数提高可重用性 为提高性能封装函数成DLL
12
增强脚本-搭建LR编译环境
#include “LR_INSTALL_PATH\include\*.h” LIB: lrun50.lib DLL:lrun50.dll 工程options path:LR_INSTALL_PATH 工具: dependency walker 函数格式
业务层面
关键用例吞吐率以及行为习惯 用户体验
系统负载
高峰/平常场景吞吐率 CPU/IO/MEM/NETWORK,瓶颈资源?
建立容量模型 :TeamQuest(可选) 数据来源:服务器端监控/数据库日志/专家估算 自顶向下估算 7
制定项目计划
组织架构及各自职责 测试资源(人力/工具) 搭建测试环境(SCM或者开发组建,QA验 证) 进度计划 沟通管理(例会,工作规范) 风险规避(技术攻关先行)
#define LRDLLEXPORT _declspec(dllexport) __stdcall int LRDLLEXPORT foo(int count) { } Func.def文件: EXPORTS foo
13
调试脚本
VuGen 单次回放 VuGen 多次回放 Controller 单脚本多用户(并发性) Controller多脚本多用户(验证是否脚本依 赖) 打开extend log。关注http/1.1响应码,socket mismatch,oracle ora-*等关键字
监控操作系统/网络/数据库多个层面 监控应用运行状况/日志 确认施压机资源充分,确保尽力施压 抽查关键功能确认可用 建议运行12小时以上,确认无内存泄露/任 务累积
17
测试执行_监控工具
Loadrunner/Sitescope/TeamQuest UNIX: top,sar,vmstat,iostat,netstat,以及HP-UX glance ,AIX topas Oracle: OEM/statspack/ quest toad/ quest central for Oracle Mysql:mysql administrtor WebLogic: http://IP:7002/console/ JBoss:http://IP:8080/web-console/ JVM: JRockit Memory Leak Detector
4
了解应用软件
系统体系架构( b/s,c/s,三层)以及核心framework 系统的并发性/安全性 采用的开发语言 通信协议(rmi,web,socket,oracle…) 通信端口分工以及是否动态端口 加密/解密/签名算法 SOCKET协议消息数据结构 错误特征码 网络包的keepalive or http session timeout 当前所处的应用阶段(未测试/已功能测试…) 5
“最后一公里”系列培训 最后一公里” 之 性能测试实践
1
主题
测试准备 脚本开发与调试 测试执行 测试结果评估 测试后跟踪 最佳实践
2
第一章 测试准备
建立性能目标 了解应用软件状况 了解应用部署平台 建立系统负载模型 制定项目计划 制定测试方案
3
建立测试目标
选取关键用例(重要程度/频率) Mission-Critical Heavy throughput Dynamic content 并发用户数 (系统级/应用级/事务级) 事务吞吐率需求 响应时间需求 (从用户习惯推算或估算) 系统资源占用需求 高可用性需求(如故障转移/OS集群/数据库集群/中间件集群) 可扩展性需求(如能否支撑未来几年的吞吐) 任务性质(关键路径/历时)
18
第四章 测试结果评估
收集LR测试数据 收集应用日志 收集系统日志 (如/var/log/*,oracle: *.trc) 分析LR性能结果与OS/DB/中间件/APP参 数之间的匹配度(little定律) 评估测试用例覆盖度对测试结论的影响面 编写测试报告 (技术与格式审核)
19
第五章 测试后跟踪
14
调试脚本_验证工具
Winpcap/Ethereal Tcpdump/Windump 利用SQL查询插入/更新/修改效果 或者sql_trace,p6spy截获sql
15
试运行脚本
验证脚本无错 验证load generator分布合理 初步估算压力强度与结果合理性 删除无用的性能计数器
16
第三章 测试执行
了解软件部署平台
物理部署 (异地?数据中心?) 硬件架构(机型/CPU/MEM/IO/网络) 操作系统(版本/补丁/关键内核参数) / /
Sysctl /proc/*
数据库 (类型/版本/专用or 共享/启动参数/存储 布局) 中间件 (产品模式/线程数/内存参数) 软件部署模式
6
建立系统负载模型
23
Q & A?
24
谢谢大Βιβλιοθήκη Baidu!
主讲人: 梁剑钊
Email:jianzhao.liangjz@alibaba-inc.com Ext:3245 Msn:liangjianzhao@163.com
25
Loadrunner对高层协议支持良好,但对底 层协议与加密/随机算法/异步通信支持较 差 性能测试难点不在Loadrunner工具本身, 难在技术攻关以及对系统的全局把握 建立软件各个层面的知识库/工具箱
22
Loadrunner学习资源
MI KB: http://support.mercury.com/cgibin/portal/CSO/index.jsp Loadrunner.info: http://www.wilsonmar.com/1loadrun.htm 51testing:http://www.51testing.com/
相关文档
最新文档