LR录制C#3.5 开发的网站遇到的问题
上一篇 /
下一篇 2009-07-05 11:39:49
/ 个人分类:性能测试Loadrunner
近期有一个测试项目是用C#3.5开发的一个报表查询网站,实现方式:Report Viewer控件+RDLC报表(动态生成图表),数据源是报表服务器上的web service
注:客户端的rdlc报表无法实现打印功能
使用LR录制了一段业务操作:用户使用合法帐号登录网站,登录后会默认显示某报表。由于需要考察这个报表显示时间,所以在此定义了一个login事务。录制到的脚本中有这样一个函数:
web_url("Reserved.ReportViewerWebControl.axd",
"URL=http://10.194.159.236/PowerDemandAnalysisSite/Reserved.ReportViewerWebControl.axd?ReportSession=cmif3r55wq1irpnjw4glcsjr&ControlID=a6759610018c4899a8a88bd725aa683f&Culture=2052&UICulture=2052&ReportStack=1&OpType=SessionKeepAlive&TimerMethod=KeepAliveMethodctl00_baseBody_ReportViewerReportsTouchSession0&CacheSeed=Thu%20Jul%2002%2011%3A32%3A43%202009",
"Resource=0",
"RecContentType=text/html",
"Referer=http://10.194.159.236/PowerDemandAnalysisSite/reports/NormalReport.aspx?url=/DMISRS/MainReport",
"Snapshot=t5.inf",
"Mode=HTML", LAST);
注:ReportViewerWebControl.axd 并非一个页面,它是一个 HTTP Handler(HTTP处理程序)
回放脚本的时候,LR在这个函数处报错,错误码http404。跟开发人员沟通后,初步怀疑原因是这个被reportviewer控件调用的url参数值不能通过ie直接访问,只能通过控件来访问(这个url参数值应该就是结果报表的路径,包含有reportsession、ControlID(控件标识符)、Culture、UICulture、ReportStack等参数),所以致使LR报http404错误代码。但真正的原因是否如此?这样的问题又该如何解决?
有高手前辈指点说让我录制两次脚本,观察控件的参数值是否一致。我连续录制两次后发现果然有两个参数的值不一样:ReportSession 和 ControlID,也就是有必要在此处做手动关联。
解决方案:先去掉recording options里的enable correlation during recording选项,录制脚本后选择vuser-scan action for correlation,LR能自动筛选出需做关联的两个位置,即ReportSession 和ControlID,点击correlation
再次运行脚本,问题解决!:)
相关背景知识
http://www.cnblogs.com/1-2-3/archive/2007/09/01/877290.html 《HTTP 处理程序介绍》
http://hi.baidu.com/annleecn/blog/item/ea59b21395fd7dc6c3fd7830.html 《RDLC报表》
http://www.bitscn.com/pdb/dotnet/200904/160906.html 《VS.Net中的水晶报表的应用》
http://tieba.baidu.com/f?kz=336538956 《使用ASP.NET 2.0中的ReportViewer控件》
收藏
举报
TAG: