51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3476|回复: 15
打印 上一主题 下一主题

[原创] 请问各位前辈,LoadRunner8.1怎么运行SQL语句?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-25 16:19:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位前辈,我用LR8.1,数据库用Oracle,录完一遍脚本之后,对数据库中的一条记录做了操作,使这条记录的Status变成了1,但是我回放的时候会报错,因为录制的时候数据库的这条记录的status是2,所以我执行一次update语句,使这条记录的status变成2,然后回放脚本才能成功。但是在Controller中持续运行的时候,我就没法一遍一遍的更改了,请问我该怎么操作,才能让脚本运行一次之后,执行一次update语句,从而可以持续运行?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-11-25 16:24:15 | 只看该作者
呵,这个是动态的,我也想知道
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-11-25 16:57:28 | 只看该作者
写个关联
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-11-25 17:15:18 | 只看该作者
写个关联
云层 发表于 2010-11-25 16:57


      云层前辈,您这话真是太精辟了,我回去试试,谢谢您了先
    还想顺带问下,需要在Controller里面设置连接Oracle数据库么?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-11-25 23:19:59 | 只看该作者
controller只是加监控而已,我是觉得oracle数据库性能测试没啥意义而已
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-11-26 09:10:15 | 只看该作者
controller只是加监控而已,我是觉得oracle数据库性能测试没啥意义而已
云层 发表于 2010-11-25 23:19

    其实我不是打算监控Oracle的性能,只是想问下执行Sql的时候,不用连接数据库之类的么?因为LR在测java的时候可以导入包,然后直接执行sql语句,但是LR在录制web网页的时候没法添加jar包.
   做关联的时候,手动设置的话,需要录制2遍,但是执行一遍之后,就没法执行第二遍了,因为记录的status变了,我在VuGen里面设置自动关联,但是没看出来有什么变化,sql语句应当放哪执行啊?
比如sql语句就是例如下面这个:update request_form   set ARF_STATUS_C = 2   where arf_n='20101112/04-051'
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-11-26 10:40:36 | 只看该作者
关键看你录制什么层次了,如果是Http级别的其实是你驱动中间层来实现调用数据库的
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-11-26 13:41:16 | 只看该作者
关键看你录制什么层次了,如果是Http级别的其实是你驱动中间层来实现调用数据库的
云层 发表于 2010-11-26 10:40

   B/S架构,就是web的一个网站,里面有一个更新的操作,会改变Oracle里一条记录的status,该怎么做呢?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-11-26 13:47:52 | 只看该作者
你录制对web网站的操作就行了,后面的系统的应用层会自己搞定
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-11-26 15:47:31 | 只看该作者
你录制对web网站的操作就行了,后面的系统的应用层会自己搞定
云层 发表于 2010-11-26 13:47

    在Controller里运行完一遍之后,数据库里数据的status会由2->1,界面上对应的字段有Reauest->Approved,再次运行就会报错,我只有手动执行那条语句把数据库的那条记录的status由1->2,才能再一次的运行,我现在想连续运行,在脚本里添加这条语句,让脚本执行完一次,这条sql语句也会执行一遍,从而能在Controller里连续执行,该怎么做呢?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-11-26 17:16:39 | 只看该作者
还是那句话,关联,不要处理status为2的记录,你改数据库就是违反逻辑么
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-11-26 21:57:33 | 只看该作者
回复 1# dlsc2010

解决的办法很多,但是最好先把你录制的操作的业务流程说一下,请解释一下为什么要重复执行这个操作
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2010-11-28 13:57:12 | 只看该作者
还是那句话,关联,不要处理status为2的记录,你改数据库就是违反逻辑么
云层 发表于 2010-11-26 17:16

一般情况下,确实不应当直接更改数据库里记录的状态,那就只有多用几条数据按顺序执行一遍。其实我只是希望这条数据可以重复利用,重点是怎么能在LR录制web页面的时候可以的执行sql语句,谢谢您的提示,看来我得详细的学习一下关联的内容了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2010-11-28 14:27:11 | 只看该作者
回复  dlsc2010

解决的办法很多,但是最好先把你录制的操作的业务流程说一下,请解释一下为什么要重复执 ...
PrefTest 发表于 2010-11-26 21:57

这位兄台,其实业务流程就是更新web页面的一条记录。我想重复执行这个操作,选用不同的数据可以达成目的,但是我想利用这一条数据来达到重复执行的目标。因为每执行一次更新的操作,Oracle里这条记录的status的就会由2->1,下次执行就会报错,我只有手动执行一次update的语句,把这条记录的status由1->2,才可以再次执行。现在我希望在录制为web脚本里,添加一条sql语句,让脚本每回放一次之后,执行一次sql语句,这样我在Controller里就可以连续的进行,我该怎么做呢?
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2010-11-30 20:59:09 | 只看该作者
回复 14# dlsc2010


    从精确模拟用户行为的角度看,还是应该将数据参数化,不要重用同一条数据

如果确实要这样做,办法也很多,例如:
1、在脚本中调用外部DLL,由DLL访问数据库更新数据
2、在脚本中调用System函数执行包含SQL脚本的命令行
3、在数据库中添加触发器,修改staus字段
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2010-12-7 13:40:15 | 只看该作者
回复  dlsc2010


    从精确模拟用户行为的角度看,还是应该将数据参数化,不要重用同一条数据

如果 ...
PrefTest 发表于 2010-11-30 20:59


谢谢这位兄弟,我用的就是您说的第二种方法,也参数化了数据,好使,谢谢~
至于您说的第一种和第三种方法,我希望以后会接触到,进一步学习,呵呵,谢谢~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-13 22:25 , Processed in 0.081010 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表