Jmeter BeanShell 内置变量vars、props、prev的使用详解

下面是“Jmeter BeanShell 内置变量vars、props、prev的使用详解”的完整攻略。

1. 什么是BeanShell内置变量

在Jmeter中,BeanShell是一种脚本语言。当我们需要在Jmeter中编写脚本时,可以使用BeanShell语言。Jmeter中已经内置了许多BeanShell变量,这些变量中包含了大量的信息,可以帮助我们编写更加有效的脚本。

2. 内置变量vars的使用

vars是一个Map类型的BeanShell变量,它是用来保存请求参数、响应数据和用户定义的变量等信息的。可以通过vars.get("变量名")方法来获取变量的值,通过vars.put("变量名","变量值")方法来设置变量的值。示例代码如下:

vars.put("username", "testuser"); // 将"username"变量的值设为"testuser"
String username = vars.get("username"); // 获取username变量的值,赋值给username变量

3. 内置变量props的使用

props也是一个Map类型的BeanShell变量,它代表了Jmeter运行时的参数。可以通过props.getProperty("参数名")方法来获取参数的值,通过put.setProperty("参数名","参数值")方法来设置参数的值。示例代码如下:

props.setProperty("threadNum", "10"); // 将"threadNum"参数的值设为10
int threadNum = Integer.parseInt(props.getProperty("threadNum")); // 获取threadNum参数的值,赋值给threadNum变量

4. 内置变量prev的使用

prev也是一个BeanShell变量,它代表了上一次请求的响应结果。可以将prev作为对象来操作上一次请求的响应结果,包括获取响应内容、响应代码、响应头等信息。示例代码如下:

String response = prev.getResponseDataAsString(); // 获取上一次请求的响应内容,赋值给response变量
int responseCode = prev.getResponseCode(); // 获取上一次请求的响应代码,赋值给responseCode变量

5. BeanShell内置变量的使用实例

下面是一个关于BeanShell内置变量的使用实例,该脚本会模拟登录某个网站,请求的参数中包括用户名和密码,在请求结束后将返回的Session ID保存到变量中。

import org.apache.jmeter.protocol.http.control.Cookie;
import org.apache.jmeter.protocol.http.control.Header;

// 获取用户名和密码
String user = vars.get("username");
String password = vars.get("password");

// 设置请求地址和方法
String url = "http://www.example.com/login";
String method = "POST";

// 设置请求头
ArrayList<Header> headers = new ArrayList<Header>();
headers.add(new Header("Accept-Encoding", "gzip,deflate,sdch"));
headers.add(new Header("Content-Type", "application/x-www-form-urlencoded"));
headers.add(new Header("Cache-Control", "no-cache"));
headers.add(new Header("Pragma", "no-cache"));

// 设置请求体
String requestData = "username=" + user + "&password=" + password;

// 发送请求
sampler.addNonEncodedArgument("", requestData, "");
sampler.setPostBodyRaw(true);
sampler.setHeaders(headers);
sampler.setPath("/login");
sampler.setMethod(method);
sampler.setRequestHeaders(new HeaderManager());
sampler.setFollowRedirects(true);
sampler.setUseKeepAlive(true);
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
sampler.setProperty(TestElement.GUI_CLASS, HttpTestSampleGui.class.getName());
sampler.setDomain("www.example.com");

// 获取响应
sampler.sample();

// 保存Session ID到变量中
String sessionId = prev.getResponseHeaders().get("Set-Cookie").getValue();
vars.put("sessionId", sessionId);

6. 总结

在Jmeter中,BeanShell内置变量是非常强大的工具,可以帮助我们编写更加高效、精确的脚本。vars、props、prev是三种常用的BeanShell内置变量,各有特色,可以根据不同的需求灵活使用。通过以上的攻略,相信你已经能够熟练地使用BeanShell内置变量了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jmeter BeanShell 内置变量vars、props、prev的使用详解 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • java/jsp中 中文问题详解

    Java/JSP 中文问题详解 背景 在 Java/JSP 开发中,中文字符集编码问题经常会遇到。由于 Java 内部使用的是 UTF-16 编码,而 HTTP 协议传输数据时常使用的是 UTF-8 编码,所以在处理中文字符时,需要进行字符集编码转换。 常见问题 URL 参数传递问题 由于 HTTP 协议传输 URL 数据时使用的是 ASCII 编码,因此中…

    Java 2023年5月20日
    00
  • Spring Boot 简介(入门篇)

    SpringBoot简介(入门篇) 什么是SpringBoot Spring Boot 是一个用于快速创建 Spring 应用程序的框架。它基于 Spring 框架,遵循“约定优于配置”的原则,提供了很多默认配置,简化了 Spring 应用程序的开发过程。 SpringBoot的优点 快速开发: Spring Boot 可以快速创建独立运行的 Spring …

    Java 2023年5月15日
    00
  • Java启动Tomcat的实现步骤

    Java启动Tomcat的实现步骤如下: 1. 确认Tomcat安装目录 首先需要确认Tomcat安装目录,以便后续操作。假设Tomcat的安装目录为 /usr/local/tomcat8。 2. 设置JAVA_HOME环境变量 在启动Tomcat之前,需要设置JAVA_HOME环境变量,确保Java环境可用。在Linux系统中,可以通过以下命令设置: ex…

    Java 2023年5月19日
    00
  • python em算法的实现

    Python EM算法的实现 EM算法(Expectation-Maximization algorithm)是一种迭代求解极大似然估计或极大后验概率估计的算法,常用于含有隐变量的概率模型参数的最大似然估计或极大后验概率估计。它是一种迭代算法,每次迭代分两步:期望步骤和最大化步骤。期望步骤求期望得到后验概率分布,最大化步骤求能最大化期望似然函数的模型参数,然…

    Java 2023年5月19日
    00
  • java中类与对象的使用详情

    下面我将详细介绍“Java中类与对象的使用”。 类与对象的基本概念 在Java中,类是一种抽象的数据类型,它是一组相关属性和方法的集合。而对象则是类的实例化,它可以调用类中定义的方法或访问类中定义的属性。 定义类 定义类的语法格式如下: public class ClassName { // 定义属性 // 定义方法 } 其中,public是访问控制符,表示…

    Java 2023年5月26日
    00
  • Springmvc处理ajax请求并返回json数据

    下面我将介绍SpringMVC处理ajax请求并返回JSON数据的完整攻略。 什么是SpringMVC SpringMVC是一个基于Spring框架之上的Web框架,它可以帮助我们简化Web应用程序的开发,并且具有良好的可扩展性和灵活性。SpringMVC中最常见的请求方式是通过URL来映射到处理器(Controller)中的某个具体的方法,并由该方法来处理…

    Java 2023年6月15日
    00
  • Java序列化常见实现方法代码实例

    Java序列化常见实现方法代码实例 Java序列化是将Java对象转化为字节流的过程,方便进行Java对象在网络中的传输或者持久化储存。本文将介绍Java序列化的常见实现方法以及代码实例。 Java序列化实现方法 Serializable接口 Java的原生序列化实现采用Serializable接口,它是Java提供的一个标记接口,将一个类实现Seriali…

    Java 2023年5月23日
    00
  • Java对字符串进行加密解密

    Java 对字符串进行加密解密攻略 简介 Java 中提供了多种加密解密的方案,涉及对称加密、非对称加密、哈希算法等等。本文将主要讲解在 Java 中对字符串进行加密解密的方法。 对称加密 对称加密是指加密和解密使用同一个密钥的方式,常见的有 AES、DES 等算法。 AES 加密 在 Java 中使用 AES 进行加密解密的主要步骤如下: 生成一个 AES…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部