51Testing软件测试论坛

标题: 使用loadrunner并发和使用代码多线程并发的区别? [打印本页]

作者: yefeng312    时间: 2009-10-28 09:55
标题: 使用loadrunner并发和使用代码多线程并发的区别?
又有问题了,请大家多多指教!
有一套系统,客户端登录之后,不停的发数据给服务器。
现在要测试并发数据客户端不丢包时的最大值,有下列方案:
1.使用脚本直接编写收发代码,然后用lr多进程并发
2.不使用lr,直接写代码多线程模拟并发
问题:
1.如果使用两者测出的最大并发结果不一致,请问哪种方案更符合实际?
2.使用代码多线程时一台电脑就可以模拟几千客户端,使用lr进程并发一台电脑才可以模拟200左右,请问这两种方案的各自优势和劣势?
请有经验的前辈指教,不胜感激!
作者: guiyi123    时间: 2009-10-28 11:53
在保证各项性能指标都能监控的情况下,建议选择后者。
作者: yefeng312    时间: 2009-10-28 12:14
标题: 回复 2# 的帖子
能不能说的具体点?
我怀疑使用多线程并发(一个线程发,一个线程收,一个处理客户端)并不能真正做到并发,
假如5000个并发,在多线程下是否能保证每个客户端均等的给服务器施加压力?
作者: guiyi123    时间: 2009-10-28 13:23
你测试的根本目的是什么,“有一套系统,客户端登录之后,不停的发数据给服务器,现在要测试并发数据客户端不丢包时的最大值”。

不需要每个客户端都均等的给服务器压力吧,受各种因素的影响,无论你怎样设计,在同一时间,每个客户端给服务器造成的压力肯定是存在差异的。实际使用过程中更不会有均等情况。还有就是你这里说的并发我理解应该“5000个客户端都在活动,都在给服务器发送数据”。如果是,那么在服务器端应该可以验证当前活动的客户端数量,如果不能验证的话请让开发帮你输出这个值~
作者: yefeng312    时间: 2009-10-28 14:38
标题: 回复 4# 的帖子
呵呵,是我说的不够清楚。
根本目的就是保证客户端和服务器之间通信在不丢包的情况下,最大的并发数。
比如,最大并发是5000(每1秒发一次数据),那就是说5000个客户端同时以1秒1次的隔间给服务器发数据,服务器要保证能收到所有的包。
我的问题是 使用线程并发是否 能保证5000个用户是并发的?(比如设置每个客户端发3600条数据就结束,1秒1次的频率,那么总共需要1小时。但是使用多线程,并发5000,全部发完3600条数据后花费的时间会不会大于1小时?)
作者: aishifu1    时间: 2009-10-28 15:36
建议考虑以下几个问题:
1、License的问题:我理解你这个系统应该是C/S结构。目前市面上破解的C/S的License只有100个。
你需要用50个Control机器。资源上你有吗?或者你公司买了5000的License。
2、性能指标的问题:建议统计服务器的TPS(1秒钟服务器最大可以处理的交易数)。这样的话你用LR去测试,100个用户并发不带思考时间。
3、LR的监控性能指标的优势。
作者: yefeng312    时间: 2009-10-28 15:51
标题: 回复 6# 的帖子
1. 现在已有1000个global的licecse
2. 貌似无法得到服务器TPS值,只有服务器的接口,只能监控服务器资源。
3. 使用多线程也可以用另一台机器搞一个空脚本监控服务器性能指标。
可能我的问题不好回答
我只是想知道,那一种方式更能模拟出真实的使用情况。
作者: yefeng312    时间: 2009-10-29 10:48
再顶一次~~~~
作者: aishifu1    时间: 2009-10-29 11:28
原帖由 yefeng312 于 2009-10-28 15:51 发表
1. 现在已有1000个global的licecse
2. 貌似无法得到服务器TPS值,只有服务器的接口,只能监控服务器资源。
3. 使用多线程也可以用另一台机器搞一个空脚本监控服务器性能指标。
可能我的问题不好回答
我只是想知道 ...


建议你还是使用LR。
客户端发送给服务端数据后,应该有成功或者失败的标志吧?假如有的话,就用LR给你统计的TPS值。
其实两种方法并无优劣,达到目标就行。
作者: bluejay    时间: 2009-10-29 11:38
都可行。建议LZ两种方法就做。
作者: kuangquanshui    时间: 2009-10-29 14:44
学习 学习
作者: yefeng312    时间: 2009-10-29 15:38
多谢大家回答
两种方式我都试一试!
作者: hl1018    时间: 2009-10-29 17:25
我曾经也实施过一次针对中间件系统的性能测试,当时也是苦于没有足够的lr的license,以及无法通过录制方式来模拟,只能通过开发多线程压力工具进行测试,有几点感受哈
1、采用多线程方式确实无法达到严格意义的并发,没有lr集合的效果好,只有加快建立多线程和发送的速度来靠近并发;
2、我们当时客户端基于windows,放开tcp连接后最大pc可以达到7000个左右的线程,但肯定和机器的硬件的cpu和内存有关了;
3、压力是能够造起的,具体有多少并发可以通过服务器那边查看,或者近似客户端发起的多线程数;
4、通过lr同步进行监控,效果不错。
作者: yefeng312    时间: 2009-10-29 18:35
标题: 回复 13# 的帖子
学习了!

作者: shanxi    时间: 2009-10-29 20:46
可以用一种很bt的方法,压力创建的连接全部创建完后,再开始发送,似乎类似集合点。

LR得到的数据真的那么可信吗?  性能测试的目的到底是什么呢?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2