jmeter关联技术与Beanshell脚本开发技术

前言:
其实想写联技术和Beanshell脚本开发技术这个章节已经很久了,但是苦于一直找不到好的实战例子,最近因为冠状病毒的缘故在家不能出去,想想还是把这里的知识点全都写完吧,虽然没有具体的例子博主没有办法演示但是只要把该懂的东西全都搞懂后面工作中遇到应该也不会成为什么瓶颈了。
实现关联的方法:

  • json提取器

  • 正则表达式提取器
    这两个提取器很显然正则更为强大,因为不管响应数据是json格式的还是HTML页面正则都可以用。但是js格式还是要首选用js提取器的用正则很容易出错的。
    正则表达式提取器
    点击后置处理器-----正则表达式提取器(注意作用域的问题)。
    jmeter关联技术与Beanshell脚本开发技术_第1张图片json提取器
    点击后置处理器-----json提取器(注意作用域)
    jmeter关联技术与Beanshell脚本开发技术_第2张图片最后的default values为默认值没有则不用写,jmeter里的关联就是这么简单。
    Beanshell脚本开发技术
    它可以写Java也可以写它的自带语法。微型的编程语言
    **beanshell的用途

  • 设置全局变量

  • 加密/签名

  • 处理数据

  • 编写处理Java代码

其中“设置全局变量”‘’‘加密/签名’用的最为频繁。
设置全局变量:在设计脚本时我们设置跨线程组变量也是常有的事,
加密/签名:现在项目中有很多接口都是加密的我们是没有办法去避免的所以要用beanshell脚本来实现
beanshell内置变量
log.info("");:添加jmeter日志。{在线程组beanshell取样器}
(该日志为调试信息级别的,我们主要用来在调试脚本时打印看看的)
jmeter关联技术与Beanshell脚本开发技术_第3张图片vars.get(“变量名”);:从jmeter中获取变量值
vars.put(“变量名”,“值”);:数据存到jmeter变量中在线程组内部实现传递
jmeter关联技术与Beanshell脚本开发技术_第4张图片现在我们把用代码写好的变量放到http请求里看看,现在只能实现同一线程组间的传递。
jmeter关联技术与Beanshell脚本开发技术_第5张图片jmeter关联技术与Beanshell脚本开发技术_第6张图片看,可以的了吧,这只是初窥门径,强大的功能还在后面。
prev.getResponseDataAsString();:通过beanshell抓取前一个请求的响应数据。(针对用Java定制化开发的组件,二次开发的组件用查看结果树是没有办法看到的,只有用该内置变量)
jmeter关联技术与Beanshell脚本开发技术_第7张图片假设现在项目里某个接口加密方式为,时间戳+随机数+"weijia"用md5加密beanshell写出解密代码,下面看博主演示。
jmeter关联技术与Beanshell脚本开发技术_第8张图片上面我们已经看到字符串已经生成出来了,现在我们选择函数组手选择md5.
jmeter关联技术与Beanshell脚本开发技术_第9张图片现在我们将已经加密好的字符串放到http请求中看一下。
jmeter关联技术与Beanshell脚本开发技术_第10张图片执行该脚本。
jmeter关联技术与Beanshell脚本开发技术_第11张图片已经加密成功了。
实现全局变量跨线程组
举个例子把,在上面那个脚本的基础上我们新增一个线程组。这两个线程组中的变量常规操作是不能实现互相传递的。下面看博主操作,将线程组里的md5变量传递给线程组2
jmeter关联技术与Beanshell脚本开发技术_第12张图片在需要设置全局变量的下面添加beanshell后置处理器
在这里插入图片描述
在后置处理器中写下如下代码,注释已经打好。
jmeter关联技术与Beanshell脚本开发技术_第13张图片在线程组2里面添加beanshell后置处理器里面的变量。写法如图所示。
jmeter关联技术与Beanshell脚本开发技术_第14张图片这里有一个注意点是,当我们点击运行时两个线程组的先后顺序我们是没法确定的,所以我们先设置一下执行顺序,新手不知道怎么设置的请看博主前面的文章。查看结果。
jmeter关联技术与Beanshell脚本开发技术_第15张图片成功取到

你可能感兴趣的:(jmeter关联技术与Beanshell脚本开发技术)