51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2844|回复: 9
打印 上一主题 下一主题

[求助] 关于并发的问题 web_concurrent_start 和 lr_rendezvous

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-5-5 17:27:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
web_concurrent_start  和web_concurrent_end  之间的请求可以一次性并发,这是我之前了解到的。

集合点rendezvous,也可以通过多用户并发。

我现在想知道它们有什么区别。
就我的理解,
1用户下,使用web_concurrent_start(end)一次性提交20请求;
和20用户下,通过rendezvous来集合后,每用户提交1个请求;
这两种场景应该是一样的,因为都是一次向服务器同时提交了10个请求。

但是我实际跑的结果来看来,rendezvous方式只能达到19用户,到20用户时服务器卡死,已经尝试多次都如此;
但是使用web_concurrent_start(end)一次性提交20,30以上都没问题。

所以来这里问问有哪位大神知道为什么会这样。

附带我的代码
1,rendezvous方式,20用户
        Action()
        {
        lr_rendezvous("bingfa");
       
        web_custom_request("baseoper_4",
                        "URL=http://{IP_PORT}/PLATFORM/baseoper",
                                        "Method=POST",
                                        ... 略 ...,
                                        "Body={... 略 ...},
                                        LAST);
        }
       
       
2,web_concurrent_start(end)方式

        Action()
        {
        int i;
       
        web_concurrent_start(NULL);
       
        for(i=1;i<=20;i++){
                web_custom_request("baseoper_4",
                                "URL=http://{IP_PORT}/PLATFORM/baseoper",
                                                "Method=POST",
                                                ... 略 ...,
                                                "Body={... 略 ...},
                                                LAST);
        }
       
        web_concurrent_end(NULL);
        }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2019-3-7 09:49
  • 签到天数: 133 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2015-5-6 10:14:03 | 只看该作者
    使用concurrent时,需要确保脚本中有rendezvous,如果有才是一个有效的并发,如果没有就是伪并发了

    评分

    参与人数 1测试积点 +10 收起 理由
    lsekfe + 10 恭喜你获得测试积点10

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-3-7 09:49
  • 签到天数: 133 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2015-5-6 10:24:19 | 只看该作者
    1中的20个用户是肯定的20个并发,但2中的20个是通过for来一个个执行的,别说i<=20了,就是i<=200都没事,因为这么多用户并没有并发
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2015-5-6 10:43:19 | 只看该作者
    谢谢城邦的回复

    2中我虽然使用for来循环,但我想达到的效果是20个请求一起发出去,所以我使用了web_concurrent_start(end)啊
    这个函数的作用是当遇到了web_concurrent_end,才会把之前的请求一起发出。

    我在回放的时候,也是看到for了20次以后,走到web_concurrent_end才发出去的。这样应该也和1里面的效果一样吧?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2015-5-6 11:16:46 | 只看该作者
    城邦 发表于 2015-5-6 10:24
    1中的20个用户是肯定的20个并发,但2中的20个是通过for来一个个执行的,别说i

    刚才没有点击回复。看到请回一下。谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-9-27 12:46
  • 签到天数: 179 天

    连续签到: 1 天

    [LV.7]测试师长

    6#
    发表于 2015-5-6 14:19:49 | 只看该作者
    这个脚本中只有web_custom_request一个请求吗?还有没其他内容?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-9-27 12:46
  • 签到天数: 179 天

    连续签到: 1 天

    [LV.7]测试师长

    7#
    发表于 2015-5-6 14:20:52 | 只看该作者
    lansanniu 发表于 2015-5-6 10:43
    谢谢城邦的回复

    2中我虽然使用for来循环,但我想达到的效果是20个请求一起发出去,所以我使用了web_conc ...

    回放2的时候,看服务器有没有收到20条请求啊?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2015-5-6 15:41:40 | 只看该作者
    saharaqs 发表于 2015-5-6 14:20
    回放2的时候,看服务器有没有收到20条请求啊?

    这个脚本中只有web_custom_request一个请求吗?还有没其他内容?
    -----------------------------------------
    是的  方式1中只有一个请求,我用20用户集合并发的,并发一次就是20个请求


    回放2的时候,看服务器有没有收到20条请求啊?
    -----------------------------------------
    服务器有收到20条请求,并且正确操作数据库了,我查看过没问题的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-9-27 12:46
  • 签到天数: 179 天

    连续签到: 1 天

    [LV.7]测试师长

    9#
    发表于 2015-5-6 17:06:12 | 只看该作者
    场景中设置的是线程模式还是进程模式?

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2015-5-7 09:26:31 | 只看该作者
    saharaqs 发表于 2015-5-6 17:06
    场景中设置的是线程模式还是进程模式?

    线程模式
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-7 15:36 , Processed in 0.066060 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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