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日

相关文章

  • 多jdk环境下指定springboot外部配置文件详解

    下面是多jdk环境下指定springboot外部配置文件的完整攻略: 1. 背景 通常我们在开发中使用Spring Boot时,会使用application.properties或application.yml来进行配置,但是如果我们需要在不同的JDK环境中进行配置,这个时候就需要指定外部配置文件,以满足我们在不同环境下能够进行正确的配置。 2. 步骤 以下…

    Java 2023年5月19日
    00
  • Android Activity生命周期详解

    下面是关于“Android Activity生命周期详解”的完整攻略。 简介 很多初学者在学习 Android 开发时容易被 Activity 的生命周期所迷惑。但实际上,了解生命周期可以帮助我们更好地理解 Activity 的内部操作以及增强应用程序的用户体验。 Activity 的生命周期由一系列的阶段组成,从 Activity 的启动到关闭,包括一些生…

    Java 2023年6月15日
    00
  • Python get获取页面cookie代码实例

    当我们使用Python来爬取网页数据时,有时需要获取页面的cookie信息。获取cookie信息可以帮助我们模拟用户操作,使得爬虫更加真实可靠。本文将详细讲解如何使用Python的requests库来获取页面cookie信息。 一、使用requests库发送请求获取cookie信息示例 我们可以使用requests库来发送HTTP请求,并自动地获取cooki…

    Java 2023年6月15日
    00
  • 深入了解Java Object类的使用

    深入了解Java Object类的使用 在Java中,所有类都继承自Object类,并且Object类提供了许多有用的方法,因此了解Object类的使用可以帮助我们更好地编写Java代码。本文将深入介绍Java Object类的使用方法,包括toString()、equals()、hashCode()和getClass()方法等。 toString()方法 …

    Java 2023年5月26日
    00
  • Java Servlet简单实例分享(文件上传下载demo)

    下面是Java Servlet简单实例分享的完整攻略。 1. 创建Java Web工程 在Eclipse中创建一个新的Java Web工程,命名为FileUploadDownloadDemo。 2. 添加servlet-api依赖 右键工程 -> Properties -> Java Build Path -> Libraries -&gt…

    Java 2023年5月19日
    00
  • java实现哈夫曼压缩与解压缩的方法

    Java实现哈夫曼压缩与解压缩的方法 哈夫曼编码是一种有效的无损压缩算法,常用于压缩文本文件等数据。本文将详细介绍如何使用Java实现哈夫曼压缩与解压缩的方法。 哈夫曼压缩 1. 构建哈夫曼树 首先需要构建一个哈夫曼树,该树的每个叶子节点都代表一个字符,并且每个叶子节点的编码都是唯一的。构建哈夫曼树的过程如下: 统计给定文本中每个字符出现的频率。 将字符频率…

    Java 2023年5月20日
    00
  • 浅谈jsp中的9个隐含对象

    接下来我将为大家详细讲解“浅谈JSP中的9个隐含对象”的完整攻略。 1. JSP的9个隐含对象 在JSP页面中,有9个隐含对象,他们分别是: request:表示客户端发来的请求,被封装成了request对象,在JSP页面中可以通过request对象访问请求中的参数信息。 response:表示服务器对请求做出的响应,被封装成了response对象,在JSP…

    Java 2023年6月15日
    00
  • Java中Builder模式的实现详解

    Java中Builder模式的实现详解 什么是Builder模式 Builder模式是一种创建型设计模式,它可以让你分步骤地创建复杂对象。与工厂模式不同,Builder模式并不是通过单一的方法来创建对象,而是通过多个方法来设置不同的属性,最终创建出一个想要的对象实例。 Builder模式的优点 Builder模式相对于其他创建对象的方式,有如下的优点: 代码…

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