性能测试基本测试概念

上传人:feng****ing 文档编号:54219915 上传时间:2022-02-13 格式:DOC 页数:15 大小:135KB
收藏 版权申诉 举报 下载
性能测试基本测试概念_第1页
第1页 / 共15页
性能测试基本测试概念_第2页
第2页 / 共15页
性能测试基本测试概念_第3页
第3页 / 共15页
资源描述:

《性能测试基本测试概念》由会员分享,可在线阅读,更多相关《性能测试基本测试概念(15页珍藏版)》请在装配图网上搜索。

1、一、性能测试的目的1、评估当前系统2、寻找瓶颈3、预测未来性能二、性能测试的前提:接口稳定 / 接口确定三、性能术语与指标详解:1. 并发:(1)一种为所有用户在同一时刻做同一操作,主要是为了验证程序或 数据库对并发处理能力(2)另一种为多个用户对被测系统发起了多个请求,这些请求可以是 同一种操作,也可以是不同操作,类似于混合场景的概念2. 响应时间:响应时间反应完成某个业务所需的时间响应时间= 网络传输时间(请求) +服务器处理(一层或多层)时间 +网络传输 时间(响应时间) +页面前端解析渲染时间3. 每秒通过事务数(TPS:指每秒通过的事务数,是直接反映系统性能的指标, 该值大时,系统性

2、能比较好,当然每个系统都有他的上限,不可能无限大将他以平均事务响应时间进行对比,可以分析事务数量对以响应时间的影响4. 事务:用户一个或一系列的操作, 代表一定的功能, 在程序上变现为一段代码 区块,所有性能测试其实最终都是围绕着事务展开的, 事务代表用户的使用方法 和结果,不同的操作组合成不同的事务,不同的事务又能组合成不同的场景(LR必须至少有一个事务,LR监控事务)(事务不能超过接口的上限)事务 Transactions5. 事务请求时间:从这个事务发起到最终处理完毕的所有时间。 一个事物包括一个或多个事务,每个任务包含一个或多个请求。6. 每秒点击数:每秒点击数代表用户每秒向外部服务器

3、提交的 http 请求,但这 里需要注意是提交一个登陆请求对于后端服务器来说, 也许是多个请求, 所以点 击一次不代表就是一个请求。7. 吞吐量 / 吞吐率( I/O )( Input/Output )(反应服务器处理能力) 吞吐量:指单位时间系统处理的 请求数量吞吐率 :一般指用户在给定的一秒从服务器获取的数据量, 简而言之就是 服务器 返回的数据量8. 思考时间: 指用户进行操作时每个请求或操作之间的间隔时间, 是为了更加真 实的模拟用户的操作场景。9. 资源利用率(服务器)CPU 一般分为系统CPU和用户CPU系统CPU是处理系统本身占用的资源用户CPU是处理程序所占用的资源Load A

4、verage:指一段时间CPU正在处理和等待 CPU处理的任务,也就是CPU 使用队列的长度的统计信息缓存(比CPU运行速度慢):他就像大脑的记忆区域,将各种信息收集起来存 放,数据从存中读取要比硬盘上读取速度快,存会有泄露和溢出现象。队列:可以理解成地铁进站的排队现象,队列长,说明处理能力可能达到了 极限或者遇到的阻塞I/O (硬盘):与磁盘的交互,重点关注 交换频率和磁盘队列长度网络:重点关注网络的流量,看是否存在网络带宽的瓶颈四、性能测试分类1. 基准测试:可以在制定的标准下通过测试建立一个性能基准, 这样以后当系统 的环境参数发生变化后,在进行一次相同标准下的测试,即可看出变化对性能的

5、 影响。系统进行基准测试可以在较早的阶段发现性能问题。2. 并发测试:可以理解为很多的用户按照预定的场景并发请求某个业务或功能时 是否出现并发问题。并发测试的算法:(1)并发数=PV/PV Time*页面连接次数*HTTP响应时间*因数/web服务器 数量解释:PV即页面浏览量,一个用户可能创造十几个甚至更多的PV。他是目前判断访问流量最常用的计算方法,也是反映受欢迎程度的重 要指标。PV Time:是PV的统计时间,换算成秒,一天就是 86400秒 页面连接次数包括外部的js, css图片等,一般为10 HTTP响应时间一般为1秒或更少因数一般为5(2) C=nL/T (段念【软件性能测试过

6、程详解与案例剖析】) 解释:C是平均的并发用户数n是平均每天访问用户数L是一天用户从登录到退出的平均时间(操作时间)T是考察时间长度CC+3*V c解释:C是最大并发数3. 负载测试:可以理解为确定所要测试的业务或系统的负载围,然后对其进行测 试,他的主要目的验证业务或者系统在给定负载条件下的处理能力。 此外,还要 关注响应时间、每秒通过事务数和其他相关指标。负载测试是为了发现性能问题。而性能测试是为了获取性能指标。4. 压力测试:可以理解为没有预期的性能指标,不断加压,看系统什么时候崩溃, 以此来确定系统的瓶颈不能接受的性能拐点,以获取系统的最佳并发数,最大并发数压力测试也可以看作负载测试的

7、一种, 即高负载下的负载测试。 负载测试 与压力测试的概念并非完全独立, 在实际应用中一般二者都是相互结合, 相互补 充的。5. 稳定性测试(小公司不测) :需要长时间运行,在这段时间观察系统的出错几 率、性能变化趋势等。进而大大减少系统上线后的崩溃的现象。一般都会进行所谓的 7*24 小时的稳定性测试1)一般稳定性测试需要在系统成型后进行,并且没有严重的BUG存在2)场景的设计以模拟真实用户的实际操作为最佳。6. 失效恢复测试(小公司不测) :重在关注系统出现问题后能否根据预先制定的 策略回恢复,且恢复后能否正常运行。失效恢复测试一般是对其具有负载均衡的系统进行的, 主要是为了 测试当前系统

8、发生故障时, 是否会对全局产生大的影响, 产生的影响在是否可以 接受的围,以及用户能否继续使用系统。在实际应用过程中, 可以模拟一台或者几台负载均衡出现故障来进 行失效恢复测试, 但需要注意的是, 不仅要关心失效后, 用户是否可以正常访问 或者恢复后系统是否可以正常工作, 也要关注失效后, 系统还能支持多少并发用 户,以及采用那些备选方案来响应。7. 现网性能测试(小公司不测) :就是实际网络,实际环境中进行测试,完全和 真实用户一样,当然这样的测试有一定的风险,需要注意以下几点:(1)时间段的选择,非高峰时间段,选择都为半夜或者凌晨来进行(2)垃圾数据处理。测试数据后期一定要清理,为了清理方

9、便、前期数 据的设计要有规律可循(3)网络限制,压力机需要和被测试服务器部署在同一个网段机房,这 样可以避免网络限制,最后远程收集数据即可。*如果没有特殊情况,尽量不要进行现网的性能测试,风险比较大,如果非要进 行,一定要事先充分评估风险以及应对的解决方案。LR 的三大模块Virtual user GeneratorCreate/Edit Scripts创建/ 编辑脚本LR 进行操作的第一步, 性能测试前的准备LR8 (虚拟用户生成器)LR11制造基本性能脚本Controller (控制器)Run Load Tests运行负载测试 在脚本写完的基础下,对其设置不同的场景,进行测试 性能测试执行

10、Analysis (分析)Analyze Load Tests分析测试结果参看性能测试的结果数据,并进行适当的分析预期结果与实际结果的对比,并查找问题根源模块间的关系LR8 Virtual User Generator-Controller-Analysis LR11Create/Edit Scripts- Run Load Tests - Analyze Load Tests 创建脚本 -运行测试(创建场景并执行脚本) - 分析结果得到报告LR录制流程1. 选择协议:web类型:协议HTTP/HTM、Wei协议FTP服务器:选择 FTP服务器:协议选择IMAP(同步电子)、P0P3(接收电子

11、)、SMTP(发送电子)ADO SQL Servier 、OLED商法连接后台数据库的C/S客户端:选择协议 MS0racle 、Sybase、DB2以ODBC方法连接后台数据库的C/S客户端:协议选用ODBC 没有后台数据库的C/S客户端:协议选择SocketB/S 网络 客户端- 服务器端(中间件,数据库,缓存) 客户端作用显示C/S 单机 客户端(中间件,数据库,缓存)LR11支持浏览器IE6 IE9IE8自带火狐新版火狐 谷歌 要录制的程序:浏览器 工作目录:浏览器所在目录LR 录制前的设置应用程序类型: Internet- 网页 Win32-window 下运行的程序 要录制的路径:

12、自动打开的软件路径和程序URL 地址:自动连接的接口地址 工作目录:浏览器 / 被测试软件的路径 录制到操作: init 脚本开始 Action脚本的运行主体End脚本的结束一、脚本的调试1. 回放:确认之前的脚本能够正常运行2. 保存/ 另存为:保存当前脚本3. 树:可以看到页面的截图4. 设置事务:事务函数: lr_start_tarnsaction (“事物的名字”) lr_end_transaction( “事务的名字”,“ 事务的状态”)解释:事务状态:AUT O自动,一般为默认PASS:不管事务怎样都算通过FALL:不管事务怎样都不算通过STOP:不管事务怎样都要停止注意( 1)一

13、个脚本起码要有一个事务,不然毫无意义(2)事务只能出现在 Action 部分(3)事务有起始必须有结束,且名字必须对应(4)事务开始必须在接口方法前5. 集合点:让虚拟用户在指定的地址集合, 先到的人在这边进行等待, 直到最后一个人到达在一起执行,通过集合点可以模拟一定意义上的用户并发设置集合点函数:lr_rendezvous (“集合点的名字”);注意:(1)集合点必须在事务开始之前进行,从而保证事务在之后的 性能测试中能并发一起执行(2)设置集合点将增加对服务器的压力(3)只应在 action 部分出现6. 思考时间思考时间函数: lr_think_time (秒); 注意:LR初次使用对

14、于思考时间是默认不参与,需要进行一定的设置 更改方法: Vuser- 运行时设置( F4)- 思考时间(按照设置要求,定值,给 予百分比,围值)思考时间越大,对服务的压力会变向的越小7. 迭代(往往和参数化一起进行) 注意:只有 Action 部分才能进行迭代操作 方法: Vuser- 运行时设置( F4)- 运行逻辑 - 迭代次数(修改) 迭代越多对服务器的压力越大8. 参数化:LR 的参数化有两种,一种是俗称文件形式的参数化,一种是数据库形式的参数 化。一般参数化的应用场景有如下几种:(1)真实的模拟用户操作(2)系统不允许同一个用户频繁的进行相同 操作(3)系统对数据的唯一性有要求设置参

15、数化的一般步骤为: 分析需要参数化的数据 - 设计数据分配方法 - 查找 替换对象。1. 文件参数化:(1)依次点击菜单中 Inset-New Parameter 命令。点击 new 按钮, 并重命名为 username(2)点击 Create Table-Edit with Notepad 在弹出的文本中输入参 数化的值,每个值占据一行,保留一个空行,保存关闭(3)回到脚本中,找到要参数化的用户名,选中,单击右键,选择 Use Existing Parameter-username(4)最终完成参数化后,参数username被包围,这是LR中的规(5) 点击菜单 Vuser-Run-time

16、 Setting-RunLogic, 设置迭代次数为 3,这样才能让脚本跑三次来验证是否正确2.1 多数列对应参数化(1 )新建参数Pwd并选择File 为username.dat(2) 添加列:点击Add Column按钮,查看弹出框,点击 ok按钮(3) 添加密码:点击 Edit with Notepad 按钮,输入用户名对应的密 码,比如 username, pwd( 4 )回到脚本中替换掉密码值即可,方法与用户名的替换相同2. 数据库参数 :使用数据库参数化首先要安装 ODBC数据库为mysql的话,下载mysql ODB安装到本地,之后配置即可( 1 )在脚本里新建一个参数,多为 u

17、sernamedb( 2)单击 data wizard 按钮,在弹出的对话框中选择 specifySql statement menu 并单击“下一步按钮”(3) 单击 create 按钮,在弹出的对话框中选择“机器数据源”后,单 击“新建”按钮( 4)选择系统数据源并单击“下一步”按钮(5) 选择“ mysql ODBC x.xx Driver ”并单击下一步Data Source Name 和 Description 可随意填写 TCP/IP Server :是 Mysql 所在服务器的 IP 地址 Port : mysql 使用的端口号 user : mysql 使用的用户名 passw

18、ord: mysql 账号的密码,如果为空则不填 database :是可以连接的数据库列表Test :可以测试是否连接成功( 6)完成上述填写并确定后,在列表中看到新建的数据源( 7)双击要参数化的值后,可以把此数据源配置到Data Wizard 中(8)在SQL处输入想要查询的sql语句后,完成数据的参数化3. 参数化设置:参数时间或者一个随机值,可以在参数化对话框的 parameter type 下拉列表中 选择file 和 Table 类型:文本类型data/time: 可以在需要参数化日期的地方使用此类型group name :使用该虚拟用户所在的Vuser group名称来代替参数

19、化 iteration number :使用脚本执行的当前次数来代替参数化 load generator name :使用生产 vusers 负载的机器名来代替参数化 random number:使用唯一随机数来代替参数化unique number :使用一个唯一的整数来代替参数化vuser ID :使用虚拟用户的 ID 来代替参数化user Defined Fu nctio ns :扩展接口,可从用户开发的 DLL文件中提取数据 XML提供对xml格式数据的支持。可从xml中读取数据进行参数化4. 参数化数据分配方式:分配值得方式,一共 9 种组合,理解意思即可(1) select next

20、 row: 选择下一行的策略 Sequential:顺序取行random :随机取行(2)update value on: 更新值的策略Each iteration:每次迭代都要取新值Each occurrence:只要发现该参数取过就会重新取值Once:在所有的反复中都使用同一个值9. 关联:关联其实就是动态的获取服务器的某些值,即使不动态的值, 也完全可以用关联一般出现以下几种情况需要考虑是否使用关联1 )服务器返回值中存在动态变化的值, 一般就是类似 session 的无规则数据2 )运行后没有报错,但是也没有产生记录3)后续的操作要使用到之前的数据。例如:回帖操作要知道之前发帖子的 I

21、D 才行F1 所有函数脚本 接口引用代码 JS举例:如果HTML中标签如下手动编写关联:web_reg_save_param “快递单号关联”,“ LB=value=A” ,“ RB=B”, LAST); 将代码中的 value= 快递单号关联 录制两次问开发:那些是自动排列的Web的值传输 自动关联:(Ctrl+F8 ) 自动跑一次 进行对比 记录手动关联: web_reg_save_param( “名”,“ LB=name”=“ RB=value”,LAST); 配合 HTMLvname=1234” valueCookie:Sessi on:自动关联的操作:1)回访F52)点击 corre

22、ation results3)ctrl+F84)选择需要关联的项,点击 correlate10. 检查点前提:(1)检查点一定要放到事务的上面(2)检查点检查的一定是系统的信息,而不是自己输入的1)文本检查点:用于HTM页面检查是否有用户指定的文字/文本检查点,检查jixuWeb_reg_find( “ Text=jixu ” ,LAST)2)图片检查点,用于在HTM页面检查是否有用户指定的图片Web_image_check( “ 退 出”, 图 片 名 称 “ Src=/webtours/image/signoff.gif” , / 图片的 src 属性 last);、设置并执行脚本1. 选

23、择场景手动场景:(大多数选择的模式)设置场景-查看执行结果使用百分比-按照人数分配的百分比执行(往往只适合超大型的项目) 不适用百分比-按照虚拟用户数执行(默认)自动场景(面向目标场景)设置执行结果-自动生成场景2. 载入脚本双击脚本,或者点击 ,脚本在右侧显示即可3. 设置场景(1)确定场景组确定此次性能测试执行时用到的脚本数量和运行方式(2)全局计划 初始化:每一个虚拟用户的初始准备时间 启动 vuser :设置脚本总计运行人数,以及启动时间 持续时间:性能测试的执行时间完成前一直执行: 遵循脚本的迭代设置 (脚本在制作时的要 求,迭代几次,就运行几次)运行时间:根据运行时间来进行 N 次

24、迭代,直到时间结束 停止Vuser:停止脚本所用的时间和方法4. 集合点策略前提:脚本中必须先有集合点:lr_rendezvous( “名称” )在场景中,菜单栏 Scenario-Rendezvous ,打开集合点设置界面 设置:( 1) rendezvo u s :集合点的列表,可通过下面的 disable rendezvous 按钮启动 或关闭(2)(3 )vusers :当前设置的并发用户数,可通过下方的disable Vuser 按钮来启动或关闭虚拟用户(4 ) -policy (集合点策略):单击后进入策略设置对话框 策略的设置:1)当所有用户的X%到达集合点时释放2)当所有正在运

25、行的用户的X%到达集合点时释放3)当 X 个用户到达集合点时释放4)超时设置:表示等待用户超时规定的时间,如果在X秒没有满足要求的用户到达,则释放集合点。5.IP 欺骗对一般系统而言,是否使用 IP 欺骗并不会影响性能测试,只有在特殊的要 求下才会使用。如: 1 .某系统限制同一个 IP 用户在短时间对系统进行恶意或大量的请求访问2. 负载均衡策略根据 IP 规则分配前提:本地的 IP 地址不能设置为“自动获取” ,必须指定一个静态的 IP 地 址,否则报错。添加步骤:1.开始-程序-HP LR-tools-IP wizard选项:新增 选择保存的文件 释放还原2. 选 Create new

26、setting 点击下一步3. 输入服务器的 IP 地址或者留空也可以,点击下一步4. 点击 Add 按钮,弹出添加 IP 的对话框5. 修改 from IP 为 或者number to add 直接加上要模拟的人数,点击 OK6. 点击完成7. 保存:点击“save as”按钮,可以将本次文件保存为“.ips ” 文件,点击 OK8. 进 入 LP 的 场 景 设 置 controller 中 , 菜 单 选 择 Scenario-Enable IP Spoofer 完成释放还原: 1. 重复上面的第一步,选择释放还原2. 移除,点击完成3. 重启计算机6. 压力机(添加 windows 压

27、力机)1. 保证要添加的压力机安装了 Load Runner Agent (小卫星)2. 添加的压力机与 Controller 的所有机子要在同一个网段,并且要关闭所有的 防火墙3. 本地系统的RPC服务要开启(“控制面板”-“管理工具”-“服务”中开启)4. 之后在 Controller 所在的机器上登录到压力机 (远程连接),验证是否可以连 通。单击Windows系统的“开始”-“运行”在弹出的对话框中输入“机器名”, 不报错则成功。5. 进入 Controller ,依次点击 Scenario-Load Generators 菜单项,默认会有一 台压力机6. 点击 addName :这里

28、填写是 IP 地址Platform :默认为机子系统7. 点击“ ok”,点击Conn ect,可以测试通不通过,通过为 Rendy8. 最后可以把压力机分到对应的脚本中。7. 监控服务器的设置( windows 添加监控对象)右键点选系统资源图 添加度量 设置监控器服务器的名称 最基本的监控容%Processor Time(CPU 的占有率) Avaliable MBytes ( memory 可用的存)8. 执行点击执行模块中的开始即可三、分析结果1. 方法1. 运行后直接点击分析模块的图标2保存执行文件,点击分析模块(analysis),导入文件3.直接点击分析图标2. 添加新项1右键点

29、击报告一添加新项一windows资源图2. 新建后右侧图框中点击右键设置颗粒度四、分析(初步分析)1. 事务摘要描述(transaction sammary )显示事物的通过数量和失败数量成功率 =成功数 / (成功数 +失败数) 失败率 =失败率 / (成功数 +失败数)2. 平均事务响应时间( Average Transaction Response Time)显示所有场景中出现的事务在执行时的响应时间的情况随着测试时间的加长, 系统处理事务的能力就会开始逐渐下降, 总体的事务时间 情况应该是缓步进行变更的, 如果出现大起大落的现象, 则为缺陷, 说明该事务 不稳定3 .每秒点击数( Hi

30、st per Second)每秒发送服务器的请求数这个数值反应出服务器承受压力的能力4.吞吐量(Throughput)服务器每秒处理的数据量 这个数值反应出服务器的处理能力5. 每秒通过的事务数(Time suctions per Second)反应出不同事务在执行时竞争服务器资源的情况五、初步判定1. 当服务器处理能力远大于服务器受压情况时,这种性能测试无意义2. 当服务器处理能力小于服务器受压情况时,能容忍一定的事务数报错3. 随着压力的增大,事务报错数逐渐增加4. 在压力一定的情况下,查看失败率和需求做对比确认,以验证此次性能测试通 过与否一般性能测试的结束基本的通过以下容进行判定1.

31、成功率2. 事务平均时间3. 并发用户数六、收集Average:事务的平均响应时间 Min :事务最少响应时间Max :事务最大响应时间90%Line: 90%的响应时间Std. Deviation :标准差Fail:错误的事务Pass通过Error :错误Throughput/sec :吞吐量KB/sec :服务器数据流量项目性能分析用户数100200300平均响应时间10105吞叶.量1000500300KB1053总计需求数100001000100050%40%30%20%10%0%类别1类别2类别3类别4用户数与服务器处理请求的平均时间关系图1. 本图表示服务器处理请求的平均响应时间2

32、. 最佳性能是随着并发用户数的增加,平均事务响应时间比较平稳3. 本图可以清晰看到,对着并发用户的增加事务的响应不平稳用户数与服务器处理请求关系图1. 表示服务器每秒处理请求个数2. 最佳性能服务器处理请求数是随着用户的增加而增加系列3系列2系列13. 本图可以清晰看到,XXX 用户数与服务器接受数据流量关系图1. 本图为每秒接受到的数据流量2. 最佳或理想状态,服务器接受到的数据流量一定是随着用户数的增加而上升3. 本图可以清晰看到,XXX用户数与服务器请求总数关系图上图明显看出XXX个用户发起请求时,总请求数比较高而且平缓 当在XXX之后的请求总数与并发用户数的量不成比例 反而随着并发用户数的增加,总请求数在下降七、编写性能测试报告 报告的概述参考资料相关,性能测试资料术语解释系统介绍:环境介绍测试指标硬件指标 测试工具和测试策略

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!