四、性能测试的执行
1.loadrunner组件:Virtual User Generator(VUGen):虚拟用户生成器,用于捕获最终用户业务流程和创建自动性能测试脚本(虚拟用户脚本) 演员
Controller:场景监控器,用于组织、驱动、管理和监控负载测试 导演
Load Gennerator:负载生成器,用于生成虚拟用户负载
Analysis:数据收集分析器,用于查看、分析和比较性能结果
性能测试流程:需求分析--》用例设计--》脚本录制--》脚本优化--》脚本回放--》场景设计--》场景执行--》结果收集--》结果分析
创建脚本:web http/html-->creat-->options--》network port mapping--》Socket level and WinNet level data (出现乱码Advanced Support charset UTF-8)--》选用浏览器 链接 录制保存地址 ok
开始录制
优化脚本
脚本优化流程:插入事务点--》插入集合点--》设置思考时间--》插入注释--》数据参数化--》设置关联--》设置文本检查点--》插入函数
1 lr_start_transaction("submit");//插入集合点 2 lr_think_time(1);//思考时间 3 lr_rendezvous("submit");//插入事务点开始 4 web_submit_data("submitcode.do_2", 5 "Action=http://192.168.119.1:8080/acmhome/submitcode.do", 6 "Method=POST", 7 "RecContentType=text/html", 8 "Referer=http://192.168.119.1:8080/acmhome/tosubmit.do?problemId=1702", 9 "Snapshot=t12.inf", 10 "Mode=HTML", 11 ITEMDATA, 12 "Name=problemId", "Value=1702", ENDITEM, 13 "Name=language", "Value=GCC", ENDITEM, 14 "Name=code", "Value=描述 undefined 输入 undefined 输出 undefined 样例输入 样例输出 提示 undefined ", ENDITEM, 15 LAST); 16 17 lr_end_transaction("submit", LR_AUTO);//事务结束
参数化:Parameter List--》Unique Number--》4位数 1---1000--》参数替换 test001---test{username}
参数类型为file 数据库数据 username.dat test001 替换成{username}
6.设置关联
7.设置文本检查点
8.修改函数
测试脚本的回放
1.运行逻辑
迭代次数设置为3次,执行顺序是:首先执行一次vuser_init中的脚本,接下来执行3次Action中的脚本,最后执行一次vuser_end的脚本。第一次执行Action中的脚本时,用户test0001完成提交代码,第二次用户test0002完成提交代码,第三次test0003.
2.日志 启用日志记录 始终发送消息 标准日志
3.思考时间 忽略思考时间:发送请求不停顿的,给服务器造成的压力最大
重播思考时间:按录制时记录的时间,录制思考时间一秒就一秒
4.首选项:如果在测试脚本中设置了文本检查点,那么需要启用检查点,选中“启用图像和文本检查”
视图--》测试结果
特别注意:脚本执行完成,运行结果显示成功,回放日志中也没有错误信息,但实际上业务没有成功执行,找出错误原因,对脚本进行改进。
测试场景的设计
1.提交代码单业务负载测试
1)创建场景,Controller,新建--》添加脚本--》手动场景(通过指定要运行的虚拟用户数来管理负载测试)使用百分比模式在脚本间分配Vuser
面对目标的场景 不懂
2)确定场景执行计划
并发用户初始化方式有三种:1️⃣同时初始化所有的并发用户2️⃣每隔固定的时间间隔初始化若干个并发用户3️⃣在每个并发用户运行之前将其初始化。
并发用户持续运行时间的两种方式:1️⃣完成前一直运行2️⃣按指定的时间运行
并发用户停止的两种方式:1️⃣同时停止2️⃣每隔固定时间间隔停止若干并发用户
3)设置集合点 场景--》集合
1️⃣当所有Vuser用户中的百分之多少到达集合点后释放;2️⃣当所有运行中的Vuser用户的百分之多少到达集合点后释放3️⃣当多少个Vuser用户到达后释放
同时可以设置三种策略Vuser用户之间的间隔,默认是30s,假如Vuser用户之间等待的时间超过30s,就不再等待其他Vuser用户,释放已经达到集合点的Vuser用户。
设置运行是设置:
1️⃣运行逻辑 场景执行计划的持续时间优先级高于运行逻辑的迭代次数
2️⃣日志,启用日志记录 尽在出错时发送消息
3️⃣思考时间 重播思考时间和按录制时记录的时间
4️⃣其他:出现错误时仍继续 继续执行场景,直到场景运行结束
5️⃣首选项 文本检查功能默认是关闭的,因为在测试执行过程中启用该功能会消耗一定的资源,对测试结果有影响
数据监控设置
Processor的%Processor Time Memory的Available Mbytes
win系统自带的监视器:此电脑--》管理--》性能--》监视工具--》性能监视器--》绿色添加(添加计数器)选择
日志没弄过
混合业务负载测试
submitcode viewproblem
场景和组:按场景设计场景计划时,多个脚本的执行必须一致的,脚本同时开始启动和停止运行,Vuser并发用户的启动、持续运行时间、停止都弯曲相同;希望多个脚本的运行时间有先后顺序,每个脚本的执行各不相同,那么就按组设计场景计划。
1)负载生成器:系统的并发用户都是由负载生成器生成的 场景--》Load Generator
2)ip欺骗 场景--》启用ip欺骗 投票网站
ip欺骗应该在连接负载生成器之前启用,各负载生成器都必须使用固定的ip,不能使用动态ip即DHCP