51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

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

[原创] LR关于线程和进程的设置问题,请帮忙解答

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-14 12:44:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在.net环境下 创建c# Vuser用户
完成登录服务器然后向服务器并发发送数据的功能。
1.在场景中 runtime settings里面设置为 按“线程”运行,并发十个用户
实际结果是前几个用户发送一次数据就不再发送,只有最后一个用户会一直发送数据。(程序实现的功能是一直发送数据,所以结果应该是10个用户不停的发送数据才对)
2.当在场景中 runtime settings里面设置为 按“进程”运行,并发十个用户
实际结果是10个用户会一直的发送数据,和需要的结果相符。
问题:
a. 进程和线程设置有什么本质区别吗?
b.众所周知,对于一台负载来说,按线程能产生更多的虚拟用户。所以如何修改才能让按线程并发用户的时候也可以成功呢?

请指点,不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-10-14 12:49:57 | 只看该作者
自己顶一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2009-10-14 15:26:10 | 只看该作者
    没碰到过,很新奇的问题。

    第一个场景中,其他几个用户停止发送数据的原因是什么找找看,不发送数据是失败呢??还是vuser的状态已经停止?

    可以做个日志把执行返回信息打印一下。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-12-30 10:59
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2009-10-14 16:24:08 | 只看该作者
    选择进程,场景运行时会为每一个虚拟用户创建一个进程,当以10个VU用户并发,就会在任务管理器中出现10个mmdrv进程;选择线程,则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,一个进程可以支持50VU的线程并发,使用多线程的方法能使每台负载生成器运行更多的VU,但是只有支持线程安全的协议,才能使用LR的VU并发方式,这种方式的运行效率更高,能造成更大的压力。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2009-10-14 16:30:57 | 只看该作者

    回复 3# 的帖子

    版主出来了,激动啊!

    Vuser用户没有停止,一直在run,但是就是发不出数据。
    出现错误的原因可能和线程有关。
    原因:1.在程序代码中只要一使用线程(一个Vuser想模拟出多个用户),在场景里面就无法正确运行程序代码,一眨眼都结束了,线程设置的运行时间都无效。
          2.我看了论坛上有人说loadrunner上分线程安全的协议和线程不安全的协议(但是对这不了解,迷迷糊糊的。)
          3.runtime settings设置为线程运行 场景运行就出错(如题)

    出现的问题和线程都有些关系,但是就是不知道问题在哪里,郁闷啊!

    另:目前要测试的软件并发用户数估计要上万,但现在不能使用多线程,也没有并发数很多的licenses(最大才500,还要改系统时间,貌似改了之后只能注册,但打不开场景,所以能用的只有100个Vuser的licenses(Global)),请问qiguojie斑竹,有什么方案可以完成这个测试呢?

    多谢!

    注:1. C/S架构
        2. 调用有其它的c++ DLL文件

    [ 本帖最后由 yefeng312 于 2009-10-14 17:20 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2009-10-14 16:33:56 | 只看该作者
    原帖由 iori 于 2009-10-14 16:24 发表
    选择进程,场景运行时会为每一个虚拟用户创建一个进程,当以10个VU用户并发,就会在任务管理器中出现10个mmdrv进程;选择线程,则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,一个进程可 ...


    学习了~~~

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2009-10-14 21:37:47 | 只看该作者
    1.首先你应该找找,是什么原因导致停止发送数据。协助开发人员,根据日志排查,是你们系统本身的原因,还是LoadRunner的问题。

    2.关于license的问题,网上还流传有一个1000license的,搜搜看。

    3.如果使用进程能解决问题,就用进程呗。这样你可能要多准备几台负载机。何必为自己过不去呢??想开点,事情就过去了。呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2009-10-15 09:27:44 | 只看该作者
    原帖由 taijizongshi 于 2009-10-14 21:37 发表
    1.首先你应该找找,是什么原因导致停止发送数据。协助开发人员,根据日志排查,是你们系统本身的原因,还是LoadRunner的问题。

    2.关于license的问题,网上还流传有一个1000license的,搜搜看。

    3.如果使用进程 ...


    经过你的指点,找到Global-1000Vuser的序列号,已成功注册。多谢!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-7 20:09 , Processed in 0.073787 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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