Jmeter是开源免费的,LoadRunner是商业收费的。
但是LoadRunner具有非常强大的录制功能,具有丰富且灵活的场景,具备丰富的报告性能。
1)Jmeter没有录制功能
2)LoadRunner可以设计非常丰富的测试场景
3)LoadRunner能够产出丰富的测试报告
Virtual User Generator:VUG用来录制脚本,编写脚本
Controller:设计场景,运行场景
Analysis:产出性能测试报告
web_url("login",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
web_submit_form("web_submit_form",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
LAST);
lr_start_transaction("index");
web_url("index",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
lr_start_transaction("login");
web_submit_form("web_submit_form",
ITEMDATA,
"Name=username", "Value=jojo", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
LAST);
lr_end_transaction("login", LR_AUTO);
lr_end_transaction("index", LR_AUTO);
lr_rendezvous("login_rendezvous");
web_reg_find("Text=to the Web Tours reservation pages.",
LAST);
Action()
{
lr_start_transaction("index");
web_url("index",
"URL=http://127.0.0.1:1080/WebTours/",
"TargetFrame=",
"Resource=0",
"Referer=",
LAST);
lr_rendezvous("login_rendezvous");
lr_start_transaction("login");
web_reg_find("Text=to the Web Tours reservation pages.",
LAST);
web_submit_form("web_submit_form",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value=bean", ENDITEM,
LAST);
lr_end_transaction("login", LR_AUTO);
lr_end_transaction("index", LR_AUTO);
return 0;
}
运行场景:
问:明明在脚本中写的2个事务,为啥最后显示有5个事务?
答:因为每个文件就是一个事务,性能测试文件一共有3个,分别为init、action、end。
对于事务分析这块:一般情况下不关注最大值和最小值,关注平均值和标准偏差。标准偏差值越大说明越不稳定。
测试报表:
①运行的虚拟用户数量
根据运行的虚拟用户数量可以判断在哪个时间段给定服务器的负载
③吞吐量
吞吐量图和点击数图形状十分相似,但是吞吐量图会稍微滞后一点。
因为吞吐量表示的是响应返回的资源数量,肯定是先有点击率请求再有返回。
如果请求变多,但是吞吐量没啥变化,原因可能是?
答:①服务器响应慢了,来不及响应;
②压力没有到服务器,被拦截了;
③服务器设计了一定的阈值,超过一定的请求就不返回响应(性能调优)
④事务图
⑤平均事务响应时间
虚拟用户在性能测试过程中,每秒在服务器上命中的次数,因为虚拟用户会想服务器发出请求,可以帮助根据命中次数评估虚拟用户生成的负载。
⑥系统资源使用情况
I:Processor Time
CPU的使用时间,被消耗的处理器时间数量
II: Available Mbytes
可用的物理内存。【一般根据这个指标推算已经消耗的物理内存有多大】
已经消耗的物理内存=实际的物理内存-可用的物理内存