软件测试必会软件测试

05_jmeter之BeanShell PreProcessor

2018-07-15  本文已影响315人  王康健_0124

前置处理器:BeanShell PreProcessor

前置处理器: 在请求发送之前执行BeanShell PreProcessor

BeanShell PreProcessor :可以实现一些比较难处理的数据,在请求报文发送之前进行处理

jmeter 的中所有的数据的存储玩的就是一首HashMap,“用户自定义变量”、“CSV 数据文件设置”、“JDBC Request” 所有用到变量的地方,都是以键值对的形式进行存储的,而且是不确定存储数量,这正好符合的HashMap的特性,且beanshell中存取变量用的就是HashMap的get和put方法!


beanshell的使用

1. 直接取数据,使用第三方jar包进行数据处理

实例:调用第三方MD5jar包,对密码进行加密操作
① 先在“jmeter中的http请求下”创建一个前置处理器--beanShell PreProcessor
② 指定要用的jar包的位置:测试计划-->浏览-->需要使用的jar包

③ 选择要使用的jar包中的类:右键jar包-->用WinRAR打开-->一层一层的打开文件夹-->把com\guoyasoft\tool写入到beanshell中-->指定类名(这里的操作就是java中使用别的类的写法)

④ 写处理代码

import com.guoyasoft.tool.MD5Tool;


log.info("----------------------password="+vars.get("password"));
//这里直接一个打印输出作用,可以不用写
String password=MD5Tool.MD5(vars.get("password")+"&key=guoyasoft");
// MD5Tool类里有个MD5的方法,首先vars.get获取用户自定义变量中的password变量的值
// 然后加上代码中定义的key ,生成的结果存到一个String类型的变量中
// BeanShell玩的是HashMap,存的是一对对的键值对格式的数据,
// 存数据的方法是,vars.put("HashMap的key",加密的变量名字)

vars.put("password",password);

实际效果如下:做了两次日志打印,第一次没有加密,第二次进行了加密处理



2 直接使用JDK自带的类

因为jmeter也是java写的应用程序,也需要用到jdk环境变量,所以它也可以使用jdk自带的一下jar包

例如:获取系统当前时间,和昨天时间(建议在一个开发工具中写好,然后在拷到jmeter中)

package com.yiguo.business;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.testng.annotations.Test;

public class TestAuto {
    @Test
    public void startTime() {
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        // 首先需要new一个SimpleDateFormat 确定时间的格式

        Calendar c = Calendar.getInstance();
        // Calendar 使用默认时区和区域设置获取日历。返回的日历是基于默认时间带默认区域的当前时间。
        // 存到Calendar类型的变量中

        String starttime = sf.format(c.getTime());
        // 对象Calendar类型的变量c下面的方法getTime()方法,获取到时间
        // 然后使用new出来的SimpleDateFormat类型的对象下的format()方法把获取的时间格式转换为字符串类型

        c.add(Calendar.DAY_OF_MONTH, 1);
        // Calendar:获取当前时间 DAY_OF_MONTH:更改日 ,1:增加一天
        // 把Calendar类型的变量c, 重新赋值
        String endTime = sf.format(c.getTime());
        
        System.out.println("starttime="+starttime+"\r\nendTime="+endTime);

    }
}

上一篇 下一篇

猜你喜欢

热点阅读