虽然LR对C有较好的支持,但有时使用Java Vuser会更方便,以下描述通过LR来编写Java脚本以及调用jar包的基本步骤。

1、安装配置java环境

  LR的java vuser脚本的执行依赖于脚本所在机器的java环境,LR并没有独立java运行环境,因此首先要在Vugen所在机器上安装java环境。特别注意:LR的不同版本对于JDK版本的支持是不同的,详见:http://blog.csdn.net/achang21/article/details/45540483。

环境说明:

LoadRunner11:安装路径:C:\Program Files\HP\LoadRunner

平台:windows 7sp1 32位

java版本:JDK1.6(LR11最高支持jdk1.6 32位)

步骤:

1)安装jdk1.6,安装目录:C:\Program Files\Java\jdk1.6.0_43

2)配置环境变量CLASSPATH和PAHT

在CLASSPATH中配置当前路径.和JDK的类库路径以及LR自己的类库路径,如:

CLASSPATH=.;C:\Program Files\Java\jdk1.6.0_43\lib;C:\Program Files\Java\jdk1.6.0_43\jre\lib;C:\Program Files\HP\LoadRunner\lib;C:\Program Files\HP\LoadRunner\classes

CLASSPATH加入: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\HP\LoadRunner\classes

在PATH中增加配置当前路径.和JDK执行目录路径,如:

PATH=.;C:\Program Files\Java\jdk1.6.0_43\bin;C:\Program Files\Java\jdk1.6.0_43\jre\bin;C:\Program Files\SlickEditV18.0.1\win\;C:\ProgramFiles\TortoiseSVN\bin

PATH中加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;D:\Program Files\HP\LoadRunner\bin;

3)重启下电脑,cmd中执行java -version检查环境是否正常

2、新建java vuser脚本

启动LR的Vugen中,新建一个Java Vuser协议类型的脚本:

基本示例:

如下可以看到,java vuser自动使用了vugen所在机器的java环境:

3、调用java类

当在LR中编写java脚本需要使用jdk标准库以外的类库时,直接将被调用的java字节码文件置于脚本目录下即可,步骤如下:

1)在eclipse(Version: Luna Service Release 1 (4.4.1))中新建java Project项目,定义项目名称、路径以及选定使用的jre版本:

2)在新建的项目中src目录下新建类Class,定义类名(一般以大写字母开头):

3)编写java代码,其中通过package指定java文件所在的包,如下所示:

4)将java项目输出目录(一般为项目的bin目录)下的字节码文件(.class)拷贝到LR的java vuser脚本目录下:

eclipse java项目下生成的字节码:

  

置于LR的java vuser脚本下:

5)LR的java vuser脚本中进行调用,注意需要import进被调用的类:

import lrapi.lr;
import com.lr.test.*; public class Actions
{ public int init() throws Throwable
{
return 0;
}//end of init public int action() throws Throwable
{
helloword.main((String[]) null);
//lr.message("Notify:vuser:" + lr.get_vuser_id() + " testing!!!");
return 0;
}//end of action public int end() throws Throwable
{
return 0;
}//end of end
}

4、调用jar包

以上调用java类的方法中也可以直接将java的类打包成jar包供LR的java vuser使用。

1)生成jar包文件

eclipse中导出jar包方法:

a、在eclipse中选择你要导出的类或者package,右击,选择Export子选项;

b、在弹出的对话框中,选择java文件---选择JAR file,单击next;

c、在JAR file后面的文本框中选择你要生成的jar包的位置以及名字,注意在Export generated class files and resources和Export java source files and resources前面打上勾,单击next;

d、单击两次next按钮,到达JAR Manifest Specification。注意在最底下的Main class后面的文本框中选择你的jar包的入口类。单击Finish,完成。 你可以在dos环境下,进入你的jar所在的目录,运行 java -jar 名字.jar,检测运行是否正确。

通过maven打jar包:

  mvn package -Dmaven.test.skip=ture

2)将jar包导入到LoadRunner脚本中

  在Vuser Generator的Run-time Setting > Java Enviroment settings > Classpath 中选择 Add Jar or zip file,把jar包文件和必要的库文件引入

5、实例(发送http post请求)

由于示例脚本中需要调用外部类的加密方法,因此首先将外部的类jar包包含到LR中来,如下图所示,所有依赖的jar包需要都包含进来。

脚本实例:

注意:当需要使用web系列方法(web.reg_save_param等)时  需要import lrapi.web;

/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/ import lrapi.lr;
import lrapi.web;
import com.lr.test.*; public class Actions
{ public int init() throws Throwable
{
return 0;
}//end of init public int action() throws Throwable
{
String str_result = "1"; String html_body = "gw_address=<route_lanip>&gw_port=2060&gw_id=<gw_id>&route_mac=<route_mac>&route_version=<route_version>&SSID1=<ssid>&mac=<client_mac>&imei=&imsi=&openid="; String html_body_encode = EncruptCode.encruptCode(html_body);
String htmlbody = "Body=p=" + html_body_encode; lr.message("html_body_encode:" + html_body_encode); try { lr.start_transaction("qq_app"); //关联api_code值
web.reg_save_param ("param_api_code",
new String []{
"NOTFOUND=ERROR",
"LB=api_code\":",
"RB=,",
"LAST"}); //http post请求
web.custom_request("web_post_request",
"Method=POST",
new String[]{
"URL=http://www.xxx.com/api/qqConnect",
htmlbody,
"TargetFrame=",
"LAST"}); //lr.output_message("param_api_code:" + lr.eval_string("{param_api_code}")); if (str_result.equals(lr.eval_string("<param_api_code>")))
{
lr.end_transaction("qq_app", lr.PASS);
}
else
{
lr.end_transaction("qq_app", lr.FAIL);
} }
catch (Exception e) {} return 0;
}//end of action public int end() throws Throwable
{
return 0;
}//end of end
}

LR之Java Vuser的更多相关文章

  1. LR接口测试---Java Vuser之增删改查

    import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...

  2. LR之Java Vuser II

    最近项目待压测的服务端协议使用的是java的Netty框架开发,而传输的业务数据使用了google protobuf进行序列化,然后通过tcp数据流与客户端通讯.这一次的压测脚本决定使用LR的java ...

  3. LR接口测试---Java Vuser之jdbc查询(调试前)

    在eclipse下编写好的代码: import lrapi.lr; import java.sql.Connection; import java.sql.DriverManager; import ...

  4. loadrunner之Java Vuser协议脚本编写

    步骤:1.根据自己使用的lr版面选择jdk 1)LR11   1.6   32位 2)LR12   1.7   32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...

  5. loadrunner11中java vuser引用jar包

    1.创建工程,新建类,HelloWorld.java,代码如下: package com.liuke; public class HelloWorld { public String getHello ...

  6. 【原创】LoadRunner Java Vuser开发环境配置指南

    1 编写目的 本文主要介绍Java运行环境的配置,同时通过编写HelloWorld程序,讲解在LoadRunner下如何开发简单的Java Vuser脚本.关于Java语言的深入学习,大家可以参考其他 ...

  7. LR使用Java User协议环境报错Please add the <JDK>\bin to the path and try again

    看标题报错信息就知道,这是java编译及运行环境配置问题,运行LR脚本时,LR代理找不到java的JDK环境,当然,可能有人会遇到说,我在cmd窗口javac 环境是没问题的呀,是的,这就要看你的jd ...

  8. LoadRunner JAVA Vuser接口测试

    注:JDK只支持1.6 1.创建工程Test2.写个经典的HelloWorld类.3.Runas--->Java Application运行下4.将工程下的整个com包拷贝到loadrunner ...

  9. LoadRunner系列之—-03 用Java Vuser协议编写接口测试脚本

    待测试接口用java语言实现,且项目中调用该接口需要用专门的jar包.这种情况可以用Java Vuser协议实现接口调用脚本,类似java代码. 代码样例如下: /* * LoadRunner Jav ...

随机推荐

  1. set UVA 11136 Hoax or what

    题目传送门 题意:训练指南P245 分析:set维护,查询删除最大最小值 #include <bits/stdc++.h> using namespace std; typedef lon ...

  2. Codeforces 629C Famil Door and Brackets(DP)

    题目大概说给一个长m的括号序列s,要在其前面和后面添加括号使其变为合法的长度n的括号序列,p+s+q,问有几种方式.(合法的括号序列当且仅当左括号总数等于右括号总数且任何一个前缀左括号数大于等于右括号 ...

  3. C#Excel的导入与导出

    1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...

  4. [Word]将word文件中的软回车符[↓]替换为硬回车符

    Ctrl+H,替换对话框 搜索:^l 替换:^p 确定替换即可.

  5. 配置FastDFS

    一.安装 (一)下载FastDFS安装包 FastDFS官方论坛:http://www.csource.org 下载1:http://sourceforge.net/projects/fastdfs/ ...

  6. jq prepend() 方法在被选元素的开头(仍位于内部)插入指定内容。 提示:prepend() 和 prependTo() 方法作用相同。差异在于语法:内容和选择器的位置,以及 prependTo() 无法使用函数来插入内容。

    <html><head><script type="text/javascript" src="/jquery/jquery.js" ...

  7. 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM

    一. 修改化定制Android4.0系统 Android系统启动时,先加载Linux内核,在Linux的framebuffer驱动里可以定制开 机界面,Linux内核启动成功后,挂载根文件系统,启动A ...

  8. 关于Go,你可能不注意的7件事(转的)

    http://tonybai.com/2015/09/17/7-things-you-may-not-pay-attation-to-in-go/ code https://github.com/bi ...

  9. Oracle connect by 树查询之二

    先用scott用户下的emp表做实验.emp表有个字段,一个是empno(员工编号),另一个是mgr(上级经理编号)下面是表中所有数据 1 select * from emp start with e ...

  10. Watering Grass

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 题意: 给定一条草坪,草坪上有n个喷水装置.草坪长 ...