LoadRunner + java脚本 第二章

问题:我们执行接口压力测试首先要生成测试URL,测试URL部分字段要进行MD5加密,如何生成这样的测试URL?

有两种方案进行如此测试:

1.使用java脚本生成一批加密后的测试URL,然后将这批数据放入Lr参数库中,编写c脚本进行调用

2.封装MD5加密等类,并将构建测试URL类一并打包,加载到LR-ClassPath中,这样就可以在LR中编写java脚本调用jar包自动生成测试URL了

备注:LR11中在controller跑c脚本支持10000用户,跑java脚本支持1000用户;LR12仅支持50用户,要想使用LR12跑压测,有能力的话可以去写线程池来提高虚拟用户数;

我们使用第二种方法,首先要在Eclipse中新建一个java工程,然后加入我们需要的类,需要Interface(FilmNew.java/Plans.java)类里边封装接口的主要方法参数,然后是基础类(MD5.java/GetENC.java/TimeSimple.java)生成加密数据,外部调用类(Vug.java)用以生成测试URL,结构如下图所示:

1.在FilmNews.java和Plans.java中主要通过HashMap存储接口参数如下:

	// 影厅接口
	public HashMap<String, String> hallsByCinemaId(String cinemaId) {
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("method", "getHallsByCinemaId");
		params.put("uid", uid);
		params.put("cinemaId", cinemaId); // 影院id要动态生成
		return params;
	}

2.MD5.java算法可以去百度一下,下边列出TimeSimple.java中获取某天日期方法如下:

@SuppressWarnings("static-access")
	public static String nextDataSimple(int index){
		Date date=new Date();//
		Calendar calendar = new GregorianCalendar();
		calendar.setTime(date);
		calendar.add(calendar.DATE,index);//根据index获取日期
		date=calendar.getTime(); //获取某一天日期
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(date);
	}

3.Vug.java中主要是一个传入host与(FilmNews.java返回的)HashMap生成测试URL的方法如下:

public String getURL(String host, HashMap<String, String> params){
		StringBuilder url = new StringBuilder();
		url.append(host + "?");
		params.put("time_stamp", String.valueOf(new Date().getTime()));
		String enc = GetENC.getEnc(params, Md5Key);
		for (Entry<String, String> e : params.entrySet()) {
			url.append(e.getKey() + "=" + e.getValue() + "&");
		}
		url.append("enc=" + enc);
		return url.toString();
	}

4.当这些脚本准备完成后,我们需要导出jar包,通过上边的截图可以看到我使用的是JDK1.7,而LR11不支持JDK1.7导出的jar包,我们需要更改成JDK1.6导出jar;

右键项目-Properties-Java Compiler-将JDK Compliance改成1.6,然后在以Export-JAR file即可

5.导出的jar包,任意起个名即可,然后将该jar包导入LR11-java vuser-Run-time Settings-Classpath如下图所示:

配置完成后,就可以再Actions界面调用jar中的方法

时间: 2024-10-10 06:02:19

LoadRunner + java脚本 第二章的相关文章

LoadRunner + java脚本 第一章

最近两天刚刚弄了loadRunner-java脚本编写,赶紧记下来别丢了 1.环境配置 LR12支持JDK1.7 LR11仅支持JDK1.6及以下版本 我使用的为LR11,现有两种方法使LR11支持java脚本 ①在电脑上安装JDK1.6(32位的),并将环境变量Java_HOME/CLASSPATH/PATH配置成JDK1.6的,具体配置方法请搜索百度‘JDK环境变量配置’ ②这种方法是解决电脑环境JDK1.7,而需要支持java脚本的情况, 首先安装32位JDK1.6,然后创建java Vu

LoadRunner + java脚本 第三章

1.Java Vuser 模板脚本如下: /* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import java.util.HashMap; import com.Interface.FilmNews; import com.Interface.Plans; import com.vug.Vug; import lrapi.web; import lrapi.lr; public

java学习第二章总结

连续上了一个星期的课,也算慢慢适应了这种紧张的学习节奏.现在来总结下第二章所学的内容: 第二章主要是讲java的基础语法,他主要由这几个方面构成:常量,变量,数据类型,关键字,标识符,运算符,表达式,注释以及语句等构成. 数据类型是java控制内存的关键元素,java通过数据类型声明来对变量或者常量进行内存空间的分配,并将其标注好名称(即标识符).不同的数据类型,所分配的空间大小都不一样:整型中byte,short,int,long所对应的空间大小分别为1,2,4,8个字节:浮点型中float,

Java复习第二章

Java第二章 标识符由字母数字下划线和美元符号组成,长度不受限 : 第一个字符不是数字字符 : 不能是关键字 : 标志不能是 true false null:区分大小写 (中文可以作为变量名) java的基本数据类型有8种分别 为:booleam.byte.short.char.int.long.float.double 不赋值默认 是false或者0或者null(byte); 八进制在赋值数字前加0,十六进制加0x: 1 2 4 8 byte short int long:2 char ch

JAVA 入门第二章 (面对对象)

本渣渣鸽了一个月终于有时间更新.因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装.继承.多态面向对象三大特性,感受和c++之间的异同,下面是学习路线. 1.类和对象  1-1 什么是类和对象 1-2 如何定义 Java 中的类 1-3 如何使用 Java 中的对象 1-4 Java 中的成员变量和局部变量 1-5 Java 中的构造方法 1-6 Java 中的 static 使

深入理解java虚拟机-第二章

第2章 Java内存区域与内存溢出异常 运行数据区域 1.程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 2.Java虚拟机栈(Stack)线程私有,每一个方法调用时都会创建一个栈帧(Stack Frame)用于存储局部变量表.操作数栈.动态链接.方法出口等信息.局部变量存放了编译期可知的各种基本数据类型(boolean,byte,char,short,int,float,long,double).对象引用(

Thinking in JAVA笔记——第二章 一切都是对象

2.1用引用操作对象 虽然一切皆对象,但实际上用的是对象的“引用”. 理解:引用可以理解为别名,引用“知道”对象实际的存放地址,并通过引用可以操作对象 2.2创建对象 new操作符 2.2.1 对象存储位置 1)寄存器:不能直接控制 2)堆栈:位于RAM,对象引用,基本类型存于堆栈 3)堆:位于RAM的动态存储区,存放所有的Java对象 4)常量存贮:代码内部或ROM中 5)非RAM存储:流对象和持久化对象 2.2.2特例:基本类型 置于堆栈中,具有包装器类,将基本类型转换为对象 高精度类Big

Upgrading to Java 8——第二章 Method References(方法引用)

概述 很多java 方法 会使用函数式接口作为参数.例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下: public static T[] sort(T[] array, Comparator<? super T> comparator) 相对于传递一个Compartor的实例给sort方法,不如传递一个Lambda表达式. 进一步,我们可以传递一个方法引用来代替Lambda表达式,一个简单的方法引用

java基础第二章

一.变量 1.变量是内存中的一个标识符号,用于存储数据 2.变量命名规则--[P35页]    必须以字母.下划线 _ .美元符号 $ 开头 变量中,可以包括数字 变量中,不能出现特殊的符号,空格 java中的关键字(红色字体),不能做变量名 3.变量命名,遵循 骆驼命名法(变量由1个以上的单词组成,第1个单词首字母小写,后面单词的首字母大写) 二.数据类型 a)数字(整型int(整数).双精度浮点型double(小数)) b)字符型(char),存储单个字符 c)字符串型(String),存储