之前在某一家银行也接触过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. HDU 1271

    这题做了好久..... 理解别人的代码都理解了好久!!!太弱太弱. #include<iostream> #include<algorithm> #include<cma ...

  2. CSS滤镜 :灰色 ,方便站点哀悼

    html {  -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); ...

  3. Vue的Router路由传参

    一.文件结构 二.vue.js 打开此链接 https://cdn.bootcss.com/vue/2.6.10/vue.js 复制粘贴页面的所有内容 三.vue-router.js 打开此链接  h ...

  4. Python 基础课程大纲

      c0102_变量及数据类型.ipynb 1.数据类型概述 Python标准数据类型:Numbers数字,String字符串,List列表,Tuple元祖,Dici字典.布尔类型 # Numbers ...

  5. 后缀数组 + LCP加速多模式匹配算法 O(m+logn)

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> ...

  6. CSS 个性化滚动条样式

    页面中有许多内容过多时,为了不影响整体布局,总会有滚动效果代替.but,许多情况浏览器自带的滚动条样式与整体UI 界面不搭啊,怎么办,当然作为界面的化妆师CSS就出手啦~ 滚动条样式由多个伪类组成 下 ...

  7. java编译器优化和运行期优化

    概述    最近在看jvm优化,总结一下学习的相关知识 (一)javac编译器 编译过程 1.解析与填充符号表过程 1).词法.语法分析    词法分析将源代码的字符流转变为标记集合,单个字符是程序编 ...

  8. Leecoder466 Count The Repetitons

    Leecoder466 Count The Repetitons 题目大意 定义\([s,n]\)为连续\(n\)个串\(s\)构成的串 现在给定\(s_1,n_1,s_2,n_2\),求最大的\(m ...

  9. ZOJ——String Successor(字符串模拟题目)

    ZOJ Problem Set - 3490 String Successor Time Limit: 2 Seconds      Memory Limit: 65536 KB The succes ...

  10. codeforces 1217E E. Sum Queries? (线段树

    codeforces 1217E E. Sum Queries? (线段树 传送门:https://codeforces.com/contest/1217/problem/E 题意: n个数,m次询问 ...