一、定义
在一定(固定)的软件、硬件(回归测试也要在相应的环境测试)及网络条件下,通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,从而发现系统的性能瓶颈。
服务器配置 16核,32G
LR性能自动化 一个人点点点的功能,多个人点点点的是性能
功能:bug 性能:瓶颈
二、常用术语
1、并发用户
(1)绝对并发:多个用户在同一时间操作同一对象,例如抢购 一般接口测试阶段做绝对
(2)相对并发:同时,但是操作对象不一样
2、点击率
单位时间内(一般单位是1s)用户向web服务器提交的请求数
3、事务
4、事务响应时间 网络传输时间、web服务器处理时间、数据库服务器处理时间
5、吞吐量:软件系统在单位时间内能处理多少个事务/请求
TPS: Transactions per second;Throughput per second 反应系统的绝对处理能力
满足所有外界条件下(网络、硬件),最大的处理量
6、集合点:配置多个Vuser同时执行操作
7、思考时间
请求之间的停顿时间 Ir_think_time()
8、90%的事务响应时间 网络、别人跑来操作,只看平均值不够,还要看最大最小值,平稳
9、资源利用率:内存、CPU、网络、I/O的利用率
三、策略 根据需求选择适合的方法
1、负载测试:在一定(固定)的软件、硬件(回归测试也要在相应的环境测试)及网络条件下,运行一种或多种业务在不容虚拟用户数量情况下,测试系统的性能指标是否在用户的要求范围内,用于确定系统所能承受的最大有效用户数以及不同用户数下的系统响应时间及服务器的资源利用率。
2、压力测试:在一定的软件、硬件及网络条件下,通过模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作 资源处于极限100% 大量用户访问,分流 连接池设置下
任何时候系统挂掉都不是正常的
3、配置测试:在不同的软件、硬件和网络条件下,通过运行一种或多种业务在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置 很少用
4、并发测试:开发阶段对接口测试,死锁,资源被别人占用,页面定在那里不动
5、疲劳测试 长时间(7*24小时)运行系统,检查系统是否稳定运行,有没有内存漏洞
内存溢出(OOM):内存不够,运行大型软件时,所需内存远远超出了主机内安装的内存所承受大小
内存泄漏:内存被长期占用,无法释放
内存使用率过高:
二、LoadRunner简介
性能测试指标:并发用户数、资源使用率、平均事务响应时间、
关联:脚本要用服务器返回来的值
三、LR使用步骤
1、录制脚本
---创建脚本:
(1)选择对应的协议;
(2)应用程序类型:B/S架构选Internet应用程序;C/S架构选win 32应用程序
(3)要录制的程序:选相应的浏览器
(4)URL地址:被测系统的地址
(5)录制到操作:Action
(6)选项:
录制级别选基于HTML的脚本,仅包含明确URL脚本
http属性高级:支持字符集UTF-8,本地保存快照资源
关联不选
---录制时操作前加注释
---操作完后点击停止,自动生成脚本,保存到scripts目录
2、脚本的优化
(1)事务:相应的操作前点击右键插入开始或结束事务
(2)集合点:开始事务前插入
(3)关联参数:
1)回放一遍脚本,新录制一个脚本,比较两个脚本,找出脚本的不同,服务器返回来的动态值
2)回到脚本定位到动态值,切换到http视图
3)在该位置之前的函数的响应中找到该动态值,确定左右边界值
4)返回该动态值的请求前插入一个关联函数:web_reg_save_param
填好左右边界,实例1,搜索范围,找不到
5)回到脚本,把所有动态值用关联函数替换
6)F4:勾选日志--扩展日志--参数替换
(4)检查点:动态值前面找,对比html视图,找出不同点,提取出来
之前插入检查点函数:搜索范围,保存计数:chk_count,失败条件
(6)思考时间
二、运行负载测试
1、新建:选录制好的脚本
运行时设置:
运行逻辑:
步:前一个迭代结束后
日志:仅在出错时,参数替换日志
思考时间:使用录制思考时间的百分比一般80-120
其他:出错时仍然继续,按线程进行
浏览器模拟:每次迭代模拟一个新用户,会清除缓存
2、集合
3、全局计划
4、运行界面
windows资源拖过来,点击右键添加度量
服务器计算机:localhost
资源度量位于:
CPU:Processor ----Processor time
内存:Memory---Available Mbytes
I/O:physical disk---disk time
checklist
1、脚本是否正确添加
2、是否设置场景中的Run Time Setting
3、场景是否选对(手工场景,目标场景)
4、用户数是否正确,用户加载和场景运行时间是否正确
5、集合点策略是否正确
6、LG的设置
7、各项监控是否开启
三、分析报告
(1)并发用户:摘要报告
(2)事务成功率:事务摘要
注:退出的事务比登录的事务少,原因是有的用户准备退出时运行时间到了,被迫中止操作
(3)点击数和http响应曲率是否一致:每秒http响应数和每秒点击次数合并
(4)事务90%的响应时间:新建事务响应时间百分比。
登录时间:7.516
(5)事务平均响应时间:平均响应时间和vuser合并然后自动关联,不仅看平均还要看最大值,严重超标的问下领导要不要截日志
(6)5个用户同时登陆和注销,平均响应时间和90%的响应时间
集合--集合和平均事务相应时间合并后自动关联,不仅看平均还要看最大值,严重超标的问下领导要不要截日志
(7)CPU:看下平均和最大,有超标的,截日志给开发
内存:(总内存-平均可用内存)/总内存,超标的截日志
i/o率直接看图
网络占用率:(吞吐量最大值/1024)/带宽换成M*125
三、nmon使用步骤
1.用root用户登录系统,建立目录: mkdir -p /opt/soft/nmon
2.nmon工具上传至服务器的目录/nmon,我们用的是redhat5,所以上传nmon_x86_rhel5
3.执行授权命令:chmod u+x nmon_x86_rhel5
4.新建一个log的文件夹,授予读写执行权限
5.运行./nmon_x86_rhel54
6.后台监控 ./nmon_x86_rhel5 -f -N -t -m /opt/soft/nmon/log/ -s 30 -c 120
7.进入log文件夹,看下有没有生成.nmon的文件
8.可以运行场景了
9.xshell执行sz xxxxxxx.nmon,下载日志文件
10.打开nmon_analyser_v34a这个文档,点击analyse nmon data,选中刚刚下载的日志的文件会生成结果分析文件
11.CPU ALL:看CPU 测试结果上的时间段的CPU%单独生成折线图
MEM:看内存使用率 (lowtotal-memfree-cached-buffers)/lowtotal
12.xshell执行命令:cd /var/log/httpd,然后下载文件access_log
13.在UE中截取需要的日志