LR关于线程和进程的设置问题,请帮忙解答
在.net环境下 创建c# Vuser用户完成登录服务器然后向服务器并发发送数据的功能。
1.在场景中 runtime settings里面设置为 按“线程”运行,并发十个用户
实际结果是前几个用户发送一次数据就不再发送,只有最后一个用户会一直发送数据。(程序实现的功能是一直发送数据,所以结果应该是10个用户不停的发送数据才对)
2.当在场景中 runtime settings里面设置为 按“进程”运行,并发十个用户
实际结果是10个用户会一直的发送数据,和需要的结果相符。
问题:
a. 进程和线程设置有什么本质区别吗?
b.众所周知,对于一台负载来说,按线程能产生更多的虚拟用户。所以如何修改才能让按线程并发用户的时候也可以成功呢?
请指点,不胜感激! 自己顶一下 没碰到过,很新奇的问题。
第一个场景中,其他几个用户停止发送数据的原因是什么找找看,不发送数据是失败呢??还是vuser的状态已经停止?
可以做个日志把执行返回信息打印一下。 选择进程,场景运行时会为每一个虚拟用户创建一个进程,当以10个VU用户并发,就会在任务管理器中出现10个mmdrv进程;选择线程,则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,一个进程可以支持50VU的线程并发,使用多线程的方法能使每台负载生成器运行更多的VU,但是只有支持线程安全的协议,才能使用LR的VU并发方式,这种方式的运行效率更高,能造成更大的压力。
回复 3# 的帖子
版主出来了,激动啊!:lolVuser用户没有停止,一直在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 编辑 ] 原帖由 iori 于 2009-10-14 16:24 发表 http://bbs.51testing.com/images/common/back.gif
选择进程,场景运行时会为每一个虚拟用户创建一个进程,当以10个VU用户并发,就会在任务管理器中出现10个mmdrv进程;选择线程,则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,一个进程可 ...
学习了~~~
:lol :handshake 1.首先你应该找找,是什么原因导致停止发送数据。协助开发人员,根据日志排查,是你们系统本身的原因,还是LoadRunner的问题。
2.关于license的问题,网上还流传有一个1000license的,搜搜看。
3.如果使用进程能解决问题,就用进程呗。这样你可能要多准备几台负载机。何必为自己过不去呢??想开点,事情就过去了。呵呵 原帖由 taijizongshi 于 2009-10-14 21:37 发表 http://bbs.51testing.com/images/common/back.gif
1.首先你应该找找,是什么原因导致停止发送数据。协助开发人员,根据日志排查,是你们系统本身的原因,还是LoadRunner的问题。
2.关于license的问题,网上还流传有一个1000license的,搜搜看。
3.如果使用进程 ...
经过你的指点,找到Global-1000Vuser的序列号,已成功注册。多谢!
页:
[1]