广交好友~~ 想要讨论的可以留下msn~~~ 希望群友网友经常能提出问题,一起解决,共同提高

LR关于线程和进程的设置问题(精彩的问答)

上一篇 / 下一篇  2009-10-19 16:07:38 / 个人分类:LR/Jmeter 大类


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

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


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

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

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

多谢!

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

答:
1.首先你应该找找,是什么原因导致停止发送数据。协助开发人员,根据日志排查,是你们系统本身的原因,还是LoadRunner的问题。

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

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

TAG:

引用 删除 13338625696   /   2018-01-25 16:19:38
-5
引用 删除 yesnnn   /   2016-03-30 15:00:28
3
 

评分:0

我来说两句

Open Toolbar