51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6425|回复: 7
打印 上一主题 下一主题

[原创] Run Vuser as a thread和Run Vuser as a process的困惑

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2007-8-2 13:47:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
各位tx,小弟遇到一个关于脚本的问题,希望哪位大侠帮忙解决一下.

小弟写了个java的脚本,在controller里跑,如果Vugen里设置Run Vuser as a thread,跑的时候会报错(Error: java.lang.NoClassDefFoundError),但是如果改成process,跑的时候就好了.

能不能指点一下是为什么啊?

谢谢.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-8-3 11:35:04 | 只看该作者
谢谢楼上tx的回答先.
可是怎么解释在controller里面跑会报错呢.设置成thread的时候会报错,但是设置成process就好了.在controller里面只用了1个vuser跑.
而且如果用Vugen跑的话两种模式都可以过.

confusing......sdlkfj9
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2007-8-2 18:30:30 | 只看该作者
    再谈按线程运行VUSER和按进程运行VUSER的区别
    1. 按线程运行VUSER,LR默认情况下,每50个用户开启一个进程mmdrv.exe;controller场景运行结束,进程mmdrv.exe也会相应结束;
    2. 按进程运行VUSER,系统为每1个用户开启一个进程mmdrv.exe;controller场景运行结束,进程mmdrv.exe也会相应结束;

    大家可以做个试验, 在Runtime setting中设置为按线程运行VUSER,设置Controller中的虚拟用户数小于等于50的话,打开windows资源管理器可以看到有一个进程mmdrv.exe; 设置Controller中的虚拟用户数为51的话,打开windows资源管理器可以看到有两个进程mmdrv.exe; 按照50的倍数依次类推.................

    在Runtime setting中设置为按进程程运行VUSER,设置Controller中的虚拟用户数10的话,打开windows资源管理器可以看到有10个进程mmdrv.exe;设置Controller中的虚拟用户数20的话,打开windows资源管理器可以看到有20个进程mmdrv.exe; 多少个虚拟用户数,就会有多少个进程,依次类推......................
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-8-2 18:29:52 | 只看该作者
    我们也遇到了同样的问题,有哪位可以给出答案阿?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-8-2 18:12:18 | 只看该作者
    原帖由 shevahimhim 于 2007-8-2 13:47 发表
    各位tx,小弟遇到一个关于脚本的问题,希望哪位大侠帮忙解决一下.

    小弟写了个java的脚本,在controller里跑,如果Vugen里设置Run Vuser as a thread,跑的时候会报错(Error: java.lang.NoClassDefFoundError),但是 ...



    我觉得如果设置为:run vuser as process容易出问题。 请看以下的简单分析:

    controller使用驱动程序来运行vuser,如果按进程运行每个VUSER,则对于每个vuser, 在循环的过程中不断的加载同一个驱动程序到内存中。同样的驱动程序加载到内存中,会大量占用ram以及其他系统的资源。 从而影响了在负载生成器上的虚拟的用户数。(例如:本来可以模拟1000个用户的,由于内存大量被占用,最终只能模拟少于1000个虚拟用户的数量)。

    但是如果按照线程运行每个VUSER, 则情况就不一样了。在默认情况下, controller为50个vusers开启一个驱动程序进程。这50个虚拟用户按照线程运行,共享父驱动程序的内存。 从而大大减少了内存的消耗,使得节省下来的内存LR可以运行更多的VUSERS.

    ----------分析来自LR8.2中文帮助
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2007-8-2 14:19:00 | 只看该作者
    没有诀窍啊,46不正常吗?sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-8-2 13:54:01 | 只看该作者
    guanzhuzhong
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1#
    发表于 2007-8-2 13:49:28 | 只看该作者
    关注ing.........  顺便问下 楼主帖子6 怎么积分可以达到46呢 sdlkfj8 有什么诀窍

    [ 本帖最后由 haiquan180 于 2007-8-2 13:51 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-22 20:58 , Processed in 0.086365 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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