之前在某一家银行也接触过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脚本编写方法的更多相关文章

  1. shell脚本编写方法

    shell脚本编写就如同一门语言,涉及到运行环境.基本语法.变量定义.函数.参数(系统参数).条件判定.执行流程控制 等等问题. 本文就以下几个方面进行描述: 运行环境: shell  shebang ...

  2. lr的脚本调试方法

    1)  设置调试断点(快捷键F9)当设置断点的脚本,脚本运行到断点处,自动停止运行,我们可以通过查看运行日志,来观察脚本执行的情况: LR中也能设置断点,具体菜单在:Insert - Toggle B ...

  3. gulp脚本编写方法

    建立一个gulpfile.js文件,内容直接抄gulp-htmlmin的readme: var gulp = require('gulp'); var htmlmin = require('gulp- ...

  4. loadrunner 接口性能脚本编写(Get请求和Post请求)

    前段时间接触了一下loadrunner的接口性能测试,然后尝试了一下手动编写脚本,毕竟录制这种东西,不是每次都能通的,而且录制下来的脚本,通常是有很多其他杂七杂八的请求夹杂在中间,没有达到真正的压测接 ...

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

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

  6. Jmeter脚本录制方法(二)——手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

  7. Jmeter脚本录制方法(二)手工编写脚本(jmeter与fiddler结合使用)

    jmeter脚本录制方法可以分三种,前几天写的一篇文章中,已介绍了前两种,今天来说下第三种,手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式 ...

  8. 编写无Java脚本的JSP页面

    在上一章中总结了Web开发中应用MVC架构模式,将Servlet 用做控制器,JSP作为视图,JavaBean作为模型,实现业务流程控制,页面逻辑和业务逻辑的分离.然而,使用前面的技术实现MVC,并不 ...

  9. shell脚本编写自动启动服务方法

    shell脚本编写自动启动服务方法 前言 ln :创建连接文件 默认创建的是硬连接,好比复制 ,但是两个文件会同步命令:ln ./java/android/aa.txt aaa s :创建的是软连接变 ...

随机推荐

  1. 2018-8-10-UWP-分享用那个图标

    title author date CreateTime categories UWP 分享用那个图标 lindexi 2018-08-10 19:16:52 +0800 2018-2-13 17:2 ...

  2. 解析PHP跳出循环的方法以及continue、break、exit的区别介绍

    本篇文章是对PHP跳出循环的方法以及continue.break.exit的区别进行了详细的分析介绍,需要的朋友参考下   PHP中的循环结构大致有for循环,while循环,do{} while 循 ...

  3. HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map

    HashMap和HashSet的区别 HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collectio ...

  4. H3C Hosts文件

  5. 【codeforces 749B】Parallelogram is Back

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  6. flex布局属性说明

    flex布局又称为盒子布局或弹性布局,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为 Flex 布局. 给父容器添加display: flex/inline-flex;属性,即可使容器内容采 ...

  7. vue-learning:32 - component - 异步组件和工厂函数

    异步组件 只有在这个组件需要使用的时候才从服务器加载这一个组件模块,用于渲染,并且会把结果缓存起来供未来复用. 实现方法: 组件定义的时候,以一个工厂函数的形式传入,在需要组件的执行这个函数,然后将组 ...

  8. js 快速取整

    我们要将23.8转化成整数  有哪些方法呢 比如 Math.floor( ) 对数进行向下取整  它返回的是小于或等于函数参数,并且与之最接近的整数 Math.floor(5.1) 返回值 //5 M ...

  9. Trendalyzer is an information visualization software

    Trendalyzer is an information visualization software for animation of statistics that was initially ...

  10. 牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并)

    牛客2018国庆集训 DAY1 D Love Live!(01字典树+启发式合并) 题意:给你一颗树,要求找出简单路径上最大权值为1~n每个边权对应的最大异或和 题解: 根据异或的性质我们可以得到 \ ...