一、在测试过程中经常会遇到一些业务逻辑处理需要,单纯的线程设置不能满足,这时候就要使用BeanShell编写一定的脚本

前置处理器:BeanShell PreProcessor,主要接口请求前做一些参数化及逻辑处理

后置处理器:BeanShell PostProcessor ,自己写脚本提取参数,或者使用正则表达式

本人主要由于接口加密,从而需要使用BeanShell做一些接口参数化

二、接口加密需要开发提供的Jar包,放到/Users/wuxi/Documents/apache-jmeter-3.2/lib/ext里面

从而可以在BeanShell使用该加密方法进行逻辑处理

三、参数的使用,BeanShell里面参数变量引用来源

1、测试计划内变量,以后变量可以直接使用${url},${domain},可以在很多组件中直接使用

2、CSV Data Set Config中取值,一样使用${mobile}去使用,多个参数可以使用,分开

3、正则表达提取的变量,也可以直接使用${token},${id}去使用

正则提取跟LR的关联差不多,主要是左右边界获取中间所要提取的值

正则表达式:一般是用(.+?)全部获取

模版:$1$ 获取第一个匹配的,如果确认接口就返回一个该字段 $1$.匹配数字1,即可

如果返回很对该字段,则$-1$ ,匹配数字-1 来获取,${XXXX_matchNr}来获取整个获取字段个数

变量提取最好使用Debug Sampler 来确认下变量名是否提取的是自己所要的

4、BeanShell 变量的使用,将需要引用的变量写在parameters中

${id}可以直接写入string内部,jmeter会优先识别该变量,"${id}"也能获取到变量

也可以String token = vars.get("token");把jmeter参数转化为 java 变量,再进行字符串拼接

vars.put("user",user); //Bean shell的变量存到jmeter中,勾选编码

对于非法字符进行编码:在chrome中可以调试,encodeURIComponent(),dencodeURIComponent()

Jmeter之BeanShell变量使用讲解的更多相关文章

  1. jmeter beanshell 变量传递

    如果写成这样会报错: ${__BeanShell(${__threadNum}*2,ToatlAmount)}; ${__BeanShell(${__Random(1,99999,)},DayNum) ...

  2. JMeter中BeanShell实现写入文件

    1.首先F:\test.txt文件为空

  3. jmeter通过BeanShell 脚本,实现对http请求参数的加密

    jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的 ...

  4. jmeter用BeanShell调用jar包对HTTP请求中的参数进行MD5加密

    前提: eclipse.JDK.Jmeter 说明: 本文分为两部分进行配置说明 第一部分:编写JavaMD5加密脚本 第二部分:使用Jmeter的BeanShell进行验证 ************ ...

  5. 利用JMeter的beanshell进行接口的加密处理

    最近项目中在做http协议的接口测试,其中接口请求报文数据有个字段值需要用到加密后的签名,即出于网络传输过程中,对数据安全的考虑,要对请求的数据进行特定的处理(加密),再进行请求. 刚开始由于项目赶进 ...

  6. 详解JMeter函数和变量(转载)

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用.函数调用的语法如下: ${__functionName(var1,var2,var ...

  7. JMeter(5) JMeter之BeanShell使用

    BeanShell介绍 BeanShell是用Java写成的,一个小型的.免费的.可以下载的.嵌入式的Java源代码解释器,具有对象脚本语言特性.本篇只记录一下基本的使用.有以下五个组件: Beans ...

  8. jmeter之beanshell使用

    beanshell官网:http://www.BeanShell.org/ 一.beanshell介绍 是一种完全符合Java语法规范的轻量级的脚本语言: 相当于一个小巧免费嵌入式的Java源代码解释 ...

  9. jmeter通过BeanShell,实现对接口参数HmacSHA256加密(转)

    jmeter通过BeanShell,实现对接口参数HmacSHA256加密2019-04-29 05:10 ps. 最近抓包网站的登陆请求,发现就2个参数,用户名和密码,通过工具去请求这个接口,一直返 ...

随机推荐

  1. uni-app获取当前位置

    uniapp获取当前城市: 官方api:uni.getLocation()获取当前的地理位置.速度. 在微信小程序中,当用户离开应用后,此接口无法调用,除非申请后台持续定位权限:当用户点击“显示在聊天 ...

  2. 【Vue】基于nodejs的vue项目打包编译部署

    一·项目编译 1·进入项目目录下的终端执行命令 npm run build 正常情况如下图,如遇到错误不会编译成功,且编译后的html文件不能正常渲染. 2·编译完成后进入项目下的dist目录运行生成 ...

  3. 【codeforces 520A】Pangram

    [题目链接]:http://codeforces.com/problemset/problem/520/A [题意] 给你一个字符串. 统计里面有没有出现所有的英文字母->'a'..'z' 每个 ...

  4. H3C 网络接口层

  5. Python--day19--collections模块

    常用模块一的各个模块解释: 文件名不要起跟模块名一样:(模块本身就是一个py文件) collection模块: namedtuple方法: 例1: 例2: dequeue方法:双端队列 有序字典Ord ...

  6. Python--day21--包

    包: 包是一种通过使用‘.模块名’来组织python模块名称空间的方式. 1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高 ...

  7. 递归求gcd(a,b)

    int gcd(int a,int b) { ) return a; else return gcd(b,a%b); }

  8. P1106 细胞分裂

    题目描述 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家.现在,他正在为一个细胞实验做准备工作:培养细胞样本. Hanks博士手里现在有 \(N\) 种细胞,编号从 \(1\) 到 ...

  9. H3C RIPv1的缺点

  10. H3C 链路聚合分类