LR Java脚本编写方法
之前在某一家银行也接触过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:
*
*/ import lrapi.lr;
import com.client.SunEcmClientApi;
import com.client.bean.ClientBatchBean;
import com.client.bean.ClientBatchFileBean;
import com.client.bean.ClientBatchIndexBean;
import com.client.bean.ClientFileBean;
import com.client.impl.SunEcmClientSocketApiImpl;
import java.text.SimpleDateFormat;
import java.util.Date; public class Actions
{ public int init() throws Throwable {
return 0;
}//end of init public int action() throws Throwable { SunEcmClientApi clientApi=new SunEcmClientSocketApiImpl("188.177.155.87", 8021);
String busiNo="TEST02-"+System.currentTimeMillis(); Date date = new Date();
SimpleDateFormat sim=new SimpleDateFormat("yyyyMMdd");//该日期格式例如20200116
String dateStr=sim.format(date);
//lr.message("#######当前时间:["+dateStr+"]#######"); ClientBatchBean batchBean=new ClientBatchBean();
String rsg="";
batchBean.setModelCode("TEST");
batchBean.setUser("uesr");
ClientBatchIndexBean batchIndexBean=new ClientBatchIndexBean();
batchIndexBean.addCustomMap("BUSI_SERIAL_NO", busiNo);
batchIndexBean.addCustomMap("BUSI_START_DATE", dateStr);
ClientBatchFileBean batchFileBean=new ClientBatchFileBean();
batchFileBean.setFilePartName("TEST"); lr.start_transaction("01_上传"); for(int i=1; i<3; i++){
ClientFileBean fileBean=new ClientFileBean();
fileBean.setFileName("E:/CSS/ceshi"+i+".jpg");
fileBean.setFileFormat("jpg");
fileBean.addOtherAtt("FILE_CN_NAME", "ceshi"+i+".jpg");
fileBean.addOtherAtt("BUSI_FILE_TYPE", "<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() throws Throwable {
return 0;
}//end of end }
LR Java脚本编写方法的更多相关文章
- shell脚本编写方法
shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell shebang ...
- lr的脚本调试方法
1) 设置调试断点(快捷键F9)当设置断点的脚本,脚本运行到断点处,自动停止运行,我们可以通过查看运行日志,来观察脚本执行的情况: LR中也能设置断点,具体菜单在:Insert - Toggle B ...
- gulp脚本编写方法
建立一个gulpfile.js文件,内容直接抄gulp-htmlmin的readme: var gulp = require('gulp'); var htmlmin = require('gulp- ...
- loadrunner 接口性能脚本编写(Get请求和Post请求)
前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...
- loadrunner之Java Vuser协议脚本编写
步骤:1.根据自己使用的lr版面选择jdk 1)LR11 1.6 32位 2)LR12 1.7 32位 2.安装好jdk,并搭建java环境变量,安装好java代码编写工具 3.在sr ...
- Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)
jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...
- 编写无Java脚本的JSP页面
在上一章中总结了Web开发中应用MVC架构模式,将Servlet 用做控制器,JSP作为视图,JavaBean作为模型,实现业务流程控制,页面逻辑和业务逻辑的分离.然而,使用前面的技术实现MVC,并不 ...
- shell脚本编写自动启动服务方法
shell脚本编写自动启动服务方法 前言 ln :创建连接文件 默认创建的是硬连接,好比复制 ,但是两个文件会同步命令:ln ./java/android/aa.txt aaa s :创建的是软连接变 ...
随机推荐
- 2018-8-10-UWP-分享用那个图标
title author date CreateTime categories UWP 分享用那个图标 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17:2 ...
- 解析PHP跳出循环的方法以及continue、break、exit的区别介绍
本篇文章是对PHP跳出循环的方法以及continue.break.exit的区别进行了详细的分析介绍,需要的朋友参考下 PHP中的循环结构大致有for循环,while循环,do{} while 循 ...
- HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map
HashMap和HashSet的区别 HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collectio ...
- H3C Hosts文件
- 【codeforces 749B】Parallelogram is Back
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- flex布局属性说明
flex布局又称为盒子布局或弹性布局,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为 Flex 布局. 给父容器添加display: flex/inline-flex;属性,即可使容器内容采 ...
- vue-learning:32 - component - 异步组件和工厂函数
异步组件 只有在这个组件需要使用的时候才从服务器加载这一个组件模块,用于渲染,并且会把结果缓存起来供未来复用. 实现方法: 组件定义的时候,以一个工厂函数的形式传入,在需要组件的执行这个函数,然后将组 ...
- js 快速取整
我们要将23.8转化成整数 有哪些方法呢 比如 Math.floor( ) 对数进行向下取整 它返回的是小于或等于函数参数,并且与之最接近的整数 Math.floor(5.1) 返回值 //5 M ...
- Trendalyzer is an information visualization software
Trendalyzer is an information visualization software for animation of statistics that was initially ...
- 牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并)
牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \ ...