dominic 发表于 2007-12-10 10:14:46

不支持并发的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:01

如果服务器不支持并发,哪还进行性能测试有什么意义?

哪就一个一个处理呗

[ 本帖最后由 兰色犹豫 于 2007-12-10 12:34 编辑 ]

dominic 发表于 2007-12-10 16:36:52

虽然服务器不支持对同一对象的并发操作(操作时须锁定该对象);但服务器支持对不同对象的并发操作,即只要操作的对象不一样,没有锁定问题即可。这就要求脚本中每个vuser选择操作的对象必须不同,如果是创建对象到还好办,随机生成,但如果是修改,问题就麻烦了,怎么把对象的编号通过vuser指定,然后再替换脚本中对象的引用?

nocturn9 发表于 2007-12-10 17:13:29

把VUER的动作抽象出来,具体的行为通过参数来替代进去.

dominic 发表于 2007-12-10 18:04:55

楼上,可否详细点?举个简单的例子说明一下?

例如关键参数productID唯一代表一个product,该productID在script中是个参数,我怎么能指定Vuser使用不同的productID? 现在是在script的开始部分定义productID的值。

zhangfengqun1 发表于 2012-12-3 16:46:42

楼上问题解决没有,我也要到你同样的问题了!

aspstar 发表于 2012-12-4 11:16:07

呵呵,有一种东西就参数化,如果你希望每个vuser在运行过程中使用不同的参数,可以在参数属性里设备unique,once,这样,同一个vuser会反复运行同一个参数,其它vuser可以运行各自的参数就不会冲突了。
页: [1]
查看完整版本: 不支持并发的C/S程序如何测试性能?