//上一篇的代码有点问题,问题出在 web_reg_find()函数中,这个函数简单的说是搜索下一步操作的请求对象(html)页面中是否存在相应的文本字符串。所以用在登录操作中,它搜索的是主页.html,用在注册中它搜索的就是注册页面,这里必须得感谢下51test论坛的luming同学帮我解决了这个问题。(所以虽然可以回放成功,但其实只是运气好,上一篇的示例代码就不去修改了,去掉web_reg_find函数就行了)。
(一) 代码
Action()
{
/*集合点*/
lr_rendezvous("同时登录"); /*事务开始*/
lr_start_transaction("login"); //加载相应的url
web_url("WebTours",
"URL=http://127.0.0.1:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t44.inf",
"Mode=HTML",
LAST); //检查下一步操作请求对象(HTML页面)中是否存在相应的文本字符串
web_reg_find("Text=Welcome,","Search=Body",LAST); //登录
web_submit_form("login.pl",
"Snapshot=t45.inf",
ITEMDATA,
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
"Name=login.x", "Value=58", ENDITEM,
"Name=login.y", "Value=11", ENDITEM,
LAST);
/*事务结束*/
lr_end_transaction("login", LR_AUTO);
return ;
}
(二)设置、运行场景
- 运行Controller。
或者
1、可以选择面向目标场景、手动场景
面向目标场景:指定一个目标,loadrunner根据指定的目标自动生成方案。
手动场景:通过指定要运行的Vuser(虚拟用户数)手动创建方案。
2、选择面向目标场景时,可以设置场景目标。(这个比较像是直接测试软件是否符合用户需求,而不考虑系统能承受的最大负载、什么情况下系统会失效等问题)
场景目标设置好后,开始运行场景。
运行过程中,一开始还好,后面并发用户数多了后,CPU占用太高了
3、运行结束后(这里我因为没达到目标提前结束了)
查看错误信息。
第一个错误信息暂时看不明白。
第二个错误信息:web_reg_find 找不到welcome,
推测原因可能是:
1、 登录成功后,资源响应太慢(比如在响应的html页面只加载完成一部分内容的情况下,web_reg_find可能就执行检查了),没检测到该文本字符串
2、 没登录成功
第三个错误信息就很明显了,CPU占用过高。
(三) 分析结果、生成测试报告
1、打开Analysis。(点击Controller的结果-分析结果可以直接打开,也可以点击Analysis的快捷方式打开)
2、点击SLA配置向导,添加服务水平协议,这里设置90%的事务响应时间不超过0.5秒。(这个在Controller运行场景前也可以设置)
3、看这边应该是没达到预计的目标,目标是90%事务响应0.5秒,这里实际显示的是0.883。
4、生成html报告。(报告-html报告)
5、生成其他格式的测试报告(报告-新建报告)
直接点击【生成】,然后save保存一个格式就行了。没看到word格式的选项,不过可以导出PDF再转为word。
(三) 待解决问题
1、 场景设计应该加强,根据需求设计需要的场景
2、 SLA服务协议配置应该加强,熟悉不同指标、不同选项的作用
3、 生成报告部分,设置不同的报告模板,适应不同的用户。
4、 结果分析(不同图表、指标的分析及相关概念等)应该加强