LR以及性能测试笔记mq.docx
《LR以及性能测试笔记mq.docx》由会员分享,可在线阅读,更多相关《LR以及性能测试笔记mq.docx(20页珍藏版)》请在冰点文库上搜索。
LR以及性能测试笔记mq
LR以及性能测试
客户:
快,响应时间RT
用户量,处理事件GPS
开发:
算法,优化(与程序相关)
进程和线程:
比如,打开QQ,打开一个进程,打开QQ可以听歌等就是线程(最小单位)。
压力的技术手段:
多线程
多线程+协议+真实场景:
最难的是真实场景
http最简单,90%;socket最难。
LR分为VuGen、Controller(收费)和Analysis三个部分。
对于工具而言,最难的是VuGen;
对于人而言,最难的是Analysis;
最重要的是Controller。
Jmeter开源,纯JAVA,可以做LR的功能,但监控和图标显示不如LR。
VuGen
AdvancedSettings–LoadRunnerAgentProcess打开则可以做压力机
录制
,录制设置
;
回放
,回放设置
。
脚本:
事物
思考时间
集合点
关联
参数化
检查点
登录时记录密码,下次直接登录。
--cookie
登录后离开再点击可以进入。
--session
vuser_init初始化
Action(无限次)
vuser_end清理
vuser_init和vuser_end只运行一次
View-TestResults查看业务是否成功
Tools-GeneralOptions-Display
勾选后,可看到实时回放。
吞吐量:
服务器端向客户端返回的数据量
录制web类脚本,选勾选以下选项:
参数化
变化的数据才需要参数化。
选中后,右键:
再选中双击,右键:
点击
,进行参数设置:
Parametertype:
数据怎么来的,数据类型。
File记事本。
EditwithNotepad:
在记事本里编辑数据。
例如,2个参数值用1个文件,则记事本里如下书写:
1,2
1,2
在Selectcolumn里修改行数。
Selectnextrow取值方式:
Unique唯一
Updatevalueon更新方式:
Eachiteration迭代
Whenoutofvalues:
AbortVuser终止
关联
登录-选模块-发帖
关联—技术实现
获取信息,根据左右边界获取。
写完函数紧挨着返回请求,不能跳跃。
右键,insert-NewStep
AddStep-web_reg_save_param_ex(LR9.5之前,包括9.5,web_reg_save_param,LR9.5之后web_reg_save_param_ex)
4个关联函数,获取服务器返回信息。
second.html\”>-----引号前加“\”,转移,如此才无其他意义。
Instance:
第N个或ALL(全要)
NotFound:
warring脚本继续运行;ERROR脚本停止运行。
脚本尽量不要用变量,用参数。
Lr_save_string(lr_paramarr_random(“fids”),”fid”)—fids跟自己关联的名称一致
随机从获取的fid取fid。
Run-timeSettings-Log显示关联信息
数据库返回值
Formhash:
登录成功之前。
Posttime:
点击发帖按钮之前。
扫描所有关联,扫描后,手动关联。
关联的数据:
1.sumbit
2.在itemdata里放着
加入检查点:
检查业务是否成功
例如:
检查登录是否成功
“访问我的空间”为检查点。
注册型查找函数(登陆成功后,刷新页面之前)
右键,insert-NewStep
AddStep-web_reg_find
Savecount:
脚本执行完后,有多少个存入count。
Failif:
找到失败,找不到失败。
If(atoll(lr_eval_string(“{count}”))==0)
{lr_error_message(“loginfail!
”);
Return-1;\当前action后面的函数不执行
}
else
{lr_output_mesage(“loginsuccess!
”);
}
加入fail=NotFound无需写ifelse!
RT响应时间
登录,发帖是业务,而以LR来说是事物,在脚本里设置。
Insert-StartTransaction
Insert-EndTransaction
在Report里显示:
Dur花费时间,Wastedtime浪费时间。
Lr_wasted_time(3)手工去掉浪费时间(比如自己编写的for循环)
事物设置多大:
需要关注的设置为一个事务。
在LR9.5之前是默认勾选的。
Lr_end_transactin(“login”,LR_Auto)
LR自动判定成功还是失败,LR_Fail等。
检查点失败则停止。
Lr_think_time减缓压力,LR自动去掉,设置随机事件。
Ignorethinktime忽略思考时间
Replaythinktime–Userandompercentageofrecordedthinktime常用些选项
停顿处加思考时间(做压力时间时,思考时间忽略)
集合点
并发:
集合点(写在事务之外)
多脚本,集合点命名一样
Controller
选择手工场景
复选框-多脚本,多业务
步骤:
1.画压力曲线图;
2.监控,添加;
3.设置(添加)压力机;
4.设置
RunLogic迭代1次
选第一项
Atfixedintervals,every60.000sec每次迭代后停60秒
Log
ErrorHanding错误处理
限制带宽(客户端,压力机)
集合点灰的,不可以用时点运行再取消就可以—LR的BUG
C\S测试
Socket协议
安装Winsock:
C:
\ProgramFiles\MercuryInteractive\MercuryLoadRunner目录结构
拷贝后setup安装
flights.ini放到C:
\Windows根目录下
文件中的,dsn=不是使用localhost,使用机器名或者IP,否则无法生成脚本
[Winsock]
dllname=flsock32.dll
installed=1
dsn=localhost
src=flight32sock
socket脚本思路—创建,发数据,收数据,关闭。
1.先打开sever,再运行flight;
2.收到数据找关联;
lr_save_searched_string
思考时间5秒,大于5秒无意义。
分析报告
1.压力是否上去
RunningVusers和Hitspersecond结合起来
2.看指标(可以发现问题,不能定位问题)
RT事务响应时间
2,5,8(2秒很快,5秒还可以,8秒太慢)
TPS业务量
Transactionperseconds与UNIXResources结合起来看
Throughput带宽单位为B,平时指b,1B=8b
监控
OS:
CPU
MEM
Disk
最最关键DB(一半以上是数据库问题):
SQLsever
Mysql
Oracle
中间件:
Apache
Iis
Weblogic
使用不用的工具监控
1.Vmstat1
运行队列:
运行状态
阻塞状态
Loadaverage0.000.000.01
Cpu压力平均负载,1分钟,5分钟,10分钟的负载
小于1最好,不超过内核2倍
任务数超过6,任务数比较大
上下文切换(状态信息)cs做基准测试正常运行多少,压力测试多少
中断in
对硬件的优先级高
主要指硬件的中断
靠一次上下文切换完成,但上下文切换不一定全是中断造成的
大量的中断或少量的上下文切换,以为着一个单一的进程在产生对硬件设备的请求。
Cpu利用率70%以内,不超85%
1.空闲id0-5%
2.用户状态ususertime65-70%
3.系统态sysystemtime30-35%
4.调整优先级消耗的时间
5.waiowait等待时间(花在网络和磁盘上的时间)
运行队列和CPU利用率是CPU监控必监控的2个指标
CPU监控工具:
1.VMSTAT
2.TOP定位哪些进程占用CPU
2.内存
虚拟内存,借用硬盘
Swap交换siso不是0表示内存不够,需要交换
BuffersandCache读缓存和写缓存
Buffers是写缓存,Cache是读缓存
MEM监控工具:
1.VMSTAT
2.TOP
3.SAR
3.磁盘
工具:
iostat
命令iostat–x3
Await:
等待时间+服务时间
Svctm:
服务时间
%util:
CPU利用率
每次I/O大小
Rkb/s除以rs
每秒读K字节数
每秒完成的读I/O设备次数
4.网络
Iptraf
Ethtooleth0
5.Mysql