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中的方法

原文地址:https://www.cnblogs.com/mayibanjiah/p/4821097.html