51Testing软件测试论坛

标题: 关于场景中虚拟用户和运行时间问题 [打印本页]

作者: kuangquanshui    时间: 2009-6-4 10:06
标题: 关于场景中虚拟用户和运行时间问题
我在论坛里看过几个和我问题类似的贴子。朋友们也说了一些他们的看法。不过我还是有点不明白。
1    基于时间和迭代的运行场景区别。我知道是场景的如何运行方式。但我不明白的是如果是基于时间的那么我虚拟的用户要是在全部启动之后的延迟中石如何运行的。如果我的设置的延迟运行时间小于我的单次脚本事物的操作所用时间。哪还是继续运行并且延迟时间增加。还是说这个失误被中断了定义为失败。
2    基于迭代的运行方式我虚拟100个用户  迭代10次 脚本没有进行参数化就初始数据。那么一次的迭代是100个用户都运行一次然后再第二次运行100个用户。还是说一百个用户同时运行10次(注  迭代的方式没有设定启动方式所以不知道是如何启动的)应该说迭代的方式对于运行没有时间的什么问题。因为脚本运行多长时间就用多长时间。如果我的数据进行参数化了有10条数据。那么这10条数据是如何分配的,我设置的是每1次迭代式提取一条新数据。这样的情况是如何运行的。可能后面这个问题有点没什么意义。但是还是想弄明白,为了更好的理解场景的运行。
3  如果我的场景运行的方式是基于时间的 。但在迭代中我也设置了   那么是如果运行的    个人感觉是在规定的时间内尽量的基于迭代的循环运行。
      以上是我对场景运行的理解      有不对的地方还请大家指正     先做个抛砖引玉   大家也说说你们的理解      这样有利于学习    come  on  。。。。。。
作者: kuangquanshui    时间: 2009-6-4 11:47
晕  这么快就被顶沉了    不能沉
作者: 忍忍忍    时间: 2009-6-4 12:11
脚本迭代的意义是假设设置迭代为N次,运行一次脚本,循环会先在init运行一次,然后在action运行N次,最后在end运行一次,然后退出(假设只有一个action情况下)。
那么首先要说,在场景下面无论是一个用户还是多个用户,都是去读脚本,如果没有设集合点,这些用户完全是各自跑各自的,随机地跑完同一脚本。第一个问题如果设置时间很短,虚拟用户也会跑完脚本再停止,也不会报错。
在脚本里面设置参数的时候可以设置变量在迭代方式上怎么取值,也可以设置不同用户都是怎么去取值(用户和用户之间没什么关系)假设是M个用户,脚本迭代N次,那么在跑场景的时候(假设场景设置用户跑完场景就停止),每一个用户都会去跑一遍脚本(一个脚本迭代N次action);如果场景设置5分钟,则M个用户自己跑自己的,跑够五分钟,然后最后一次脚本跑完,就停止了。

在现实生活也是一样啊,如果干一天活了,下班时手上还有件事处理一半了,肯定会把事情处理完再闪人吧?
作者: kuangquanshui    时间: 2009-6-4 12:26
标题: 回复 3# 的帖子
关于设置时间小于脚本运行所需的问题  我明白了  是取决于脚本运行时间  但其他的问题 没怎么明白
作者: 忍忍忍    时间: 2009-6-4 12:59
在参数设置位置有两个地方:
Select next row –下一行的取值方式(针对用户)
Sequential 顺序的,即所有用户都是按照同一种方式取值(都是按照Update value on方式取值,一个用户怎么去,多个用户也是怎么取)
Random    随机的,即所有用户的取值都是随机的
Unique      独一无二的,即所有用户取值都不会相同
Update value on – 值更新方式(针对迭代方式)
Each Iteration 每次迭代时更新(一次迭代中参数出现多次也不变,但是取的值按照select方式取)
Each Occurrence 每次遇到参数就更新(一次迭代参数出现多次更新多次,但是取的值按照select方式取)
Once 参数一旦取到就不变

关于多个用户怎么取值或者说单个用户迭代时怎么取值,找个例子,然后把上面的组合都跑一遍,就应该会清楚了。
作者: kuangquanshui    时间: 2009-6-4 14:54
呵呵    兄弟  你可能没明白我什么意思  我知道你说的是参数化中迭代的时候   脚本时如何调用数据的  我的意思是如果选取了 数据后在场景中如何运行  不是如何调用数据    是我们没沟通好
作者: 忍忍忍    时间: 2009-6-4 15:10
“如果选取了数据后在场景中如何运行 ”能说得详细点么 ?我还是不明白你说的意思
作者: kuangquanshui    时间: 2009-6-4 17:52
标题: 回复 8# 的帖子
我来试试  这个代码加在那里  是录制的代码最后吗   还是在阐述化以后得位置  如果可以的话  兄弟 能给我个脚本吗  我学习一下啊 本人比较笨   见谅
作者: kuangquanshui    时间: 2009-6-4 17:53
标题: 回复 7# 的帖子
就是说 我参数化数据时选定了 一种提取数据的方式     在这种情况下场景的运行方式
作者: kuangquanshui    时间: 2009-6-5 09:36
不能沉了啊
作者: kuangquanshui    时间: 2009-6-5 10:03
标题: 回复 8# 的帖子
兄弟  这个我没弄明白  你能帮我做个脚本吗  我研究研究   谢过了
作者: 忍忍忍    时间: 2009-6-5 11:22
囧 ,老了,看不懂你们说什么了.

监控每个用户取值情况干啥啊 ?都随机好了,反正也跑不出去那个参数圈。

14楼的土匪那个问题我很疑惑,既然线程跑得好好的,为啥还要开发一个可以用进程跑的呢 ?YY一下,可能是一些特殊场景跑巨牛脚本时避免线程之间竞争资源吧 ?
作者: kuangquanshui    时间: 2009-6-5 11:27
标题: 回复 15# 的帖子
我是想更深入的了解loadRunner运行的方式   对以后学习一定有帮助     也许什么时候就用到了
作者: kuangquanshui    时间: 2009-6-5 11:33
标题: 回复 14# 的帖子
兄弟  谢谢你了
作者: 忍忍忍    时间: 2009-6-5 12:05
反正讨论来讨论去都是猜想 没啥结果了 囧
作者: guoxianchina    时间: 2009-6-5 14:17
你可以到场景的results下查看每个用户的执行情况,就能清楚每个用户在某种取值下是怎么执行的。
不知道我是不是答非所问呢
作者: kuangquanshui    时间: 2009-6-5 14:22
晕 兄弟   我在研究 有点迷糊   学习中
作者: yzylion    时间: 2009-6-5 14:39
慢点,慢点,看了这么多
我有疑问了
1.我要是在vuser的run time setting中设置迭代次数是5次,然后我在LR的controller中设置的duration时间是5分钟,那么脚本是只跑5次呢还是跑5分钟呢?我的个人感觉是:5次

2.脚本一般都是按线程跑的,进程和线程是有区别的,线程可以允许一个load generator模拟多个vuser而进程是不行的

前面怎么又有了脚本一般是按进程跑的啊?唉,你们仔细说说我这两个问题和前面的问题,我都被搞晕了,呵呵
作者: kuangquanshui    时间: 2009-6-5 14:44
是啊   我也和楼上的有同感   刚开始的时候就有一种想法    很好理解  可是以后要考虑的多了  就迷糊了
作者: kuangquanshui    时间: 2009-6-5 15:44
全乱了  一起迷糊吧
作者: 代号47    时间: 2009-6-20 10:08
标题: 实施
我没有
作者: zjl2009    时间: 2009-9-3 15:49
请问一下,在loadrunner中 设置100个虚拟用户必须要100个IP欺骗地址吗?
作者: alexanty    时间: 2009-9-3 18:50

作者: cafard-haibin    时间: 2009-9-10 17:02
原帖由 kuangquanshui 于 2009-6-4 17:52 发表
我来试试  这个代码加在那里  是录制的代码最后吗   还是在阐述化以后得位置  如果可以的话  兄弟 能给我个脚本吗  我学习一下啊 本人比较笨   见谅

加在脚本return()前面
作者: kuangquanshui    时间: 2010-9-28 10:57
乱乱的
作者: jtt51test    时间: 2015-11-12 17:28
“运行时间设置”的时间是 LR会持续连续运行脚本的时间,运行次数可以在LR中查看。

    “迭代次数设置”的次数 就是以脚本为主,设置了多少次,脚本就会运行多少次;此时运行时间一般设置为运行完成。

     如果同时设置迭代次数和持续时间, 那么当时间结束后, 不管迭代次数是否已经到达设定值,此虚拟用户都会结束。

    迭代次数的设置和运行时间的长短都是为了让测试能够运行一段时间,获得系统各性能指标的一个平均值。如果不是稳定性测试,一般的性能测试我都设置为10-60分钟之间这里的这个时间是所有用户都加载上运行的一个时间,即是选择了“所有用户都init以后再运行”的duration时间。





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