之前在某一家银行也接触过java写的性能接口脚本,最近因项目,也需编写java接口性能测试脚本,脑袋一下懵逼了,有点不知道从何入手。随后上网查了相关资料,自己又稍微总结了一下,与大家共同分享哈~
首先,新建一Java Vuser脚本,要清楚自己的项目脚本所需的jar包,然后在LoadRunner的Run-time Setting设置--Java环境下的classpath,添加jdk本地的bin/lib及下面的dt.jar包和tools.jar包,项目所需的一些jar包。(注意:我使用的是LR12的版本,可以支持jdk1.8;若是LR11,支持jdk最高版本为1.6)
其次,在脚本中,import导入自己所需的包。例如:
import lrapi.lr;
import java.text.SimpleDateFormat;
import java.util.Date;
具体脚本,举例上传图片一脚本仅供大家参考,有些可能不适用,但有些方法还是有共同之处的,其中包含获取当前时间、截取字段,判断和事务等内容。
/*
* LoadRunner Java script. (Build: _build_number_) * * Script Description: * */
importlrapi.lr; importcom.client.SunEcmClientApi; importcom.client.bean.ClientBatchBean; importcom.client.bean.ClientBatchFileBean; importcom.client.bean.ClientBatchIndexBean; importcom.client.bean.ClientFileBean; importcom.client.impl.SunEcmClientSocketApiImpl; importjava.text.SimpleDateFormat; importjava.util.Date;
public classActions {
public int init() throwsThrowable { return 0; }//end of init
public int action() throwsThrowable {
SunEcmClientApi clientApi=new SunEcmClientSocketApiImpl("188.177.155.87", 8021); String busiNo="TEST02-"+System.currentTimeMillis();
Date date = newDate(); SimpleDateFormat sim=new SimpleDateFormat("yyyyMMdd");//该日期格式例如20200116 String dateStr=sim.format(date); //lr.message("#######当前时间:["+dateStr+"]#######");
ClientBatchBean batchBean=newClientBatchBean(); String rsg=""; batchBean.setModelCode("TEST"); batchBean.setUser("uesr"); ClientBatchIndexBean batchIndexBean=newClientBatchIndexBean(); batchIndexBean.addCustomMap("BUSI_SERIAL_NO", busiNo);
batchIndexBean.addCustomMap("BUSI_START_DATE", dateStr); ClientBatchFileBean batchFileBean=newClientBatchFileBean(); batchFileBean.setFilePartName("TEST");
lr.start_transaction("01_上传");
for(int i=1; i<3; i++){ ClientFileBean fileBean=newClientFileBean(); fileBean.setFileName("E:/CSS/ceshi"+i+".jpg"); fileBean.setFileFormat("jpg");
fileBean.addOtherAtt("FILE_CN_NAME", "ceshi"+i+".jpg"); fileBean.addOtherAtt("BUSI_FILE_TYPE", "");//参数化调用 fileBean.addOtherAtt("BUSI_FILE_PAGENUM","1"); batchFileBean.addFile(fileBean); }
batchBean.setIndex_Object(batchIndexBean); batchBean.addDocument_Object(batchFileBean); try{ rsg=clientApi.upload(batchBean, "123"); lr.message("#######调用上传返回的信息[" + rsg + "]#######"); String code=rsg.split("<<::>>")[0];//字符串剪切,提取SUCCESS字符串 //lr.message("#######CODE:[" + code + "]#######");
if(code.equals("SUCCESS")){ lr.end_transaction("01_上传",lr.PASS); }else{ lr.end_transaction("01_上传",lr.FAIL); } } catch(Exception e) { e.printStackTrace(); lr.end_transaction("01_上传",lr.FAIL); lr.message(" 抛错信息 : " +e.toString() ); }
return 0; }//end of action
public int end() throwsThrowable { return 0; }//end of end
}