使用Jmeter进行BeanShell脚本时,比较适合编写简单逻辑判断;在实际的项目测试中,会夹杂着更多方法逻辑,这个时候我们需要借助第三方开发工具编写好代码,然后在Jmeter内进行调用;如:请求数据加密规则是开发人员自定义,那么需要和开发要工具类引入使用才可以进行后续测试。
引入外部文件方式:
- 将第三方jar包放到Jmeter目录下的ext/lib下,通过import 关键字直接导入;
- Jmeter 使用外部java文件类;通过 source 关键字加载源码;
本章节主要讲解第二种方式;
- 使用 source加载源码,路径可以是绝对路径和相对路径;
- 加载源文件后可以直接使用 类名.方法名(参数)
实战案例:
1、使用idea创建工具类 CommonUtil.java;
import java.util.Random;
import java.util.UUID;
public class CommonUtil {
/**
* 获取验证码随机数
* @param length
* @return
*/
public static String getRandomCode(int length) {
String sources = "0123456789qwertyuiopasdfghjklzxcvbnm";
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int j = 0; j < length; j++) {
sb.append(sources.charAt(random.nextInt(9)));
}
return sb.toString();
}
/**
* 生成uuid
*
* @return
*/
public static String generateUUID() {
return UUID.randomUUID().toString().replaceAll("-", "").substring(0, 32);
}
}
2、Jmeter新建线程组,BeanShell前置,HTTP采样器,察看结果树
线程组:初始设置10个线程数
BeanShell前置:录入调用外部Java文件代码段,并将调用的结果赋值给变量
source("D:/article/CommonUtil.java");// Java 外部文件位置,绝对路径或是相对路径
String randomCode = CommonUtil.getRandomCode(4);// 调用文件内置方法
String uuid = CommonUtil.generateUUID();// 调用文件内置方法
vars.put("id",randomCode); //设置为线程组内变量id
vars.put("title",uuid); //设置为线程组内变量title
log.info("randomCode====="+randomCode);
log.info("uuid====="+uuid);
HTTP采样器:以“商品详情”接口为案例,id和标题通过获取变量名的值再发起请求;
察看结果树:运行程序后查看结果,可发现启动了10个线程进行请求,查看每个线程的请求参数都是不一样,证明都是从变量获取的值,成功了调用了外部文件的方法;
版权归原作者 ♂老码♂ 所有, 如有侵权,请联系我们删除。