51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3691|回复: 20
打印 上一主题 下一主题

[原创] 这样的性能需求应该怎样做

[复制链接]
  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2007-7-11 11:21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    性能要求:
    1. 能同时在线用户100个。
    2.并发50个用户,并发登录完成所耗总时间不能超过30秒。
    3.当有线用户100人时,登录不得超过10秒。
    针对上述要求:
    虚拟用户脚本:打开首页——登录——显示登录页面。
    场景:
    1、设置集合点,并发50个用户,查看测试结果。
    2、每10秒加载一个用户,直至100个用户在线。手动登录一个用户,查看响应时间。

    场景2有个疑问:
    脚本很短,一下就跑完了。如果只是设置“每10秒加载一个用户”最多只有10个用户同时在线,其它用户通过测试后就结束了。  sdlkfj7
    于是我就在脚本末尾添加了一个ThinkTime()
    根据10秒×100用户=1000秒 设置 LR_ThinkTime(1500) ,然后当有100个Vuser都在线时,开始手动登录记时。

    总觉得场景2的测试很不妥,模拟100个用户在线,是应该这样做吗?sdlkfj1
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2007-7-11 11:45:09 | 只看该作者
    sdlkfj4

    [ 本帖最后由 leoomo 于 2007-7-11 11:46 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2007-7-11 12:04:52 | 只看该作者

    同时加载服务响应不过来

    服务器只能承受50个用户并发,
    同时加载100个用户,虽然没有设置集合点,可以服务器仍然响应不过来。

    而且有个问题:
    登录这个操作耗时短,只要登录通过,后面显示页面时间很短。
    如果不能Vuser停留,整个场景一会就Pass了。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-7-11 12:59:10 | 只看该作者
    你分两次并发50呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2007-7-11 13:14:16 | 只看该作者

    不行

    原帖由 leoomo 于 2007-7-11 12:59 发表
    你分两次并发50呢?



    分两次,第一次登录完成之后才能开始第二次登录。

    第一次登录完成,几秒钟后,这个场景就完成了,虚拟用户就被释放了;
    可以几秒钟后,第二次登录还没有完成呢。。。

    结果都是一样的

    问题是怎么能让虚拟用户停留在某个阶段?sdlkfj6
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-7-11 13:17:43 | 只看该作者
    你录制的只是登录过程?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
     楼主| 发表于 2007-7-11 13:35:27 | 只看该作者

    原帖由 leoomo 于 2007-7-11 13:17 发表
    你录制的只是登录过程?


    嗯,是的

    开始录制,程序自动启动。

                  输入用户名、密码,登录。

    整个过程录制条上都显示(0个事件)

      即使在登录后做其它操作,也没有任何反应,脚本里一直都是空的:

    /*********************************************************************
    * Created by Mercury Interactive Windows Sockets Recorder
    *
    * Created on: Wed Jul 11 13:29:42
    *********************************************************************/
    #include "lrs.h"

    Action()
    {
        return 0;
    }
    sdlkfj9
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2007-7-11 13:49:45 | 只看该作者
    B/S架构?
    单协议选择WEB?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-7-11 13:54:25 | 只看该作者
    你可以设置循环,保持在线为100人即可
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
     楼主| 发表于 2007-7-11 16:53:08 | 只看该作者
    原帖由 leoomo 于 2007-7-11 13:54 发表
    B/S架构?
    单协议选择WEB?

    是的。

    原帖由 angerswing 于 2007-7-11 13:54 发表
    你可以设置循环,保持在线为100人即可


    这样服务器很有可能停止响应,因为整个动作,登录耗时最长。不停迭代,恐怕到最后停在登录处的用户越来越多……

      我觉得不妥,你觉得呢?

    最终的目的只是想有100个用户在线,不需要其它业务操作。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2007-7-11 17:20:08 | 只看该作者
    你录制的登录状态,不录制退出,那用户不是一直在线吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
     楼主| 发表于 2007-7-11 17:35:02 | 只看该作者
    原帖由 leoomo 于 2007-7-11 17:20 发表
    你录制的登录状态,不录制退出,那用户不是一直在线吗?


    我最初也是这么想的,实际不能这么理解


    在你录制的ACTION里虽然没有退出,但在LR的END里面就结束了这个会话。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2007-7-12 13:40:33 | 只看该作者
    你的意思是不是就像QQ一样,登陆后只要保持在线状态,并不需要它做别的操作时的100人负载下的登陆时间?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-7-12 13:42:36 | 只看该作者
    原帖由 leoomo 于 2007-7-11 17:20 发表
    你录制的登录状态,不录制退出,那用户不是一直在线吗?

    若没有别的设置,LR在运行完这个脚本后会直接END这个运行。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-7-12 13:45:23 | 只看该作者
    若只是保持在线负载的话,的确可以只要在ACTION中加入一定长的thinktime来解决。
    这样的话,其实服务器的负载是很小的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
     楼主| 发表于 2007-7-12 17:12:12 | 只看该作者

    ThinkTime

    sdlkfj6
    原帖由 angerswing 于 2007-7-12 13:40 发表
    你的意思是不是就像QQ一样,登陆后只要保持在线状态,并不需要它做别的操作时的100人负载下的登陆时间?

    是的

    正是此意。


    我也刚好是用ThinkTime来做到这一点的,有朋友这么 说,我就放心了。。sdlkfj3
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-8-16 11:42:13 | 只看该作者
    我觉得应该是登录后再进行一些操作,用这些操作的脚本来保持登录用户的在线状态。这样才是模拟用户真实的情况,一般登录后都是进行一些操作的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-8-16 12:05:25 | 只看该作者
    dingding
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-8-16 13:18:21 | 只看该作者
    原帖由 angerswing 于 2007-7-12 13:42 发表

    若没有别的设置,LR在运行完这个脚本后会直接END这个运行。


    这里有两层概念。在线用户是系统应用的概念,“在线”链接是tcp协议的概念。
    LR断开的是http连接,你的用户还没有退出系统,还占一定的资源。不过一定时间后,服务器会自动退出该用户回收资源。

    其实就算是真正用户登录系统之后,如果一段时间内没有操作,也会被断开连接的。因为session超时了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-11-15 14:58
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    20#
    发表于 2007-8-16 13:35:37 | 只看该作者
    可以用winsocket,脚本先会建立链接,然后第二次发包后,你把后面的代码屏蔽了,这样就可以解决
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-23 03:13 , Processed in 0.095605 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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