51Testing软件测试论坛

标题: 请教虚拟100个用户同时访问网站如何设置(同时登录,注册或者查询) [打印本页]

作者: galford0628    时间: 2009-2-11 10:19
标题: 请教虚拟100个用户同时访问网站如何设置(同时登录,注册或者查询)
如题,需要做哪些步骤,我现在还是没搞清楚vuser,参数列表中的随便添加的用户名,迭代次数场景组中的数量之间的关系,方便的话告诉我一下谢谢大家了
作者: xuaneric    时间: 2009-2-11 10:34
..........

先录制1个人登录, 在运行的时候, 虚拟用户设置100就行了.
作者: galford0628    时间: 2009-2-11 10:42
哦谢谢楼上
那么迭代是什么意思呢就是说如果我设置迭代次数为3意思就是做3遍被
另外如果是非并发的话就在加压设置那里设置每次运行vuser的时间是这样吧
谢谢啦
作者: galford0628    时间: 2009-2-11 10:44
我按照2楼的大哥说的做为什么场景状态会出现失败的事务和错误的事务呢
并且我并不是全失败我有大部分是通过的事务
这个事务和我录制脚本时候在脚本添加的事务是一样的吧 就说明我录制脚本时添加的事务出现问题了对么
作者: xuaneric    时间: 2009-2-11 10:48
迭代是什么意思?
你做个实验就知道, 发送Email的, 迭代一次, 你能收到1份Email, 迭代3次, 你收到的应该是3份, 你应该能理解了哦~~
实际就等于, 你录制的脚本,重复运行3次.
作者: xuaneric    时间: 2009-2-11 10:49
查看下失败的原因.
作为登录看你的系统是不是可以用一帐号同时登录, 如果不可以, 还需要将用户和密码参数化, 再运行.
作者: zynuage    时间: 2009-2-11 10:57
原帖由 galford0628 于 2009-2-11 10:42 发表
哦谢谢楼上
那么迭代是什么意思呢就是说如果我设置迭代次数为3意思就是做3遍被
另外如果是非并发的话就在加压设置那里设置每次运行vuser的时间是这样吧
谢谢啦

迭代就是循环次数,你要是说做3遍也可以这么理解。
“另外如果是非并发的话就在加压设置那里设置每次运行vuser的时间是这样吧
”这句话不知是啥意思。你即使是并发也是这样做的。
作者: galford0628    时间: 2009-2-11 10:59
我的系统允许同一个账号同时登录,是不是就不用参数化啊
另外如果只是录制1个用户登录然后在场景虚拟100个用户就可以了那么你做了参数化参数化列表里面是不是也只有一个用户名啊
我理解了你对于迭代的解释3q
另外我在控制器中的场景状态栏里面点击失败的事务只能显示出是我那个action失败了,这个是你说的失败的原因么?还是需要在其他地方查询。
我自己了解lr问题有些很弱智希望理解呵呵谢谢
作者: galford0628    时间: 2009-2-11 11:01
我的场景组上显示我这个脚本运行场景后9个通过91个失败太。。。。
作者: zynuage    时间: 2009-2-11 11:01
原帖由 galford0628 于 2009-2-11 10:44 发表
我按照2楼的大哥说的做为什么场景状态会出现失败的事务和错误的事务呢
并且我并不是全失败我有大部分是通过的事务
这个事务和我录制脚本时候在脚本添加的事务是一样的吧 就说明我录制脚本时添加的事务出现问题了对 ...

不知道你的系统是否允许一个账号重复登录。或是是不是有帐号登陆的时间限制,你描述的好乱,一句话包括的问题信息忒多了,我都不知道如何回答你,我要是这么回答的话肯定容易引起歧义的。
⊙﹏⊙b汗
试着回答下
这样你申请10个账号,做个参数化试试。估计你的系统有账号使用限制造成你现在登录全部失败。
作者: zynuage    时间: 2009-2-11 11:03
原帖由 galford0628 于 2009-2-11 11:01 发表
我的场景组上显示我这个脚本运行场景后9个通过91个失败太。。。。

crazy,运行九个通过91个?我天,我真晕了。+_+
冷静下,一定要冷静。
作者: galford0628    时间: 2009-2-11 11:03
原帖由 zynuage 于 2009-2-11 10:57 发表

迭代就是循环次数,你要是说做3遍也可以这么理解。
“另外如果是非并发的话就在加压设置那里设置每次运行vuser的时间是这样吧
”这句话不知是啥意思。你即使是并发也是这样做的。


我的意思就是场景编辑的加压选项里面不是有同时加载所有vuser和开始口vuser,每口(时,分,秒)这两个选项,选择第一个就代表并发100个同时访问,是这样么
作者: galford0628    时间: 2009-2-11 11:05
原帖由 zynuage 于 2009-2-11 11:03 发表

crazy,运行九个通过91个?我天,我真晕了。+_+
冷静下,一定要冷静。


一共100个,九个通过九十一个失败呵呵
作者: zynuage    时间: 2009-2-11 11:06
原帖由 galford0628 于 2009-2-11 11:03 发表


我的意思就是场景编辑的加压选项里面不是有同时加载所有vuser和开始口vuser,每口(时,分,秒)这两个选项,选择第一个就代表并发100个同时访问,是这样么

没有加入集合点,不是真正意义上的并发。只是同时运行了所有脚本,仅此而已。
作者: xuaneric    时间: 2009-2-11 11:08
你action所录制的内容有那些啊?
作者: zynuage    时间: 2009-2-11 11:10
原帖由 galford0628 于 2009-2-11 11:05 发表


一共100个,九个通过九十一个失败呵呵

这说明已经跟账号问题没有关系了,说明你的账号问题是解决了,至于你为何通过的用户数小,这样的原因是很多的。比如跟你的机子配置有关,web服务器的配置有关,还有你的generator设置的连接超时和controller设置的链接超时有关。你可以把失败的错误信息粘出来让大家给分析一下。
作者: xuaneric    时间: 2009-2-11 11:10
你录制了什么操作你能说下么?  另外你成功的是不是前9个成功,后面的全都失败, 还是中间夹杂这成功的.
作者: galford0628    时间: 2009-2-11 11:21
录制就是:
1,进入登录页面
2,登录成功
3,登录成功后退出登录
没了
我查看vuser状态是:
1 完成。失败 尝试了2次循环:2次成功
2 完成。成功 尝试了2次循环:2次成功
是这样的而且我一共100个vuser前50个里面成功和失败是交替的没规律 从第47个开始就都失败了
另外大哥你说的错误信息是哪里的错误信息呢3q大家
作者: galford0628    时间: 2009-2-11 11:22
我的事务只是在点击提交的那个action里面最开始的地方设置了
lr_rendezvous("login_rendezvous");
其他的地方还需要设置什么么
作者: zynuage    时间: 2009-2-11 11:39
原帖由 galford0628 于 2009-2-11 11:22 发表
我的事务只是在点击提交的那个action里面最开始的地方设置了
lr_rendezvous("login_rendezvous");
其他的地方还需要设置什么么

你这是加入集合点,集合点就加入在登录按钮上就行了,其他的地方不用加入集合点了。
作者: zynuage    时间: 2009-2-11 11:41
原帖由 galford0628 于 2009-2-11 11:21 发表
录制就是:
1,进入登录页面
2,登录成功
3,登录成功后退出登录
没了
我查看vuser状态是:
1 完成。失败 尝试了2次循环:2次成功
2 完成。成功 尝试了2次循环:2次成功
是这样的而且我一共100个vuser前50个 ...

你是怎么知道失败的?不是有个error么?这里面会有失败的信息的,你可以贴出来看看。供大家看看,这样大家分析问题就方便了很多。

[ 本帖最后由 zynuage 于 2009-2-11 11:43 编辑 ]
作者: galford0628    时间: 2009-2-11 11:48
我刚才又重新录制了一遍脚本,这次录制我登录成功并没有退出,上一次的脚本我登录成功后直接退出
现在我在场景设置都没改变的前提下运行100个vuser通过100个失败0个
这是什么原因呢 是因为我用1个账号登陆同时访问但是我又退出了所以后面有些帐号的状态就无法登陆了,大哥能告诉我为什么么
作者: galford0628    时间: 2009-2-11 12:02
我发不了图呢 反正我点击错误他显示的是:
submit_login.c(7): 发生错误后继续 -27728: 下载非资源时,步骤下载超时(120 秒)已过期。
作者: zynuage    时间: 2009-2-11 12:06
原帖由 galford0628 于 2009-2-11 12:02 发表
我发不了图呢 反正我点击错误他显示的是:
submit_login.c(7): 发生错误后继续 -27728: 下载非资源时,步骤下载超时(120 秒)已过期。

属于连接超时错误,把连接超时时间改大点儿,还有你的测试环境是否在局域网里,这个跟公司的网络环境也有很大关系,还有把防火墙、杀毒软件以及一切防护措施都关了。
作者: galford0628    时间: 2009-2-11 12:31
除了链接超时会不会和我录制脚本时退出登录有关呢
作者: zynuage    时间: 2009-2-11 14:00
原帖由 galford0628 于 2009-2-11 12:31 发表
除了链接超时会不会和我录制脚本时退出登录有关呢

这个应该是没有关系,除非你的登录模块有bug,你可以专门录个退出登录的脚本再试试。
作者: galford0628    时间: 2009-2-11 14:13
哦是这样谢谢,我同一个脚本场景为什么执行两次第二次会多出来一个错误是什么服务器已过早关闭连接,可是我的服务器网站我登录仍然可以登录成功这是为什么呢
谢谢你不厌其烦的帮助我呵呵
顺便说一下第二次执行的时候我的网络有些不是很畅通,和这个有关么另外哪里是设置你说的超时时间的啊
作者: galford0628    时间: 2009-2-11 14:19
如果打算100个vuser,我加压的设置为:
开始10个vuser,每00:00:05(时,分,秒)这样设置是不是意味着我100个vuser是最开始加载10个然后间隔5秒后再加载10个;
而如果我设置为同时加载所有vuser就相当于我在第一秒就加载了100个vuser
另外我想请教一下录制一个用户登录的脚本然后虚拟100个vuser同时登录这样的场景和我录制的时候用参数化出10个用户然后每个用户迭代10次(这样不也是100次登录么)都做负载或者压力测试这么做有什么区别么谢谢
作者: zynuage    时间: 2009-2-11 14:24
看到这我是没法回答了,我好晕啊。两个问题混着问,我只能混着回答了。
作者: zynuage    时间: 2009-2-11 14:28
原帖由 galford0628 于 2009-2-11 14:13 发表
哦是这样谢谢,我同一个脚本场景为什么执行两次第二次会多出来一个错误是什么服务器已过早关闭连接,可是我的服务器网站我登录仍然可以登录成功这是为什么呢
谢谢你不厌其烦的帮助我呵呵
顺便说一下第二次执行的时 ...

你既然说是网络不畅通,应该就是网络的问题导致你现在出现这样的问题的。不知道你的施压机是否跟测试服务器是处在同一局域网,要是不是应该避免这个现象,施压时应该是和服务器处在同一局域网的,避免因为网络原因引起的问题,这样也容易造成测试数据的天壤之别。
作者: zynuage    时间: 2009-2-11 14:29
接下来回复第二个问题。
作者: zynuage    时间: 2009-2-11 14:33
原帖由 galford0628 于 2009-2-11 14:19 发表
如果打算100个vuser,我加压的设置为:
开始10个vuser,每00:00:05(时,分,秒)这样设置是不是意味着我100个vuser是最开始加载10个然后间隔5秒后再加载10个;
而如果我设置为同时加载所有vuser就相当于我在第一秒 ...

希望能加个逗号,否则容易憋死人。呵呵。
开始回答,
1、(如果打算100个vuser,我加压的设置为:
开始10个vuser,每00:00:05(时,分,秒)这样设置是不是意味着我100个vuser是最开始加载10个然后间隔5秒后再加载10个)可以这么理解。
2、有点儿误区,你要是不加集合点他是根据服务器的响应来判断的,这要取决你的机子配置和服务器的配置,以及网络因素。要是加入集合点就是这么理解了。
作者: zynuage    时间: 2009-2-11 14:35
(另外我想请教一下录制一个用户登录的脚本然后虚拟100个vuser同时登录这样的场景和我录制的时候用参数化出10个用户然后每个用户迭代10次(这样不也是100次登录么)都做负载或者压力测试这么做有什么区别么谢谢)
开始回答:
负载和压力测试不是同一个概念。
不知你问的是什么测试?
作者: galford0628    时间: 2009-2-11 14:37
谢谢 我提问题有问题 我尽量改正我提问题时的问题
我的施压机器和服务器是一个局域网同一个网段。
作者: galford0628    时间: 2009-2-11 14:41
如果我只是想测试我的服务器是否可以承受100个用户同时登录那么我需要做的是压力测试
如果我想测试我的服务器是否可以承受100个用户同时进行查询并且获得正确的查询结果我需要做的就是负载测试
我这样理解是否可以
其实我是想用lr做负载测试但是我首先想解决的就是测试100个用户同时访问的测试这个属于压力测试吧
作者: galford0628    时间: 2009-2-11 14:43
2、有点儿误区,你要是不加集合点他是根据服务器的响应来判断的,这要取决你的机子配置和服务器的配置,以及网络因素。要是加入集合点就是这么理解了。

这个我理解了 谢谢
作者: galford0628    时间: 2009-2-11 15:35

作者: zynuage    时间: 2009-2-11 15:43
压力测试:就是不知道服务器的实际承受能力,向服务器不断施压,直到将服务器压瘫,以确认服务器的承受能力。
负载测试:本身知道服务器的实际承受能力,比如说服务器的实际承受能力为100个用户,那就拿100个用户进行施压,看看服务器在满负荷的情况下的实际能力。
希望我的解释你能明白。
作者: galford0628    时间: 2009-2-11 15:50
恩 压力和负载我理解了现在
那么如果我做压力测试的话我不知道服务器能承受多少用户同时访问,我现在录制完了一个登录成功并且退出的脚本以后需要如何设置我的场景呢 给点你的意见好么大侠
而且是不是lr的vuser数量是有限制的啊 那么我应该怎么做呢 我之前所做的想要100个用户同时登录其实是一个负载测试 对吧
那么我现在就虚拟100个vuser然后在运行时设置选项里面设置一个迭代次数是不是就能实现压力测试呢

[ 本帖最后由 galford0628 于 2009-2-11 15:53 编辑 ]
作者: zynuage    时间: 2009-2-11 15:53
原帖由 galford0628 于 2009-2-11 15:50 发表
恩 压力和负载我理解了现在
那么如果我做压力测试的话我不知道服务器能承受多少用户同时访问,我现在录制完了一个登录成功并且退出的脚本以后需要如何设置我的场景呢 给点你的意见好么大侠

从新发个帖子,让大家给你参谋下。呵呵
作者: galford0628    时间: 2009-2-11 15:58
我现在还是在100个vuser,加压 开始10个vuser,每00:00:10(时,分,秒),在这样的场景下我运行出现了下面3个错误请大侠看看(另外我的脚本的action就是一个进入登录页面,一个登录成功,一个退出登录)谢谢。现在是通过19个失败81个
1,
submit_login.c(7): 发生错误后继续 -26612: 对于“http://dev.ex-payment.com:8080/maipiao/login”,HTTP 状态代码=500 (Could not open JPA EntityManager for transaction; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Cannot open connection)
2,
submit_login.c(7): 发生错误后继续 -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively
3,
submit_login.c(7): 发生错误后继续 -27728: 下载非资源时,步骤下载超时(120 秒)已过期。
作者: zynuage    时间: 2009-2-11 16:03
原帖由 galford0628 于 2009-2-11 15:58 发表
我现在还是在100个vuser,加压 开始10个vuser,每00:00:10(时,分,秒),在这样的场景下我运行出现了下面3个错误请大侠看看(另外我的脚本的action就是一个进入登录页面,一个登录成功,一个退出登录)谢谢。现在是通 ...

第一个500是内部服务器的错误,有可能是脚本有问题,建议跑下脚本,也有可能是你的服务器当掉了。剩下的有可能是服务器当掉了。你可以重新发帖,把这些问题发出来,让大家讨论下。
作者: galford0628    时间: 2009-2-11 16:08
收到 谢谢你了和我纠缠了一天了谢谢
作者: yama136    时间: 2009-2-12 11:05
可能是服务器存在性能瓶颈吧
作者: yama136    时间: 2009-2-12 11:05
可以查看一下监控服务器的资源图
作者: galford0628    时间: 2009-2-12 11:40
楼上的大哥,如果我希望虚拟100个vuser同时登录 那么我是不是需要在我登录的action里面插入一个集合点
那在场景里面如何设置才能让所有用户都能在这个集合点处同时登录呢
作者: zynuage    时间: 2009-2-12 11:53
原帖由 galford0628 于 2009-2-12 11:40 发表
楼上的大哥,如果我希望虚拟100个vuser同时登录 那么我是不是需要在我登录的action里面插入一个集合点
那在场景里面如何设置才能让所有用户都能在这个集合点处同时登录呢

你是对的这样理解,一般是在提交按钮上加入集合点,如登录这个按钮前加上集合点,最好加入事务,有助于你的分析。
作者: galford0628    时间: 2009-2-12 13:40
哦是你 和我纠缠了一天的好心人呵呵
那么我的脚本只要把登录提交那个action加入一个事务然后是在这个action的开始部分加入集合点还是在提交操作前面加入集合点呢 我了解的是不是集合点只能在action的最开始才可以加呢
然后我还是只录一个用户登录的脚本,在场景中虚拟100个vuser。那么我想要他们同时访问就不用再设置其他的了么 比如加压那个地方如何设置啊不用设置么 选择同时加载所有vuser么
谢谢 还是这个帖子有生命力
作者: zynuage    时间: 2009-2-12 13:51
原帖由 galford0628 于 2009-2-12 13:40 发表
哦是你 和我纠缠了一天的好心人呵呵
那么我的脚本只要把登录提交那个action加入一个事务然后是在这个action的开始部分加入集合点还是在提交操作前面加入集合点呢 我了解的是不是集合点只能在action的最开始才可以加 ...

又来了,还没加逗号,加入集合点的策略是在登录按钮前边加入,先加入事务,然后加入集合点,然后点击登录按钮。
作者: galford0628    时间: 2009-2-12 13:52
我把我提交用户名密码登录的脚本放在了一个事务里面(就是开始事务和结束事务包含一段提交登录的脚本),为什么场景运行以后会在事务摘要这个图里面的confirm page(事务的名称)会有17个失败呢? 说明有17次登录操作失败是这样么大哥?
我这次加了空格呵呵。

[ 本帖最后由 galford0628 于 2009-2-12 13:56 编辑 ]
作者: galford0628    时间: 2009-2-12 13:58
submit_login()
{

        lr_rendezvous("login_rendezvous");

        lr_start_transaction("confirm page");

        web_submit_data("login_2",
                "Action=http://xxxxxx.com:8080/login",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://xxxxxx.com:8080/login",
                "Snapshot=t3.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=loginName", "Value={username}", ENDITEM,
                "Name=password", "Value=123456", ENDITEM,
                "Name=targetUrl", "Value=", ENDITEM,
                "Name=_sourcePage", "Value=29y9_TZpNVWWF0l61Y_uXIbonN04ni20Qvm5m_WH_RBpnRcfanBWaQ==", ENDITEM,
                "Name=__fp", "Value=7xzpt4lp8RM=", ENDITEM,
                "Name=login.x", "Value=21", ENDITEM,
                "Name=login.y", "Value=23", ENDITEM,
                LAST);

        lr_end_transaction("confirm page", LR_AUTO);

        lr_log_message("用户名:%s",lr_eval_string("{username}"));

        return 0;
}
这样对么?我的username只有一个登录名aaa,我是写成username还是直接写成loginname=aaa?谢谢。我怎么早没想到把脚本也给你看看啊哎
作者: zynuage    时间: 2009-2-12 13:59
lr_start_transaction("confirm page");


lr_rendezvous("login_rendezvous");

  这样就对了。
作者: galford0628    时间: 2009-2-12 14:29
正在按照你说的修改脚本然后运行场景
我现在运行场景除了会有-27728错误:下载非资源时,步骤下载超时(120秒)已关这个错误,这个错误就是真实的反应了我的服务器的情况对吧;还会出现一个问题就是按照我的场景是100个vuser,每5秒钟加载10个vuser,全部加载后运行3分钟,减压是每10秒钟减少10个vuser。其中点击次数和吞吐量那个表应该是
  ___                                                     /\
/        \ ,这么个曲线吧,为什么我的是/   \______这样的曲线呢,为什么达到最高点就马上下降了呢谢谢

[ 本帖最后由 galford0628 于 2009-2-12 14:31 编辑 ]
作者: zynuage    时间: 2009-2-12 14:34
原帖由 galford0628 于 2009-2-12 14:29 发表
正在按照你说的修改脚本然后运行场景
我现在运行场景除了会有-27728错误:下载非资源时,步骤下载超时(120秒)已关这个错误,这个错误就是真实的反应了我的服务器的情况对吧;还会出现一个问题就是按照我的场景是100 ...

跟你的运行时间短有关,你让他运行了3分钟,他有可能没有运行完,所以会出现立刻下降的曲线,你把减压设置直到所有用户释放完毕试试,

[ 本帖最后由 zynuage 于 2009-2-12 14:36 编辑 ]
作者: galford0628    时间: 2009-2-12 14:52
我改一下试试,是把持续时间改为运行知道完成吧,减压的选项里面只有同时停止所有vuser和每几秒停止几个vuser。
作者: galford0628    时间: 2009-2-12 14:55
原帖由 galford0628 于 2009-2-12 14:52 发表
我改一下试试,是把持续时间改为运行知道完成吧,减压的选项里面只有同时停止所有vuser和每几秒停止几个vuser。


我改了
可是现在图形还是那个样子
思考时间需要设置么,是选择按照录制时间呢还是将思考时间限制为多少秒呢,这个思考时间和我的图有关系么谢谢。
作者: galford0628    时间: 2009-2-12 14:58
现在提示我有18个通过82个失败
错误消息有:
submit_login.c(8): 发生错误后继续 -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively

submit_login.c(8): 发生错误后继续 -27728: 下载非资源时,步骤下载超时(120 秒)已过期。
能说明我的服务器什么状况么
这两个错误好像差不多吧

[ 本帖最后由 galford0628 于 2009-2-12 15:00 编辑 ]
作者: galford0628    时间: 2009-2-12 15:08
我不改变场景只是把vuser数量设置成50个,我的成功数量就为38,失败12,这个是不是就说明我的服务器不能承受同时100个用户登录呢。
作者: zynuage    时间: 2009-2-12 15:28
原帖由 galford0628 于 2009-2-12 15:08 发表
我不改变场景只是把vuser数量设置成50个,我的成功数量就为38,失败12,这个是不是就说明我的服务器不能承受同时100个用户登录呢。

可以这么说,加不加思考时间得根据实际情况确定了,你可以搜搜思考时间的相关文档。这说就不是很方便了。这么说来,你的服务器应该是配置不高了,应该是出现瓶颈了。你可以重新发帖问问各位大侠们。换种方式。
作者: galford0628    时间: 2009-2-12 15:58
哦了 谢谢啊 今天又收获不老小
,,,,,,,,,,,,,,
让你一次看个够
呵呵谢谢
作者: kaven0612    时间: 2009-2-15 20:12





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