51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6883|回复: 11
打印 上一主题 下一主题

[原创] 关于LR中‘每次迭代模拟一个新用户’选项的意义和实际影响

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-11-29 13:58:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
向大家请教LR中一个设置的问题
我使用的LR版本为7.8,并安装了中文包。
点击脚本‘运行时设置’,选中‘浏览器>浏览器仿真’,其中有一个选项为‘每次迭代模拟一个新用户’(见后面的图片),LR对其的解释是:每次迭代模拟一个新用户,指示 VuGen 将各个迭代之间的所有 HTTP 上下文重置为 init 部分结束时相应的状态。使用该设置,Vuser 可以更准确地模拟开始浏览会话的新用户。它将删除所有 Cookie,关闭所有 TCP 连接(包括 Keep-Alive 连接),清除模拟浏览器的高速缓存,重置 HTML 帧层次结构(帧编号将从 1 开始)并清除用户名和密码。默认情况下启用该选项。

在我的脚本中(Web(Http/Html)),我把登录操作放到了vuser_init()中,要测试的业务放到了Action()中,在以迭代方式运行脚本的时候,从第2次开始,之后vuser的所有运行都失败,系统(指被测的应用系统,不是LR)给出的错误信息是‘用户未登录’。我把‘每次迭代模拟一个新用户’这个选项去掉,则可以顺利的运行。

我现在感到疑惑的是:按照LR文挡中对‘每次迭代模拟一个新用户’的解释——‘指示 VuGen 将各个迭代之间的所有 HTTP 上下文重置为 init 部分结束时相应的状态’,不应该运行失败啊。因为我的登陆操作就是放在vuser_init()中的,如果是重置为 init 部分结束时的状态’,怎么实际运行的时候会不成功呢?是不是LR的解释不够准确?

还有一点,如果我在不选中‘每次迭代模拟一个新用户’的情况下运行测试,那么对测试结果的准确性是否会产生影响?在什么情况下应该选中这个选项,什么情况下应该不选中?你在遇到这个问题的时候是怎么处理的呢?

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2005-11-29 14:34:14 | 只看该作者
选择了模拟新用户,lr会关所有tcp连接,然后重新建立连接,所以你的session自然失效.

选择这个选项就是模拟新用户操作,

什么时候不选呢,举个例子,你一个用户登入系统之后,有十个查询步骤,当然这些步骤就应该是一个用户完成,这时候不该选,而且遥模拟浏览器cache
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2005-11-29 15:07:52 | 只看该作者
谢谢tacy_lee
我迭带的目的就是想每次都模拟一个新的用户。没有办法实现吗?因为我不想把登陆的部分放到Action()中
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-11-29 16:03:26 | 只看该作者
可以改应用的话,取消login和权限校验,让后面的动作可以单独跑

不行的话就不要模拟cache,当然会有点区别,毕竟不用重新建立tcp连接(这个在大用户量的时候不可忽略)
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-11-29 16:14:28 | 只看该作者
Runtime Settings->Run Logic里,把init和end块里面的vuser_init和vuser_end删掉,然后添加到中间的Run块里,就可以实现每次循环都运行vuser_init和vuser_end
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2005-11-29 16:17:53 | 只看该作者
前一种方法,当然是可以,当现在可能不适合我们的情况
后一个方法,我实验过了,不行,仍然提示用户没有登陆
我认为在LR中是没有办法实现这种要求的。

谢谢tacy_lee
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-12-16 20:34:44 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-12-31 15:30:56 | 只看该作者
这是一个值得思考的问题。。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2011-9-13 17:22:19 | 只看该作者
前一种方法,当然是可以,当现在可能不适合我们的情况
后一个方法,我实验过了,不行,仍然提示用户没有登 ...
qiuyangzh 发表于 2005-11-29 16:17

我觉得lz可以试试将用户名和密码参数化的方法,每次迭代取一条记录作为该次运行的数据,这样应该可以实现lz所说的问题。
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2018-5-29 09:28
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]测试连长

    10#
    发表于 2012-2-8 00:02:07 | 只看该作者
    系统的用户名密码被更改了。我想把密码重置。使用loadrunner怎么做(重置密码)。【规则是:改了十次才能够生效。那么应该是最后一次是初始化密码123456 才能够生效。 】怎么做。请求帮助!谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2012-2-8 09:37:46 | 只看该作者
    这个挖坟的厉害了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-2-8 09:52:01 | 只看该作者
    谁让你把登录放在Vuser_init()而不放在Action()里呢,迭代只迭代Action()部分,所以当然提示用户未登录啦。话说把登录部分放在Action()里也没什么关系吧,或者你新建一个Action(),把登录放在新建的Action()里
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 21:49 , Processed in 0.082961 second(s), 30 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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