51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

12
返回列表 发新帖
楼主: xfunction
打印 上一主题 下一主题

[原创] 如何用Loadrunner测试查询所用时间?(急啊,在线等)

[复制链接]

该用户从未签到

21#
发表于 2008-11-7 00:17:01 | 只看该作者
你用LR来测试查询模块的性能  不就是为了测试服务器的响应时间是多少么?然后设置各种不同的场景来找出系统的瓶颈  再解决问题  

疑问就是:录制脚本的时候可以用眼睛来观察什么时候返回了查询结果,但回放脚本的时候眼睛看不到,那就需要有一个判断法则,判断什么时候系统返回了查询结果,然后计算点击按扭到结果返回这段时间,这才是真正的查询用时。
我就写51testing论坛的查询功能吧  
家里的版本是8.0的  IE是7.0录制不了  说下思路
//打开网站,点击搜索
//设置集合点
//设置事务开始
//输入查询条件,点击确定
//查询结果页面。在这里就可以设置检查点,看你的是否查询成功
//设置事务结束
从事务开始到事务结束的这段时间就是服务器的响应时间

但回放的时候不能以这个事务的响应时间作为查询响应时间,这样是不准确的,因为录制的时候,是一个用户,速度肯定快,但回放的时候是大量并发用户,查询花费的时间就长,如果再碰上网络堵塞,返回结果的时间就更长了,花费的时间肯定比录制的时候所定义的查询事务所用时间要长,这样的话你衡量原先那个事务的响应时间是没有意义的
你用LR测试大量并发用户不就是要考虑服务器、中间件以及网络等方面的瓶颈吗?至于你的响应时间并不是由你第一次录制回放的时间来决定的,而是应该由你用户能够接受的时间来决定的。或者是说用户并没有给你这样一个值,而是由你进行性能测试以后,给用户一个报告说可以5秒内给1000个用户并发进行查询(这个值是由你在场景中运行脚本,有平均响应时间得出的),然后问用户能否接受这个值,如果不能(比如说用户之能接受在3秒之内),那你就根据LR的图来分析出系统的瓶颈是在哪里,是WEB服务器还是数据库服务器还是网络或者是其他原因造成的,然后再想办法改进测试直到测试通过。
我不知道我是不是理解了你说的意思  按我的意思是这样理解的  
PS:不知道按楼主的意思  我可以上中学没有

[ 本帖最后由 x1j2l3 于 2008-11-7 00:23 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2008-11-7 13:01:55 | 只看该作者

x1j2l3 解释得很好顶

看了争论,觉得还是要和气为好.不过讨论中,有人心急,我觉得没什么. x1j2l3也很大度,解释得很清晰.
LZ应该感谢x1j2l3
我也收益不少. 因为也正准备自己动手做这样一个查询的测试.感谢大家的讨论.
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2008-11-7 20:18:27 | 只看该作者
我觉得可以设置一个时间戳,然后将该时间戳写在文件里,这样每次查询花费的时间就都可以得到了
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2008-11-8 16:39:48 | 只看该作者
看了你们两人的帖子,真晕!不知道你们两个在干什么?…………………………
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2008-11-8 17:15:35 | 只看该作者
原帖由 xfunction 于 2008-11-6 15:39 发表
这个是很常见的问题
就是用LR来测试一个查询模块的性能—— 完成某种条件的查询需要多少时间
LR提供对事务响应时间的度量,但如何定义查询事务?
疑问就是:录制脚本的时候可以用眼睛来观察什么时候返回了查询结 ...

我想先问一下,楼主是要完成什么测试目标,是要测试大量用户一起并发查询,所需要的时间;还是一个用户进行一系列的查询需要的时间。如果是要测试第一点,那么并发拖慢查询时间是必然的。如果只是要知道一个查询操作需要多少时间,那么设置场景的时候单用户运行就可以了啊,我不知道有什么好吵的!
回复 支持 反对

使用道具 举报

该用户从未签到

26#
发表于 2008-11-11 11:23:33 | 只看该作者
同意20#
回复 支持 反对

使用道具 举报

该用户从未签到

27#
发表于 2008-11-11 13:33:12 | 只看该作者
这要看查询这个操作客户端和服务器是怎么交互的。
如果客户端发送一个查询请求给服务器,服务器查询出结果后直接返回给客户端(即整个过程客户端和服务器只进行了一次交互),则不需要进行循环操作。
还有一种可能就是在查询过程中客户端和服务器进行了多次的交互,且交互的次数是不固定的,用户越多,服务器查询出结果的时间越长,交互的次数就越多,这个时候就可能要用到循环。
用我以前做的一个项目做个例子。当时测试的是个报表系统,客户端发送一个查看报表请求,服务器接受到请求后会先申请一个报表缓存,最终的报表结果将会存放在该缓存中,此时服务器会将该报表缓存的ID返回给客户端,客户端接受到报表缓存ID后,会每间隔一秒向服务器发送一次请求,读取报表缓存中的内容(每次发送的请求都是一样的),直到报表结果生成。因为录制的时候是单用户的,所以服务器查询速度较快,报表结果生成的也快,交互的次数就少,但大量用户并发执行查询时,报表结果生成就慢,交互的次数也就越多。所以没有办法在脚本中固定请求的次数。当时为了解决这个问题我就是在脚本中采用了循环的方式,但是判断结果是否生成不能采用检查点的方式,因为用检查点一旦找不到结果就会报错,退出循环了。
我当时是用关联函数从结果中取值,然后用字符串比较函数比较来判断报表是否生成的。
希望我的回复对LZ有帮助!另论坛是大家交流的地方,可以争论,可以不同意对方的观点,但最好不要互相攻击。
回复 支持 反对

使用道具 举报

该用户从未签到

28#
发表于 2008-11-11 15:44:46 | 只看该作者
实在看不下去了.潜水好久的我都要冒泡了.

还有凡事无绝对,例如单用户首次执行A查询的响应时间为5秒,
那么在连续第二次执行A查询的时候响应时间有可能是<5秒(建立在系统就单用户使用的前提条件下)在CONTROLLER中加载脚本执行多用户并发A查询的响应时间,部分用户>5秒,也有部分用户<5秒.

我们一般说"录制""回放"是在VUG中的说法.
大并发的"回放"是在CONTROLLER中.

另外,查询的性能需要分部去解决,一个查询所包含几部分响应时间:
从输入完查询条件点击按钮开始,到页面返回查询结果,中间包含C-APP,APP-DB,DB处理,DB-APP,APP-C,C的处理.这些东西每个时间都需要具体分析(如果环境复杂,且有必要的话).如果单纯考察查询的SQL语句的执行效率,那么直接编写脚本跳过APP,直接对DB加载.DB存在缓存机制,考察的SQL语句是否为常用,是否是长驻缓存,这些都需要考虑的.不能单方面的思考.

PS,我只是小学水平,我对查询只能理解到这种程度,不过我还是不理解LZ你的话的意思
回复 支持 反对

使用道具 举报

该用户从未签到

29#
发表于 2008-11-13 10:40:26 | 只看该作者
LZ描述问题真的是很不清楚,不怪别人,反倒说别人语文水平低,我是不会帮这么心胸狭窄的人的。不过#21说的还是很有道理。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2017-12-18 16:41
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    30#
    发表于 2008-11-17 16:50:50 | 只看该作者
    路过
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2008-11-18 11:08:35 | 只看该作者
    不管别人表达或者理解如何?楼主也不应该这样说吧,毕竟别人也是好意想帮你,不然谁还敢帮你啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2008-11-18 14:26:50 | 只看该作者
    录制脚本的时候可以用眼睛来观察什么时候返回了查询结果,但回放脚本的时候眼睛看不到,那就需要有一个判断法则,判断什么时候系统返回了查询结果。

    从脚本录制的角度,就是在查询请求提交后加验证,验证查询结果是否返回,用文本验证点或者关联都可以。把这个验证点也放到查询事务里。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-8-25 10:16
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    33#
    发表于 2008-11-18 14:52:48 | 只看该作者
    原帖由 026300 于 2008-11-6 16:27 发表



    性能测试的目的就是多用户状态下的系统性能,如果按照lz所说,那还做什么测试呢?

    性能测试的目的是什么呢?
    这样说俺就糊涂了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
    发表于 2008-11-20 11:46:27 | 只看该作者
    路过,不喜欢 LZ  ....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
    发表于 2008-11-20 14:14:26 | 只看该作者
    楼主的意思,是不是要确定一个零界点啊,也就是所谓的如何确定查询完成的点,你说的加文本校验就是这个意思吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
    发表于 2008-11-20 14:17:37 | 只看该作者
    补充,楼主就是要确定,从点击按钮开始到这个零界点的时间,但又不相信事务的时间是否准确
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2008-11-21 08:11:47 | 只看该作者
    我觉得这个LZ头脑有问题,别人好心帮他主意,还在这里乱叫!!人渣!!我吧整个帖子都看完了,都不知道你要干什么!!你到底要达到一个什么目的。其实你还没有明白什么是做性能测试!!!一句话:无语!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2008-11-21 10:35:02 | 只看该作者
    路过同时也关注此内帖 。 但是觉得 LZ 。。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 11:59 , Processed in 0.074903 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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