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:

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 29448
  • 日志数: 32
  • 图片数: 1
  • 书签数: 8
  • 建立时间: 2008-07-02
  • 更新时间: 2010-02-09

RSS订阅

Open Toolbar