众所周知,loadrunner可以使用多种协议进行性能测试。这里不得不提到JavaVuser协议。
你是否已经厌烦了在loadrunner脚本开发中,使用各种c函数进行复杂的字符串拼接,解析报文?
那么为什么不使用loadrunner提供的JavaVuser协议开发基于java的脚本呢。
1.前提
可以直接使用Java提供的逻辑代码的场景。
2.环境
loadrunner11.0
jdk1.6.32_x86_32
3.新建脚本
选择JavaVuser协议
4.设置Java环境
Vuser--RunTime Settings
5.编写JavaVuser脚本
下面这段脚本主要是模拟通过url路径访问一个应用的页面,返回首页内容的操作。
/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description: JavaVuser访问页面
*
* creator:jeffsui
*
* Create Time:2014-04-15
*
*/
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import lrapi.lr;
public class Actions
{
public int init() throws Throwable {
return 0;
}//end of init
public int action() throws Throwable {
/***访问首页事务*/
lr.start_transaction("访问GitBucket首页");
String serverUrl="http://localhost:8026/gitbucket";//请求页面url路径
OutputStreamWriter out =null;
try {
URL url =new URL(serverUrl);
URLConnection conn = url.openConnection();.//建立连接
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","UTF-8");//设置请求字符编码
out=new OutputStreamWriter(conn.getOutputStream(),"UTF-8");//设置回应字符编码
out.flush();
out.close();
InputStream in =conn.getInputStream();
byte[] buffer= new byte[in.available()];
in.read(buffer);
System.out.println(new String(buffer));
} catch (Exception e ) {
e.printStackTrace();
}finally{
if(out!=null){
try {
out.close();
} catch (Exception e ) {
e.printStackTrace();
}
}
}
lr.end_transaction("访问GitBucket首页", lr.AUTO);
return 0;
}//end of action
public int end() throws Throwable {
return 0;
}//end of end
}
6.编译
编译通过
No errors detected
7.执行脚本
Starting iteration 1.
Starting action Actions.
Notify: Transaction "访问GitBucket首页" started.
//首页内容省略
....
Notify: Transaction "访问GitBucket首页" ended with "Pass" status (Duration: 4.9907).
8.遇到问题
(1)目前loadrunner11只支持32位的jdk,切记
(2)RuntimeSettings里只是加载了基本jdk,如果需要加载其他第三方的jar包请在JavaFunction中加载
(3)JavaVuser的执行效率取决于你的Java代码,尽量减少loadrunner对他的干预。
来源:oschina
链接:https://my.oschina.net/u/123905/blog/343145