51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5538|回复: 14
打印 上一主题 下一主题

[原创] 使用loadrunner并发和使用代码多线程并发的区别?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-28 09:55:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
又有问题了,请大家多多指教!
有一套系统,客户端登录之后,不停的发数据给服务器。
现在要测试并发数据客户端不丢包时的最大值,有下列方案:
1.使用脚本直接编写收发代码,然后用lr多进程并发
2.不使用lr,直接写代码多线程模拟并发
问题:
1.如果使用两者测出的最大并发结果不一致,请问哪种方案更符合实际?
2.使用代码多线程时一台电脑就可以模拟几千客户端,使用lr进程并发一台电脑才可以模拟200左右,请问这两种方案的各自优势和劣势?
请有经验的前辈指教,不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
发表于 2009-10-29 14:44:17 | 只看该作者
学习 学习
回复 支持 0 反对 1

使用道具 举报

该用户从未签到

2#
发表于 2009-10-28 11:53:25 | 只看该作者
在保证各项性能指标都能监控的情况下,建议选择后者。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-10-28 12:14:32 | 只看该作者

回复 2# 的帖子

能不能说的具体点?
我怀疑使用多线程并发(一个线程发,一个线程收,一个处理客户端)并不能真正做到并发,
假如5000个并发,在多线程下是否能保证每个客户端均等的给服务器施加压力?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-10-28 13:23:54 | 只看该作者
你测试的根本目的是什么,“有一套系统,客户端登录之后,不停的发数据给服务器,现在要测试并发数据客户端不丢包时的最大值”。

不需要每个客户端都均等的给服务器压力吧,受各种因素的影响,无论你怎样设计,在同一时间,每个客户端给服务器造成的压力肯定是存在差异的。实际使用过程中更不会有均等情况。还有就是你这里说的并发我理解应该“5000个客户端都在活动,都在给服务器发送数据”。如果是,那么在服务器端应该可以验证当前活动的客户端数量,如果不能验证的话请让开发帮你输出这个值~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-10-28 14:38:38 | 只看该作者

回复 4# 的帖子

呵呵,是我说的不够清楚。
根本目的就是保证客户端和服务器之间通信在不丢包的情况下,最大的并发数。
比如,最大并发是5000(每1秒发一次数据),那就是说5000个客户端同时以1秒1次的隔间给服务器发数据,服务器要保证能收到所有的包。
我的问题是 使用线程并发是否 能保证5000个用户是并发的?(比如设置每个客户端发3600条数据就结束,1秒1次的频率,那么总共需要1小时。但是使用多线程,并发5000,全部发完3600条数据后花费的时间会不会大于1小时?)
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-10-28 15:36:19 | 只看该作者
建议考虑以下几个问题:
1、License的问题:我理解你这个系统应该是C/S结构。目前市面上破解的C/S的License只有100个。
你需要用50个Control机器。资源上你有吗?或者你公司买了5000的License。
2、性能指标的问题:建议统计服务器的TPS(1秒钟服务器最大可以处理的交易数)。这样的话你用LR去测试,100个用户并发不带思考时间。
3、LR的监控性能指标的优势。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-10-28 15:51:48 | 只看该作者

回复 6# 的帖子

1. 现在已有1000个global的licecse
2. 貌似无法得到服务器TPS值,只有服务器的接口,只能监控服务器资源。
3. 使用多线程也可以用另一台机器搞一个空脚本监控服务器性能指标。
可能我的问题不好回答
我只是想知道,那一种方式更能模拟出真实的使用情况。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-10-29 10:48:55 | 只看该作者
再顶一次~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-10-29 11:28:30 | 只看该作者
原帖由 yefeng312 于 2009-10-28 15:51 发表
1. 现在已有1000个global的licecse
2. 貌似无法得到服务器TPS值,只有服务器的接口,只能监控服务器资源。
3. 使用多线程也可以用另一台机器搞一个空脚本监控服务器性能指标。
可能我的问题不好回答
我只是想知道 ...


建议你还是使用LR。
客户端发送给服务端数据后,应该有成功或者失败的标志吧?假如有的话,就用LR给你统计的TPS值。
其实两种方法并无优劣,达到目标就行。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-10-29 11:38:02 | 只看该作者
都可行。建议LZ两种方法就做。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2009-10-29 15:38:16 | 只看该作者
多谢大家回答
两种方式我都试一试!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2009-10-29 17:25:41 | 只看该作者
我曾经也实施过一次针对中间件系统的性能测试,当时也是苦于没有足够的lr的license,以及无法通过录制方式来模拟,只能通过开发多线程压力工具进行测试,有几点感受哈
1、采用多线程方式确实无法达到严格意义的并发,没有lr集合的效果好,只有加快建立多线程和发送的速度来靠近并发;
2、我们当时客户端基于windows,放开tcp连接后最大pc可以达到7000个左右的线程,但肯定和机器的硬件的cpu和内存有关了;
3、压力是能够造起的,具体有多少并发可以通过服务器那边查看,或者近似客户端发起的多线程数;
4、通过lr同步进行监控,效果不错。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2009-10-29 18:35:28 | 只看该作者

回复 13# 的帖子

学习了!
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2009-10-29 20:46:07 | 只看该作者
可以用一种很bt的方法,压力创建的连接全部创建完后,再开始发送,似乎类似集合点。

LR得到的数据真的那么可信吗?  性能测试的目的到底是什么呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-7 22:17 , Processed in 0.106609 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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