Jmeter笔记

1、BeanShell 语法

BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。
有以下五个组件:
• Beanshell Sampler
• Beanshell PreProcessor
• Beanshell PostProcessor
• Beanshell Assertion
• __Beanshell Function

常用变量

  1. vars:实际引用jmeter线程的局部变量,连通jmeter和beanshell
    vars.get(String key) //获取变量值
    vars.put(String key, String value)//存储value到变量key
  2. log: 写入信息到日志中,log.info(“原样写入日志:jmeter.log 中”);
  3. prev: 获取前一个sample的响应
    getResponseDataAsString()
    getResponseCode()
  4. props: class java.util.Properties
    变量属性赋值给变量props.put(“some_variable”,vars.get(“some_variable”))
    vars
  5. 保存变量
    vars.put(String key, String value);
  6. 获取环境中的变量值
    vars.get(“key”);
    prev
  7. 获取接口返回的报文
    String response = prev.getResponseDataAsString(); // 获取Response

props

1、设置属性(比如cookie)

props.put(“cookie”, String value);

2、获取属性

props.get(“key”);

在BeanShell中编辑脚本

import org.json.*;			//如果有包依赖则需要导入

String response = prev.getResponseDataAsString();		// 获取Response
JSONObject json = new JSONObject(response);			//转换为Json数据
String id = json.getJSONObject("data").getString("id");		//获取相应节点的值

自定义方法:

public static String test(){
	//一些代码
}
Test();	//执行,写了代码块需要调用才可执行

如果该包不在 lib/ext/ 下,需要在线程组中引入依赖的架包(最好都引用吧,避免出错)
在这里插入图片描述

在BeanShell中引用外部Java文件

如上一步,也需要引包;
source(“G:\Selenium_Workspace\JmeterExternalUtil\路径\JmeterExternalUtil.java”); //引入Java文件路径(也可引用.class文件),路径需要使用双斜杠 \

String id = new JmeterExternalUtil().test(response);		//引用外部Java文件中的类方法
vars.put("id---->", id);								//把变量保存到环境中

Java文件内容:

package jmeter.external.util;

import org.json.JSONException;
import org.json.JSONObject;

/**
 * Jmeter外部jar包
 * Created by hadis on 2018/7/13.
 */
public class JmeterExternalUtil {

    public String test(String jsonStr) throws JSONException {
        JSONObject json = new JSONObject(jsonStr);
        String id = json.getJSONObject("data").getString("id");
        return id.split(":")[1];
    }
}

在BeanShell中获取、使用环境变量值

在Parameter是中设置值,如果有个多个值则用空格隔开,获取时使用 bsh.args[num] 的方式获取,num代表数字;
在这里插入图片描述

观察保存变量是否成功

添加调试处理器 Debug postprocessor ,执行之后在View Result Tree(结果树)中查看即可,如果在Response data 中显示保存的变量则为保存成功,否则保存失败,具体失败原因可查看执行日志,日志路径:安装路径/bin/jmeter.log
在这里插入图片描述

2、Jmeter一些自带函数的使用

*注意,下划线为两个 - 组成

  1. ${_threadNum} 获取线程数字

  2. ${__BeanShell(1+1,)} 一些算法的操作,该函数直接返回结果

  3. ${__groovy(‘hehe:aa’.split(’:’)[0],)} , 一些基本的方法操作,注意都好需要使用反斜杠转义: , 否则无法正常使用,该函数也可__BeanShell 一样进行算法运算
    KaTeX parse error: Expected group after '_' at position 2: {_̲_groovy(vars.ge…{__groovy("${id}".split("?[0],)}
    3、Jmeter一些功能

  4. JSON Extractor
    对JSON数据进行断言,json的表达式: . 节 点 ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20181110231521960. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 h y a H l 0 a G 0 = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 ) C o o k i e 操 作 1 、 首 先 需 要 修 改 j m e t e r . p r o p e r t i e s 文 件 ; 2 、 找 到 C o o k i e M a n a g e r . s a v e . c o o k i e s = f a l s e 并 设 置 为 t r u e ; 3 、 保 存 配 置 文 件 重 启 j m e t e r ; 4 、 在 需 要 取 C o o k i e 的 线 程 里 添 加 一 个 H t t p C o o k i e 管 理 器 ( H T T P C o o k i e M a n a g e r ) ; 5 、 可 以 默 认 为 空 , 但 是 一 定 要 添 加 , 否 则 是 不 会 存 储 c o o k i e 变 量 的 ; 6 、 抓 包 工 具 查 看 c o o k i e 命 名 , 若 命 名 为 t t s e s s i o n i d ; 7 、 则 在 整 个 测 试 计 划 需 要 获 取 的 c o o k i e 值 为 .节点 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20181110231521960.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hyaHl0aG0=,size_16,color_FFFFFF,t_70) Cookie操作 1、 首先需要修改jmeter.properties文件; 2、 找到CookieManager.save.cookies=false并设置为true; 3、 保存配置文件重启jmeter; 4、 在需要取Cookie的线程里添加一个Http Cookie管理器(HTTP Cookie Manager); 5、 可以默认为空,但是一定要添加,否则是不会存储cookie变量的; 6、 抓包工具查看cookie命名,若命名为tt_sessionid; 7、 则在整个测试计划需要获取的cookie值为 .![](https://imgblog.csdnimg.cn/20181110231521960.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hyaHl0aG0=,size16,colorFFFFFF,t70)Cookie1jmeter.properties;2CookieManager.save.cookies=falsetrue;3jmeter;4Cookie线HttpCookieHTTPCookieManager;5cookie;6cookiettsessionid;7cookie{COOKIE_tt_sessionid},前面的COOKIE为jmeter命名规则;

  5. 登录管理器
    添加: HTTP Authorization Manager,输入Username和Password即可
    在这里插入图片描述

4、监控

  1. 服务器资源监控
    如监控Tomcat, 添加Monitor Result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值