tingyu567 发表于 2010-6-29 15:46:51

如何设计不同用户登录后对某一功能点的并发问题

不同用户登录系统后,在“生成订单”时同时并发,现在的程序设计是同一用户不能在“生成订单”时并发,必须是不同用户到达“生成订单”时才能并发。
假设要模拟要10个真实用户在“生成订单”时同时并发,这个脚本和场景该如何实现

我的问题:从登录开始到生成订单前的操作是放在init里,还是放在“生成订单”的同一个Action里?
1)如果放在init里的话,那这段脚本只执行一次,也就是说实际上只有一个真实用户登录进来了,虽然我用了for循环,但是并没有循环,编译时也没发生错误;
2)如果放在Action里的话,在场景运行过程中,可以看到每一个虚拟用户是对那10个真实用户不断跌代的。

所以我怀疑这个需求能否用LR实现,论坛里如有人知道如何设计这个脚本和场景的话,恳请指教!!!!

我在初始化里使用的循环结构
int i;
Vuser_init{
for(i=0;i<10;i++){
.......
.......
}
}

MYMREMIND 发表于 2010-6-29 16:20:41

回复 1# 的帖子

放在action里面,然后将登陆用户账号参数化,参数化属性设置为:Sequential    once,场景控制中设置10个Vuser,调整一下设置。个人觉得可以在该功能点前设置一集合点,我也刚使用LR没多久,希望可以互相学习!

tttrrryyy 发表于 2010-6-29 17:03:55

放Action
参数化,unique,once
集合点
楼上用Once可以让一个虚拟用户多次循环时使用同样的用户名
但Sequential解决不了多个虚拟用户使用同样用户名的问题

jadeyu712 发表于 2010-6-29 17:29:41

同意2楼

tingyu567 发表于 2010-6-30 15:48:57

谢谢楼上几位的支持与关注,我试了下,用unique + once是可以的,另外用unique + each occurrence + continue with last value + allocat 1 values for each other也可以。其它组合方式都不行。

tingyu567 发表于 2010-6-30 15:59:48

补充一下,我之所以用unique + each occurrence + continue with last value + allocat 1 values for each other组合,是因为我的参数列表里的参数个数大于10,否则没有意义

zengli80 发表于 2010-6-30 16:00:26

如果把登陆放在init里,然后参数化,设置10个用户并发,不是10个用户同时登陆吗?

zengli80 发表于 2010-6-30 16:07:13

lz,能说说你服务器和负载机的配置吗?你测试登陆的响应时间是多少?
我不论测试什么程序,1个用户响应时间正常,10个并发就很慢了,不知到为什么,所有想看看你的测试结果如何?

测试环境:
1、CPU: Pentium Dual-Core CPU E5300 2.6GHz
      内存:4GB
2、windows 2003 server,oracle 10g
3、应用程序和数据库在一起

测试场景:
1、录制登陆操作,计算输入用户名和密码后,从点击登陆到首页完全显示所花费的时间
2、先测试用1个用户的情况,用了9秒;然后用5个用户并发,设置运行完就结束,用了20秒

tingyu567 发表于 2010-6-30 23:16:42

回复 7# 的帖子

init只运行一次,即使参数化了,也只取了一个参数值,这个用户是真实用户,场景里设置的是虚拟用户,这两者不能混为一团

tingyu567 发表于 2010-6-30 23:22:46

回复 8# 的帖子

你一个用户就用了9秒钟,这个时间不正常,一般来说3秒钟,你的事务里是不是有think time没有注销掉,你的服务器环境蛮好的呀,要不你把你的脚本放上来看看。

Littlebean 发表于 2010-7-22 23:29:42

:) :)
页: [1]
查看完整版本: 如何设计不同用户登录后对某一功能点的并发问题