51Testing软件测试论坛

标题: 不支持并发的C/S程序如何测试性能? [打印本页]

作者: dominic    时间: 2007-12-10 10:14
标题: 不支持并发的C/S程序如何测试性能?
我所知道的LR的测试原理大致如下:(对C/S模式的程序,不是B/S模式的程序)
1,按选定的网络通讯协议,向服务器发送指定的数据包;
2,获取从服务器返回的数据包;
3,计算时间。

现在我有个问题很疑惑,请高手指点:
如果申请多个Vuser,执行上述第一步骤,如果服务器支持并发,则不同的请求会排队等待回应;如果服务器不支持并发(例如发送的数据包中服务器需要锁定对象进行操作,其他需要使用这个对象的请求必须等待前一次的锁定释放),申请多个Vuser是不是没有意义?因为第2个vuser的请求必须等第一个vuser释放请求的资源后才能进行。

对这种情况,我初步的想法是不同的vuser操作不同的对象,由于对象是在脚本中指定,也就是说不同的vuser指定不同的脚本,想来好像可行,但如果100个vuser,难道要写相似的脚本100次?什么地方可以对脚本本身参数化?也就是如果vuser可以指定某个参数,该参数被替换到脚本中,这样只需要写一套脚本就可以了。不知道有没有朋友有相关经验?指点指点
作者: 兰色犹豫    时间: 2007-12-10 12:30
如果服务器不支持并发,哪还进行性能测试有什么意义?

哪就一个一个处理呗

[ 本帖最后由 兰色犹豫 于 2007-12-10 12:34 编辑 ]
作者: dominic    时间: 2007-12-10 16:36
虽然服务器不支持对同一对象的并发操作(操作时须锁定该对象);但服务器支持对不同对象的并发操作,即只要操作的对象不一样,没有锁定问题即可。这就要求脚本中每个vuser选择操作的对象必须不同,如果是创建对象到还好办,随机生成,但如果是修改,问题就麻烦了,怎么把对象的编号通过vuser指定,然后再替换脚本中对象的引用?
作者: nocturn9    时间: 2007-12-10 17:13
把VUER的动作抽象出来,具体的行为通过参数来替代进去.
作者: dominic    时间: 2007-12-10 18:04
楼上,可否详细点?举个简单的例子说明一下?

例如  关键参数productID唯一代表一个product,该productID在script中是个参数,我怎么能指定Vuser使用不同的productID? 现在是在script的开始部分定义productID的值。
作者: zhangfengqun1    时间: 2012-12-3 16:46
楼上问题解决没有,我也要到你同样的问题了!
作者: aspstar    时间: 2012-12-4 11:16
呵呵,有一种东西就参数化,如果你希望每个vuser在运行过程中使用不同的参数,可以在参数属性里设备unique,once,这样,同一个vuser会反复运行同一个参数,其它vuser可以运行各自的参数就不会冲突了。




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