51Testing软件测试论坛

标题: 在使用LOADRUNNER读取数据库内容并保存为excel表,遇到困难 [打印本页]

作者: inksong    时间: 2009-9-28 09:51
标题: 在使用LOADRUNNER读取数据库内容并保存为excel表,遇到困难
现在对一个系统的下载功能做压力测试
该下载功能是当点击下载按钮后,从数据库读出数据,然后再组织到excel表里,数据是即时的,并不是以往存在一个固定的服务器里的excel文件。
如图所示
可以有几种选择下载服务器,当选择完毕后,点“导出到excel”按钮后,数据先从数据库里读出来,然后组织到excel表里

现在我遇到的问题是:
loadrunner工具无法做到的事:
第一:脚本无法录制这一系列的动作
第二:脚本无法录制弹出的windows对话框的动作

在线等答案,谢谢!
作者: inksong    时间: 2009-9-28 10:00
自己先顶一下
版主在吗,在的话能指点下吗
这个问题问过很多人,没有一个能完全解答的
谢谢大家支持下
作者: inksong    时间: 2009-9-28 10:01
怎么到现在都没个人看下啊

大家要多看难问题,老是看简单的没意义啊

永远都是下一大堆的入门资料,永远都是入门级人物
作者: inksong    时间: 2009-9-28 10:06
51testing有没牛人啊

出来冒个泡啊!~~
作者: inksong    时间: 2009-9-28 10:14
都是些遇到难点不敢啃声的

51testing都没个牛人?
作者: inksong    时间: 2009-9-28 10:14
真几把烂!
作者: Oilio    时间: 2009-9-28 10:46
LR确实没办法做到这一系列动作的录制。

我觉得可以这样做:
用QTP录制这个过程,形成脚本。然后在LR中调用这个QTP脚本。
---------------------------------------------------------------------------------
http://bbs.51testing.com/thread-89788-1-1.html
可以调用的
1、打开controller
2、“Browse...”中选择你要调用的QTP文件(.usr格式的)“Add==〉”到有点的框框中“Scripts in Scenario”中
3、其余的步骤跟LR文件的一样
-------------------------------------------------------------------------------------------

不过我也没试过。
作者: inksong    时间: 2009-9-28 11:00
xiexie
我去试试
作者: inksong    时间: 2009-9-28 11:03
有意义吗,我刚式了
作者: bluejay    时间: 2009-9-28 11:06
点击导成EXCEL按钮是没有办法在LR上进行录制的,获取页面信息不可以吗?
作者: bluejay    时间: 2009-9-28 11:09
web_reg_save_param("ALL", "LB=", "RB=", "SEARCH=BODY", LAST);
然后使用打开,写入,关闭 函数,不可以成功?
作者: Oilio    时间: 2009-9-28 11:42
"Edit Recording Option"-->"Advanced"--->"Recording Schemes"--->"Non-Resources..."
添加“application/vnd.ms-excel”这个类型,这样的话所有的xls请求都会单独地被web_url函数录制到了。
试了一下,可以。
作者: bluejay    时间: 2009-9-28 12:42
楼上的方法可行吗?我试了下貌似不可以。
作者: inksong    时间: 2009-9-28 15:01
把内容看清楚再说
作者: inksong    时间: 2009-9-28 15:09
12楼的oilio,我按你说的办法

回放不出错。脚本可以录制下来

但是如果我是并发的,比如50个同事下载

那么我在场景里加50个用户模拟,那么同时并发后,50个下载文件怎么处理
作者: Oilio    时间: 2009-9-28 15:25
负责任的告诉你说,LR不是QTP,所以它无法完成这些基于GUI界面操作动作的录制。
(确实无法做到)请你先去想下LR脚本的录制原理。
loadrunner工具无法做到的事:
第一:脚本无法录制这一系列的动作。
第二:脚本无法录制弹出的windows对话框的动作。

那么这一系列动作的目的是什么呢?
无非是向服务器发这样一个URL请求,即这个excel文件的下载地址,然后服务器返回你的下载要求。所以你依照上面的设置好,然后录制:自己手动点击那些对话框完成下载作业。LR录制下的脚本为:web_url("stepname","url=http://xxxx.xxx/xxx.xls",last);
作者: inksong    时间: 2009-9-28 15:30
web_submit_data("export2Excel.output.d",
                "Action=http://localhost:8088/ReservoirMISV3.0/dorado/export2Excel.output.d",
                "Method=POST",
                "RecContentType=application/vnd.ms-excel",
                "Referer=http://localhost:8088/ReservoirMISV3.0/sk/jbzldc/skmldc/rsminlu.jsp?DiscrictCode=420000&XZQHDM=420000&LocalityLevel=1",
                "Snapshot=t53.inf",
                "Mode=HTTP",
                ITEMDATA,
                "Name=_viewInstanceId", "Value=cjw.nic.sk.jbzldc.skmldc.view.Rsminlu~cjw.nic.sk.jbzldc.skmldc.view.RsminluViewModel", ENDITEM,
                "Name=_dataset", "Value=dsRsminlu", ENDITEM,
                "Name=_datasetType", "Value=wrapper", ENDITEM,
                "Name=_dataMode", "Value=server-all", ENDITEM,
                "Name=_pageSize", "Value=20", ENDITEM,
                "Name=_pageIndex", "Value=1", ENDITEM,
                "Name=_maxRow", "Value=0", ENDITEM,
                "Name=_fileName", "Value=姘村簱鍚嶅綍.xls", ENDITEM,
                "Name=_pattern", "Value=<excel><ps><p name=\"DiscrictCode\">420000</p><p name=\"subDiscrictCode\">42____</p></ps><t sf=\"0\"><c label=\"%u6C34%u5E93%u540D%u79F0\" field=\"rsname\"/><c label=\"%u6C34%u5E93%u7C7B%u578B\" field=\"rstype\"/><c label=\"%u6C34%u5E93%u6240%u5728%u5730\"><c label=\"%u6240%u5728%u7701\" field=\"localprovince\"/><c label=\"%u6240%u5728%u5E02\" field=\"localcity\"/><c label=\"%u6240%u5728%u53BF\" field=\"localcounty\"/></c><c label=\"%u7BA1%u7406%u5355%u4F4D\" field=\""
                "rsmanagerunit\"/></t><dicts/></excel>\r\n", ENDITEM,
                LAST);

        return 0;
作者: inksong    时间: 2009-9-28 15:31
上面是我点导出按钮后得到的
作者: Oilio    时间: 2009-9-28 18:46
再看看你的图片,是提交的表单没错。表单提交后,服务器返回的应该就是按表单描叙的方式组织的excel文件吧。
在replay log里查看下,web_submit_data("export2Excel.output.d"), body的大小应该和你下载的文件一致。
作者: inksong    时间: 2009-9-29 14:57
我在回放日志里没看到web_submit_data("export2Excel.output.d"), body这个啊
作者: inksong    时间: 2009-9-29 15:01
Starting action Action1.
Action1.c(6): Rendezvous excel_out
Action1.c(8): web_submit_data("export2Excel.output.d") was successful, 0 body bytes, 190 header bytes          [MsgId: MMSG-26386]
Ending action Action1.

怎么是成功的,但是是0body啊
作者: 断寒    时间: 2009-9-29 15:24
标题: 看了这么多,忍不住想说两句.
1.LZ请端正请教问题的态度.
2.进入正题
1)请明确测试目的
"现在对一个系统的下载功能做压力测试"我倒觉得这个功能不能是完全意义上的下载功能,倒像是对APP端数据归集这个功能(操作)做压力测试.
2)请分清楚你脚本的目的
目的应该是模拟客户端发起请求,集中让APP响应操作,并把数据传输到客户端
3)请分清楚哪些操作是服务器端的,哪些操作是客户端的
从现有的情况我来分析一下这个操作的具体过程,可能是错的,仅供参考
a.客户端选择条件,对服务器端发起请求,客户端同时生成一个excel对象
b.服务器端接受请求,并按照请求(可能是类似sql一样的查询请求)进行操作,并归集请求结果
c.服务器端将请求的执行结果填充到客户端的excel对象中.
d.客户端的excel对象保存并关闭该对象.
4)你认为LR无法录制"弹出的windows对话框的动作"这个是对的,这个是客户端的事情与服务器端无交互,你当然录不下来,就算是录下来了,有意义吗,你的目的是对服务器进行加压.
多的不想说了,自己想办法吧,无趣的很.
作者: 断寒    时间: 2009-9-29 15:30
原帖由 inksong 于 2009-9-28 15:30 发表
web_submit_data("export2Excel.output.d",
                "Action=http://localhost:8088/ReservoirMISV3.0/dorado/export2Excel.output.d",
                "Method=POST",
                "RecContentType=application/vnd.ms-excel",
                "Refere ...


都能录制到这个操作了,我实在是想不通,你还要干什么.
保存操作是客户端单方面的操作,这一步操作与服务器端一点交互都没有(没有交互录制不了),对服务器端无任何压力,
这个一系列操作当服务器端将数据完全传递到excel中之后,所有的交互就结束了.

[ 本帖最后由 断寒 于 2009-9-29 15:34 编辑 ]
作者: lijian422202    时间: 2009-9-29 16:00
看了这么多,还好我忍住了。。那就不说了
作者: GeorgeWangLC    时间: 2009-10-11 23:09
问之前,还是要分清楚逻辑的;
否则,大家一头雾水,不能正确提供帮助
作者: julyzd123    时间: 2014-11-24 15:38
LZ解决了吗?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2