性能测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、性能测试概论
所有软件和系统都要做性能测试,关键是要思考应该做到什么程度。
只有并发用户数对系统才产生压力。
并发:同一时刻做同一种操作;同一时刻不同操作。(混合场景)
响应时间=网络请求时间+服务器处理时间+网络响应时间+页面前端解析时间;
每秒点击数:每秒向WEB服务器提交的HTTP请求数。点击一次不代表一个请求。
思考时间:每个请求或者操作之间的间隔时间。预估系统性能,就最大的模拟真实的思考时间,如果要了解最大承受能力或极端情况下的系统性能表现,可设置0思考时间。
基准测试:通过基准测试建立一个已知的性能水平,称为基准线。当软硬件变化之后再做一次基准测试,以确定那些变化对行的影响。基准测试指标通常都保存或归档,比如数据库的系统配置和环境配置都归档。
负载测试:负载测试是为了发现性能问题,性能测试是为了获取性能指标。
现网性能测试:压力机需要和被测服务器部署在同一个网段机房内,避免网络限制。测试完成后要进行垃圾数据的清理。时间选择半夜或凌晨来进行。
曲线拐点模型:
二、脚本
1、脚本录制时保持浏览器干净,不要安装多于的插件。
2、录制脚本不要使用浏览器的“后退”按钮。
3、脚本中extrares中的内容是无关的就删除。
4、脚本中extrares中的内容有关,如果要完整模拟用户操作那么要保留。
5、脚本回放结果查看:View->Test Results查看。
6、脚本增强:检查点,注册函数(带reg的函数)放在实际提交请求操作之前。
文本检查点:Web_reg_find()
图片检查点:web_image_check(),属性值src,指定图片的相对路径。
检查点功能选项默认是关闭的,调试可使用,场景运行关闭。(run-time setting ->preference: Enable Image and text check)
7、参数化:Select Next Row : Sequential(顺序取行),
Update value on :Each iteration(每次迭代都要取新值)
8、关联
自动关联:Vuser-> Scan script for Correlations(不推荐,会存在扫描不到的情况);
手动关联:
寻找关联点:录制两份相同业务流程的脚本Tools->Compare with Script比较,一般不一样的地方需要考虑关联;
关联只一般藏在HTML的hidden标签里。
关联函数:web_reg_save_param();
9、逻辑判断函数
Intatoi(要转换成整型的字符);
Lr_eval_string(“{当前想要获取的参数名}”)
10、日志不报错,也不表示脚本就是正确的,可查看真实数据以及日志判断,也可通过
自带浏览器回放查看。(Tools->General Options ->Display)
11、脚本
//文本检查点,检查用户名
Web_reg_find(“Text=besttest”,”SaveCount=besttest_count”,LAST);
//增加事务
Lr_start_transaction(“login”);
//提交登陆请求
…….
If(atoi(lr_eval_string(“{besttest_count}”)))!=0)
Lr_end_transaction(“login”,LR_PASS);
else
Lr_end_transaction(“login”,LR_FAIL);
12、日志:脚本调试时打开日志,在Controller运行脚本时关闭。
Run-time settings->log:Ebable logging.
13、集合点:lr_rendezous(“集合点名称”);
集合点并不能模拟真正意义上的并发,由于网络等多种因素的影响并不能同一时刻到达服务器,扔有先后差异。
三、Controller(LR的“心脏”)
场景类型:Manual Scenario(手工场景) Goal-Oriented Scenario (基于目标的场景)
IP欺骗:当系统限制了同一个IP用户在短时间内对系统进行而已或大量的请求访问时就使用IP欺骗,一般系统而言,是否使用IP欺骗不影响性能测试。Tools->IP Wizard:create new setting; Scenario->Enable IP Spoofer.
IP 释放:Remove后重启计算机。
添加windows压力机:压力机与controller所在机器要同一网段,防火墙关闭;本地系统RPC服务开启。
场景设计:Simultaneously(快增长)。
四、分析
概要图:从全局角度查看系统性能表现以及数据汇总。单位时间的吞吐量越大,说明服务器的处理能力越好。
事务:Std.Deviation该值越大,说明该事务越不稳定,起伏比较大,当标准差比较大时,一般选择90%的响应时间。
运行的虚拟用户图:与其他图表合并查看分析才有意义,分析出虚拟用户的增加对其他指标的产生什么影响。如何平均事务响应时间合并。
错误描述统计:重点查看的图表。
Timeout 提示:通过调大run-time setting中的http-request connect timeout、http-request receive timeout 和step download timeout三个参数的值来解决。
事务图:事务图的分析师站在用户角度进行的,主要关注响应时间。如果走势变化波动比较大,没规律可言,一般选择90 Percent time.通常我们关注最大响应时间和平均响应时间。
每秒通过的事务数:TPS 曲线如果变换缓慢或者有平坦的趋势,很可能是服务器开始出现瓶颈。
每秒点击数:虚拟用户向Web服务器提交的HTTP请求数,通常和其他指标合并看。
一般请求数越大,平均响应时间也越大,反之,可能是网络问题导致。请求数增加,通过的事务数也会随之增大,反之说明服务器处理可能存在瓶颈。
HTTP返回状态码:50X(服务器错误),40X (请求错误),30X (重定向) ,20x ( 成功)。
每秒HTTP响应数:每秒从WEB服务器返回的不同的HTTP状态码的数量一般和每秒点数量相同,如果服务器的响应数小于点击量,那么说明服务器无法应答,超出负载的连接请求。
每秒连接数:连接数越多,说明服务器的连接池越大,上连接数随着负载上升而停止时,说明系统的连接池已满。通常会返回504错误,需要修改服务器的最大连接数来解决问题。
连接数:当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高。
图表的合并与关联:在选中的一张图表上右击,然后选择Merge Graphs选项,再选择要合并的图表即可。要查看某段时间内系统的表现,可用图表的自动关联,图右击,选择Auto Correlate.出现自动关联图表对话框。
测试报告:编写报告要清楚报告是给哪些人看的,给领导和给技术人员的报告是完全不