性能教学教案基本教学教案概念.doc
《性能教学教案基本教学教案概念.doc》由会员分享,可在线阅读,更多相关《性能教学教案基本教学教案概念.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、性能测试的目的1、 评估当前系统2、 寻找瓶颈3、 预测未来性能二、性能测试的前提:接口稳定/接口确定三、性能术语与指标详解:1. 并发:(1)一种为所有用户在同一时刻做同一操作,主要是为了验证程序或数据库对并发处理能力 (2)另一种为多个用户对被测系统发起了多个请求,这些请求可以是同一种操作,也可以是不同操作,类似于混合场景的概念2. 响应时间:响应时间反应完成某个业务所需的时间 响应时间= 网络传输时间(请求)+服务器处理(一层或多层)时间+网络传输时间(响应时间)+页面前端解析渲染时间3.每秒通过事务数(TPS):指每秒通过的事务数,是直接反映系统性能的指标,该值大时,系统性能比较好
2、,当然每个系统都有他的上限,不可能无限大将他以平均事务响应时间进行对比,可以分析事务数量对以响应时间的影响4.事务:用户一个或一系列的操作,代表一定的功能,在程序上变现为一段代码区块,所有性能测试其实最终都是围绕着事务展开的,事务代表用户的使用方法和结果,不同的操作组合成不同的事务,不同的事务又能组合成不同的场景(LR 必须至少有一个事务,LR监控事务)(事务不能超过接口的上限)事务 Transactions5.事务请求时间:从这个事务发起到最终处理完毕的所有时间。 一个事物包括一个或多个事务,每个任务包含一个或多个请求。6.每秒点击数:每秒点击数代表用户每秒向外部服务器提交的http请求,但
3、这里需要注意是提交一个登陆请求对于后端服务器来说,也许是多个请求,所以点击一次不代表就是一个请求。7.吞吐量/吞吐率(I/O)(Input/Output)(反应服务器处理能力)吞吐量:指单位时间内系统处理的请求数量吞吐率:一般指用户在给定的一秒内从服务器获取的数据量,简而言之就是服务器返回的数据量8.思考时间:指用户进行操作时每个请求或操作之间的间隔时间,是为了更加真实的模拟用户的操作场景。9.资源利用率(服务器) CPU:一般分为系统CPU和用户CPU 系统CPU:是处理系统本身占用的资源 用户CPU:是处理程序所占用的资源 Load Average:指一段时间内CPU正在处理和等待CPU处
4、理的任务,也就是CPU使用队列的长度的统计信息 缓存(比CPU运行速度慢):他就像大脑的记忆区域,将各种信息收集起来存放,数据从内存中读取要比硬盘上读取速度快,内存会有泄露和溢出现象。 队列:可以理解成地铁进站的排队现象,队列长,说明处理能力可能达到了极限或者遇到的阻塞 I/O(硬盘):与磁盘的交互,重点关注交换频率和磁盘队列长度 网络:重点关注网络的流量,看是否存在网络带宽的瓶颈四、性能测试分类1.基准测试:可以在制定的标准下通过测试建立一个性能基准,这样以后当系统的环境参数发生变化后,在进行一次相同标准下的测试,即可看出变化对性能的影响。系统进行基准测试可以在较早的阶段发现性能问题。2.并
5、发测试:可以理解为很多的用户按照预定的场景并发请求某个业务或功能时是否出现并发问题。 并发测试的算法:(1) 并发数=PV/PV Time*页面连接次数*HTTP响应时间*因数/web服务器数量解释:PV:即页面浏览量,一个用户可能创造十几个甚至更多的PV。他是目前判断网站访问流量最常用的计算方法,也是反映网站受欢迎程度的重要指标。PV Time:是PV 的统计时间,换算成秒,一天就是86400秒页面连接次数包括外部的JS,CSS,图片等,一般为10HTTP响应时间一般为1秒或更少因数一般为5(2) C=nL/T (段念【软件性能测试过程详解与案例剖析】)解释:C是平均的并发用户数n是平均每天
6、访问用户数L是一天内用户从登录到退出的平均时间(操作时间)T是考察时间长度 CC+3*c 解释:C 是最大并发数3.负载测试:可以理解为确定所要测试的业务或系统的负载范围,然后对其进行测试,他的主要目的验证业务或者系统在给定负载条件下的处理能力。此外,还要关注响应时间、每秒通过事务数和其他相关指标。 负载测试是为了发现性能问题。而性能测试是为了获取性能指标。4.压力测试:可以理解为没有预期的性能指标,不断加压,看系统什么时候崩溃,以此来确定系统的瓶颈不能接受的性能拐点,以获取系统的最佳并发数,最大并发数 压力测试也可以看作负载测试的一种,即高负载下的负载测试。负载测试与压力测试的概念并非完全独
7、立,在实际应用中一般二者都是相互结合,相互补充的。5.稳定性测试(小公司不测):需要长时间运行,在这段时间内观察系统的出错几率、性能变化趋势等。进而大大减少系统上线后的崩溃的现象。一般都会进行所谓的7*24小时的稳定性测试1)一般稳定性测试需要在系统成型后进行,并且没有严重的BUG存在2)场景的设计以模拟真实用户的实际操作为最佳。6.失效恢复测试(小公司不测):重在关注系统出现问题后能否根据预先制定的策略回恢复,且恢复后能否正常运行。失效恢复测试一般是对其具有负载均衡的系统进行的,主要是为了测试当前系统发生故障时,是否会对全局产生大的影响,产生的影响在是否可以接受的范围内,以及用户能否继续使用
8、系统。在实际应用过程中,可以模拟一台或者几台负载均衡出现故障来进行失效恢复测试,但需要注意的是,不仅要关心失效后,用户是否可以正常访问或者恢复后系统是否可以正常工作,也要关注失效后,系统还能支持多少并发用户,以及采用那些备选方案来响应。 7.现网性能测试(小公司不测):就是实际网络,实际环境中进行测试,完全和真实用户一样,当然这样的测试有一定的风险,需要注意以下几点: (1)时间段的选择,非高峰时间段,选择都为半夜或者凌晨来进行 (2)垃圾数据处理。测试数据后期一定要清理,为了清理方便、前期数据的设计要有规律可循 (3)网络限制,压力机需要和被测试服务器部署在同一个网段机房内,这样可以避免网络
9、限制,最后远程收集数据即可。 *如果没有特殊情况,尽量不要进行现网的性能测试,风险比较大,如果非要进行,一定要事先充分评估风险以及应对的解决方案。LR的三大模块 Virtual user Generator LR8(虚拟用户生成器) Create/Edit Scripts LR11 创建/编辑脚本 LR进行操作的第一步,制造基本性能脚本 性能测试前的准备 Controller(控制器) Run Load Tests 运行负载测试 在脚本写完的基础下,对其设置不同的场景,进行测试 性能测试执行 Analysis(分析) Analyze Load Tests 分析测试结果参看性能测试的结果数据,并
10、进行适当的分析预期结果与实际结果的对比,并查找问题根源模块间的关系 LR8 Virtual User Generator-Controller-Analysis LR11 Create/Edit Scripts- Run Load Tests - Analyze Load Tests创建脚本-运行测试(创建场景并执行脚本)-分析结果得到报告LR录制流程1. 选择协议:web类型网站:协议HTTP/HTML、Web service协议 FTP服务器:选择FTP 邮箱服务器:协议选择IMAP(同步邮件电子邮箱)、POP3(接收电子邮件)、SMTP(发送电子邮件) ADO、OLEDB方法连接后台数据
11、库的C/S客户端:选择协议MS SQL Servier、Oracle、Sybase、DB2 以ODBC方法连接后台数据库的C/S客户端:协议选用ODBC 没有后台数据库的C/S客户端:协议选择SocketB/S网络 客户端-服务器端(中间件,数据库,缓存) 客户端作用显示C/S单机 客户端(中间件,数据库,缓存)LR11支持浏览器 IE6 IE9 IE8 自带火狐 新版火狐 谷歌要录制的程序:浏览器工作目录:浏览器所在目录LR录制前的设置 应用程序类型:Internet-网页 Win32-window下运行的程序 要录制的路径:自动打开的软件路径和程序 URL地址:自动连接的网站接口地址 工作
12、目录:浏览器/被测试软件的路径 录制到操作:init 脚本开始 Action脚本的运行主体 End 脚本的结束一、脚本的调试 1.回放:确认之前的脚本能够正常运行2.保存/另存为:保存当前脚本3.树:可以看到页面的截图4.设置事务: 事务函数:lr_start_tarnsaction(“事物的名字”) lr_end_transaction(“事务的名字”,“事务的状态”) 解释:事务状态:AUTO:自动,一般为默认 PASS:不管事务怎样都算通过 FALL: 不管事务怎样都不算通过 STOP:不管事务怎样都要停止注意(1)一个脚本起码要有一个事务,不然毫无意义(2)事务只能出现在Action部
13、分(3)事务有起始必须有结束,且名字必须对应(4)事务开始必须在接口方法前5.集合点:让虚拟用户在指定的地址集合,先到的人在这边进行等待,直到最后一个人到达在一起执行,通过集合点可以模拟一定意义上的用户并发 设置集合点函数:lr_rendezvous(“集合点的名字”); 注意:(1)集合点必须在事务开始之前进行,从而保证事务在之后的性能测试中能并发一起执行(2)设置集合点将增加对服务器的压力 (3)只应在action部分出现6.思考时间 思考时间函数:lr_think_time(秒); 注意:LR初次使用对于思考时间是默认不参与,需要进行一定的设置更改 方法:Vuser-运行时设置(F4)-
14、思考时间(按照设置要求,定值,给予百分比,范围值) 思考时间越大,对服务的压力会变向的越小7.迭代(往往和参数化一起进行)注意:只有Action部分才能进行迭代操作方法:Vuser-运行时设置(F4)-运行逻辑-迭代次数(修改) 迭代越多对服务器的压力越大8.参数化:LR的参数化有两种,一种是俗称文件形式的参数化,一种是数据库形式的参数化。一般参数化的应用场景有如下几种:(1)真实的模拟用户操作(2)系统不允许同一个用户频繁的进行相同 操作(3)系统对数据的唯一性有要求设置参数化的一般步骤为:分析需要参数化的数据-设计数据分配方法-查找替换对象。1.文件参数化: (1)依次点击菜单中Inset
15、-New Parameter命令。点击new按钮,并重命名为username (2)点击Create Table-Edit with Notepad在弹出的文本中输入参数化的值,每个值占据一行,保留一个空行,保存关闭 (3)回到脚本中,找到要参数化的用户名,选中,单击右键,选择Use Existing Parameter-username (4)最终完成参数化后,参数username被包围,这是LR中的规则 (5)点击菜单Vuser-Run-time Setting-RunLogic,设置迭代次数为3,这样才能让脚本跑三次来验证是否正确2.1 多数列对应参数化(1)新建参数Pwd,并选择Fil
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 机能 教学 教案 基本 概念
限制150内