之前在某一家银行也接触过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. Java语法格式

    任何一种语言都有自己的语法规则,Java也一样,既然是规则,那么知道其如何使用就可以了. 代码都定义在类中,类由class来定义,区分 public class  和  class; 代码严格区分大小 ...

  2. 使用Fiddler抓取微信饿了么小程序数据

    使用Fiddler抓取微信饿了么小程序数据 准备 一部装载Android 7.0以下的手机:此处使用华为荣耀5x 微信小程序7.0以下版本:此处为6.6.7.此处可通过豌豆荚应用下载. 安装好的Fid ...

  3. Python--day32--ftp文件传输报错的原因

    解决办法:把buffer改小 server.py #实现一个大文件的上传或下载 #配置文件 ip地址 端口号 import json import socket import struct sk = ...

  4. 2018-8-10-dot-net-core-使用-IPC-进程通信

    title author date CreateTime categories dot net core 使用 IPC 进程通信 lindexi 2018-08-10 19:16:52 +0800 2 ...

  5. 2018-2-13-C#-通配符转正则

    title author date CreateTime categories C# 通配符转正则 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23:3 ...

  6. linux vmalloc 和 其友

    我们展示给你的下一个内存分配函数是 vmlloc, 它在虚拟内存空间分配一块连续的内存 区. 尽管这些页在物理内存中不连续 (使用一个单独的对 alloc_page 的调用来获得每个 页), 内核看它 ...

  7. 浅谈vue $mount()

    Vue 的$mount()为手动挂载,在项目中可用于延时挂载(例如在挂载之前要进行一些其他操作.判断等),之后要手动挂载上.new Vue时,el和$mount并没有本质上的不同. 具体见代码: 顺便 ...

  8. es6笔记 day2---函数默认参数、箭头函数、剩余参数

    函数变化: 1.函数默认参数 2.函数参数默认是已经定义了,不能再使用let.const声明 3.扩展运算符.rest运算符 ...就是扩展运算符,它的作用就是把数组给展开 结合函数使用传参,也可以将 ...

  9. FFT NTT 错误总结(持续更新)

    FFT NTT错误总结 1 处理\(r\)数组时忘记赋值 r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1)); 2 ...

  10. 30分钟全方位了解阿里云Elasticsearch(附公开课完整视频)

    摘要: 阿里云Elasticsearch提供100%兼容开源Elasticsearch的功能,以及Security.Machine Learning.Graph.APM等商业功能,致力于数据分析.数据 ...