51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[求助] 关于java vuser脚本init()方法执行次数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-18 14:48:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
import lrapi.lr;
public class Actions
{
        public int init() {
                     /*完成初始化及与服务器建立连接*/
        return 0;
        }//end of init

        public int action() {
                     /*执行被测试的业务操作*/
        return 0;
        }//end of action

        public int end() {
        return 0;
        }//end of end
}
1.以上java vuser脚本分为init(),action(),end()三部分,我想请教这三部分与Loadrunner提供的Vuser_init,Actions,vuser_end有什么不同?为什么我将init()部分的初始化代码放到vuser_init中,代码无法得到执行呢
2.这个脚本如果我执行100用户并发的情况下,init()部分的建立连接是建立100个连接还是只是建立了1个连接,在action()部分完成了100个并发?如果我要将init()部分只做一次,action()部分做100次应该怎样处理?

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

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-8-18 16:43:38 | 只看该作者
希望能得到大家的帮助,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-8-19 09:46:36 | 只看该作者
期待答案
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-8-19 14:29:41 | 只看该作者
期待各位的解答。。。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-8-19 23:20:58 | 只看该作者
既然没人回答 我就先抛砖引玉吧,嘿嘿

1、init和end部分已经明确说明了不要在哪里写任何代码(写上也没用)

2、Java Vuser  Class中的init()、action()、end()三部分就相当于普通模式下的init、action、end三部分,举例来说:
如果一个用户执行的情况下,设置了runlogic为3,init()执行了一次、action()执行了三次、end()执行了一次,懂没?!  
o(∩_∩)o...

import lrapi.lr;
public class Actions
{
        public int init() {
                     /*完成初始化及与服务器建立连接*/
        return 0;
        }//end of init

        public int action() {
                     /*执行被测试的业务操作*/
        return 0;
        }//end of action

        public int end() {
        return 0;
        }//end of end
}
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-8-20 20:42:48 | 只看该作者
十分感谢★星の金币给予的指导,谢谢。

这个问题也就是说,不管我并发多少用户,init()和end()方法都只做一次,并发的用户数只对action()方法生效。另外,我想问一下,如果我要让init()方法中的建立多个连接测试程序应该怎样写,或者在loadrunner哪个地方进行设置可以做到?谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-8-21 11:20:33 | 只看该作者
不客气!
先纠正个错误
正确答案应该是:init()、end()执行的次数是和并发的用户数量是一致的(在场景中)


你的第二个问题 我不大懂啥意思,我就先具个例子给你看看吧,其实javaVuser用的一些函数脚本与默认的脚本超像,举例如下:


…………………………省略了
        public int init() throws lrapi.exceptions.HttpException {
            lr.error_message("我是init");
            web.url("打开订票系统",
                    "URL=http://127.0.0.1:1080/mercuryWebTours/",
                    new String[]{
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                "LAST"
                        });

                return 0;
        }//end of init
……………………再次省略  (*^__^*) 嘻嘻……

上面的init一共做了两个操作一个是 在Replay Log中打印“我是init”,另外也打开了Loadrunner自带的“Mecury Tours”的首页

你可以去查看一下  LR的帮助 有关JavaVuser的说明,可以参考

&……&……&……&……
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-8-21 12:04:23 | 只看该作者
学一下~没用JAVA 写过LR
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-8-21 23:43:43 | 只看该作者
★星の金币你解答的太对了,我后来做了一个实验也得到了验证。init()与end()并发数是多少他就执行多少次,但是设置了迭代后,迭代过程是不做init()和end()部分的。十分感谢。

其实我开始是不清楚这个原理,现在清楚了我再请教另外一个问题,有什么办法能让init()部分不受并发数的影响,也就是说我100个并发也只执行init()1次吗?因为我现在这个测试的系统是长链接的方式,建立1次会话链接后再做其他操作也不需要再链接了,我现在的代码只能是达到测试并发链接数的目的。

有知道的朋友也给我指点一下思路,感谢。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-8-23 19:31:14 | 只看该作者
上面的问题可能是我没有描述清楚,特将测试的网络结构图附上。见附件,希望继续得到各位的帮助。

测试目的分两部分:
1.测试综合前置系统能接入的外挂系统数,也就是能建立最大的通道数。目前的代码已经可以满足这种测试。
2.测试在外挂系统一个ejb通道上,综合前置系统能承受的最大交易并发数,目前由于现在的测试脚本中
init()方法主要是与外挂系统与综合前置建立ejb通道,测试脚本中使用了综合前置系统提供的连接器类,所以并发10个用户的情况下,loadrunner都根据并发用户数就建立了10个ejb链接,如果把建立ejb通道链接的代码单独出来,但是loadrunner加载脚本时还是没有地方只能让其执行一次,就算可以让只执行一次,action()部分的业务操作又没有办法共享ejb通道链接。

现在想知道如何才能做到在建立一个ejb链接的情况下完成多用户并发测试。

另外:
有一种测试的方法是,直接录制外挂系统的客户端画面形成测试脚本,但是这种方式测试的结果包括了外挂系统本身的系统与网络开销,所以还是希望能通过自己编写的脚本来测试。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-8-24 15:01:37 | 只看该作者
以上问题可能是我没有描述清楚,特将测试的网络结构图附上。见附件,希望继续得到各位的帮助。

测试目的分两部分:
1.测试综合前置系统能接入的外挂系统数,也就是能建立最大的通道数。目前的代码已经可以满足这种测试。
2.测试在外挂系统一个ejb通道上,综合前置系统能承受的最大交易并发数,目前由于现在的测试脚本中
init()方法主要是与外挂系统与综合前置建立ejb通道,测试脚本中使用了综合前置系统提供的连接器类,所以并发10个用户的情况下,loadrunner都根据并发用户数就建立了10个ejb链接,如果把建立ejb通道链接的代码单独出来,但是loadrunner加载脚本时还是没有地方只能让其执行一次,就算可以让只执行一次,action()部分的业务操作又没有办法共享ejb通道链接。

现在想知道如何才能做到在建立一个ejb链接的情况下完成多用户并发测试。

另外:
有一种测试的方法是,直接录制外挂系统的客户端画面形成测试脚本,但是这种方式测试的结果包括了外挂系统本身的系统与网络开销,所以还是希望能通过自己编写的脚本来测试。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-8-25 19:41:11 | 只看该作者
有朋友遇到过这种情况吗,有什么好办法不妨说来听听呀
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-11 22:37 , Processed in 0.075162 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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