【文章末尾给大家留下了大量的福利】
性能测试工具Loadrunner
Loadrunner是HP公司研发的性能测试工具,原理是通过刻录传输协议生成脚本,增强脚本以后模拟大量用户并发进行性能测试。
对于负载生成器配置要:按HP过去官方说法1.5-2MB内存可以生成一个虚拟用户,由于系统复杂程度增加,关联字符串越来越长,现在已经不局限于2MB可以生成一个虚拟用户,很可能会远远超过这个数字。内存的特点是使用率超过75%会转移数据到硬盘存储,所以生成虚拟用户加上机器操作系统本身用户不宜超过总内存的75%;对于CPU要求CPU使用率不超过80%,一般情况对CPU要求不高,不过当TPS达到每秒几百级别的时候普通PC机的CPU可能会产生瓶颈。
创建脚本
选择loadrunner刻录协议和启动浏览器(客户端程序)方法不再详述,在刻录过程中,要等页面打开完全(有时候是LR接收到的事务不再增加,如果系统某些功能不停刷新那么接收到的事务就会一直增加)。我们在loadrunner的Script中看到的代码均为发送到服务器的数据,在增强脚本过程中,重点是事务(可以在刻录的同事完成添加)、集合点(可以在刻录的同事完成添加)、参数化、关联(在参数化后调试后增加)和设置检查点(每一个单独刷新部位最好都有检查点)。
事务(transaction)
作用:记录lr_start_transaction 和 lr_end_transaction之间所用的时间。
使用方法:
方法一:在刻录过程中,通过点击按钮插入要计时操作的开始位置和结束位置。
方法二:生成脚本后在需要插入事务的步骤开始位置和结束位置Insert → start transaction 和Insert → end transaction
注意:不同脚本的事务如果名称相同也会被认为是同一个事务。事务中间不能有思考时间。
集合点(rendezvous)
作用:虚拟用户在集合点处等待达到用户并发数量后释放。
设置方法:与事务设置方法基本相同。
注意:不同脚本的集合点如果名称相同也会被认为是同一个集合点。在场景设计中,用户可以通过集合点策略控制并发用户数量。集合点不能放在事务内,建议集合点和事务之间不要有思考时间。
集合点策略设置方法:场景设置→Scenario →Rendezvous.. →Policy..
参数化
作用:参数化是模拟不同用户向服务器提交不同数据,让脚本更接近真实用户使用情况。
参数化类型:各种参数化类型可以在设置参数类型时直接选择,不同参数有不用特地,可以参照帮助。
注意:参数化后注意参数的分配模式。
组合类型:
Sequential
- 与Each iteration组合:将为每次迭代从数据表中提取下一个值。
- 与Each occurrence组合:将为每一次参数的出现从数据表格中提取下一个值,即使它在同一次迭代中。
- 与Once组合:第一次迭代中分配的值就会在每个Vuse接下来所有的迭代中使用。
Random
- 与Each iteration组合:将会为每一次迭代从数据表中提取一个新的随机值。
- 与Each occurrence组合:将会为每一次参数的出现从数据表中提取一个新的随机值,即使它在同一次迭代中。
- 与Once组合:第一次迭代中分配的随机值就会在改Vuser的所有迭代中使用。
Unique
- 与Each iteration组合:将会为每一次迭代从数据表格中提取下一个唯一值。
- 与Each occurrence组合:将会为每一次参数的出现从数据表格中提取一个新的一直,即使它在同一次迭代中。
- 与Once组合:第一次迭代中分配的唯一值就会在每个Vuser的所有接下来的迭代中使用。
如果前面已经有了参数化的值,我们可以和前面参数分配行数保持一致。
关联:
作用:当脚本像服务器发送请求的数据不同,服务器返回数据也不相同,而后面要提交的数据恰好是服务器返回变化的数据时,我们通过关联获取服务器返回的数据并将数据赋与提交函数。(可以通过网络详细了解关联的描述)
关联方法:
自动扫描:
-
- 选择Correlation Results→从键盘输入Ctrl + F8(如果经过参数化,还没有回放过脚本会提示回放脚本,确认回放即可回放即可,扫描关联之前需要回放脚本。)