310 likes | 458 Views
性能测试基本概念和流程. 泠向 @ 平台架构部 . 测试架构组 . 系统测试 EXT : 37541. 题 纲. 互动游戏 性能测试基础概念 性能测试采用的基本原理 性能主要指标 性能报告 测试过程演示. 1. 互动游戏. 游戏目的:看看谁运的青草又快又多; 游戏角色:运青草的小羊(若干)、仓库管理员( 1 位)、仓库保管员( 1 位)、灰太狼( 1 位)、村长( 1 位)、记时员( 2 位)、包包大人( 1 位)
E N D
性能测试基本概念和流程 泠向@平台架构部.测试架构组.系统测试 EXT:37541
题纲 • 互动游戏 • 性能测试基础概念 • 性能测试采用的基本原理 • 性能主要指标 • 性能报告 • 测试过程演示
1.互动游戏 • 游戏目的:看看谁运的青草又快又多; • 游戏角色:运青草的小羊(若干)、仓库管理员(1位)、仓库保管员(1位)、灰太狼(1位)、村长(1位)、记时员(2位)、包包大人(1位) • 游戏说明:参加人员分别从自选路径过河,将手中的取草单交给仓库管理员签名后,到仓库保管员那里取“青草”(小纸条),将青草安全、快速的运回到羊村位置为完成一次运草过程。小羊们可以多次往复运草,运输路径自选、没有硬性规定。但每运输只能运回一个位单位的青草(一张小纸条)。 • 分工: • 小羊们:运送青草 • 仓管:将小羊手中的纸单写上来取草的小羊的名字 • 仓保:将小羊手中的纸单写上序号(序号为正整数,最后将统计一共发放了多少青草) • 灰太郎:在取草的路径上“伏击”小羊,干扰小羊运青草 • 村长:在羊村出口控制出发小羊的间隔时间(防止一起出发造成拥堵) • 包大人:评判运送过程中各方是否的违规行为,并最后统计各组青草的数量 • 记时员:发布游戏开始/结束,并记时、记录
规则: • 小羊在有障碍物的路径上运送时,不得避开过障碍物,要保证每只小羊都要走过每个障碍物; • 灰太郎拦截小羊,可以抓住不放,但每次只能抓一只。被抓小羊可以将手中的青草留给灰太郎来换取自己的自由,并可到羊村重新开始;’ • 村长必须保证每条路径上都有小羊在运送,不能让取草路径空闲;
2.1 什么是性能测试 • 什么是性能 性能是用来描术机械、器材、物品等所具有的速度、效率和能力的综合评价。(辞海) • 什么是性能测试 对机械、器材、物品的性能定性或定量的量测过程。
2.2 性能测试主要包括的测试内容 • 性能测试 (Performance Test) • 负载测试 (Loading Test) • 压力测试 (Stress Test) • 稳定性测试(Stability testing)
2.2.1 性能测试 (Performance Test) • 表示在给定的基准环境下,目标系统执行服务的最快速度或最好表现。 • 例如:在没有负重的情况下,你跑100米需要花多少时间?
2.2.2 负载测试 (Loading Test) • 表示目标系统正常服务的前提下,目标系统所能承担的最大服务负何数量。 • 例如:在负重50公斤、100公斤……等情况下,你跑100米需要花多少时间?
2.2.3 压力测试 (Stress Test) • 表示在给定的负载(或负何)的情况下,目标系统长时间提供正确的服务系统能力。 • 例如:你在没有负重或负重50公斤、100公斤……等的情况下,能跑多长距离?
2.2.4 稳定性测试(Stability testing) • 表示在在给定的负载(或负何)的情况下,有外界或内部非正常的干扰的,系统能提供稳定服务的能力。 • 如:在你负重50公斤的长跑时,不时的会风、雨、坡、砍等的出现,此种情况下你还能跑多长时间。
2.3 性能测试中的名词 • 请求访问数量(VU 或Request Thread):即发送请求压力的数量 • 事务(Transactions):事务用来衡量脚本中一行代码或多行代码的执行所耗费的时间。 • 场景(Scenario):性能测试过程中为了模拟真实用户的业务处理过程的一系列动作的集合。 • 加载时间(Ramp-Up period):请求端发送预设的请求量所用时间长度。 • 标准偏差(Std. Deviation):该标准差根据数理统计的概念得来,标准差越小,说明波动越小,系统越稳定,反之,标准差越大,说明波动越大,系统越不稳定。 • 事务平均响应时间(Average Transaciton Response Time):每一事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向 • 每秒处理事务 (Transaction per Second):每秒系统处理事务(通过、失败以及停止)的数量。通过它可以确定系统在任何给定时刻的时间事务负载。 • 吞吐率(Throughput):是场景运行过程中服务器每秒的吞吐量。其度量单位是字节,表示每个请求连接在任何给定的每一秒从服务器获得的数据量。 • 系统负载( Load):计算机系统中进程队列的大少,即计算机系统在一段时间内可以处理的工作任务的多少。 • CPU利用率(CPU usage):CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间。平时所说的CPU利用率是指:CPU执行非系统空闲进程的时间 / CPU总的执行时间。
3 性能测试采用的基本原理 • 客户/服务型系统性能测试的模式 • 性能测试的基本原理
3.4 性能主要指标 • 性能指标: • 每秒处理事务 (Transaction per Second) • 事务平均响应时间(Average Transaciton Response Time) • 最大响应时间 (Maximum Response Time) • 最少响应时间 (Minimum Response Time) • 最大并发数 (Maximum Concurrent Number) • 负载测试 • 最大负载 (Maximum Loading Number) • 压力测试 • 压力强度(Stress Intensity Unit Time) • 长时间正常运行的最大负载 (Maximum Load Number for a long time running) • 压力持续时间 (Pressure Duration) • 系统性能监控 • CPU负载 • 内存使用率 • 网络I/O
5. 主要工具 • JMeter(推荐) • Loadrunner(不推荐) • nmon • Spotlight
6. 性能测试方法 • 测试环境设置 • 测试数据准备 • 测试脚本准备 • 测试场景设置 • 测试执行步骤 • 测试数据分析
6.1 测试环境设置 • 确认应用服务已正确部署到实验系统中并工作正常 • 确认应用服务各项设置正确(如日志开闭、端口、权限等) • 数据库连接成功确认。通过数据库客户端进行查、改、增、删基本操作,确定数据库工作正常;通过应用操作确认以部署服务与数据库连接正常。 • 确认nmon服务进程开启并工作正常
6.2 测试数据准备 • 构造后台服务应用所需的测试数据。创建方法依不同服务来确定 • 构造测试脚本所需测试参数化数据
6.3 测试脚本准备 • 确定服务需要采用何种通信协议类型 • 编写测试脚本。(根据采用测试工具的不同,测试脚本录制、编辑、编译需要单机通过并注意脚本执行事务不宜过多) • 脚本与参数化数据文件必需存放在同级目录(Jmeter)
6.4 测试场景设置 • 线程数(或虚拟用户数) • 线程(或虚拟用户数)加载时间 • 单线程执行循环次数 • 根据不同服务设置请求延时计时器 • 测试数据结果记录文件路径和文件名设置 • 脚本执行启/止时间 • 脚本执行时长
6.5 测试执行步骤 • 登录数据库清理应用服务涉及的表记录; • 设置测试结果记录文件; • 检查应用服务的日志文件内容,确定日志工作正常; • 启动系统监控日志(nmon监控日志格式:nmon –F 测试用例名称+测试执行时间 –t –r 测试用例名称 –s30 –c采样次数。); • 启动测试工具和脚本并关注测试状态(如果监控有错误或是无法建立连接等错误,需要停止测试并保存所有有关的测试数据;查看相应的日志,分析出错原因); • 监控数据库运行状态; • 待测试完毕将所得测试数据全部保存; • 对测试所得性能数据进行分析并保存结果; • 调整测试参数设置进行新一轮测试,重复上述测试直到完成。
6.6 测试数据分析 • 测试数据可以导入《性能测试报告》文档中进行汇总分,(详细操作请参见《性能测试报告》)
7. 性能报告 • 性能报告的内容与格式参见附件《性能报告模板》
8. 测试过程演示 • 帐务核心-帐户交易业务性能测试
Q&A Q&A