当前位置: 首页 > article >正文

2024年全网最全的Jmeter教程:jmeter_BeanShell脚本通过BeanShell进行加解密方法

 

BeanShell脚本

BeanShell简介:

BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些 语法和方法;

BeanShell是一种松散类型的脚本语言;

BeanShell是用Java写成的,一个小型的、免费的、可以下载、嵌入式的 Java源代码解释器,具有对象脚本的特性;

BeanShell可以执行标准Java语句和表达式,以及另外自身的一些脚本命令 和语法。

Jmeter中的BeanShell组件

定时器:BeanShell Timer
前置处理器:BeanShell PreProcessor
采样器:BeanShell Sampler
后置处理器:BeanShell PostProcessor
断言:BeanShell Assert
监听器:BeanShell Listener

BeanShell常用内置变量

log:写入信息到jmeter.log,使用方法:log.info(“hello,world”),也可以在 jmeter gui上看到打印的信息。

注意:如果想在jmeter工具中看到打印的日志;点击jmeter——选项——日志查看

示例:

vars:操作jmeter变量,这个变量实际上引用了Jmeter线程中的局部变量容器 (本质是map),测试用例可以通过它获取到变量的值

1、vars.get(String key),从jmeter中获得变量值

示例:

2、vars.put(String key, String value),数据存到jmeter变量中

示例:

 

props:该变量引用jmeter的配置信息,可以获取jmeter的属性(jmeter属性为全局变量),用法如下:
1、props.get(String key) 获取jmeter.properties中的属性值

2、props.put(String key, String value) 设置jmeter.properties中的属性值(不常用,且没必要,因为不会实际调整文件内的值)

 

prev(对应SampleResult):获取前面Sampler返回的信息,常用方法:
1、getResponseDataAsString(),获取响应信息
2、getResponseCode(),获取响应Code
3、getResponseMessage(),获取响应信息

示例:

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

BeanShell 调用java源码

方式一、通过 beanshell sampler 直接执行 Java 编码

示例:

 方法二:引入外部 Java 源码文件

外部java文件内容如下:

beanshell引入代码如下

 方法三:引入外部class文件

注意事项:
1、class_path可以不是绝对上级路径,只需要包含.class文件即可
如 /Users/xiaoming/workspace/demo139/
2、class_path一般不能包含包名对应的目录路径
如 /Users/xiaoming/workspace/demo139/bin/com/test
否则可能会报错
Error invoking bsh method: eval CreateFile (wrong name: ***/***)

方法四:引入外部jar包(推荐常用)

1、在eclipse\IDEA中把所需的java文件打包成jar文件,比如Calc.jar
2、方式一:把Calc.jar文件放置到JMeter安装目录->lib目录下
   方式二:在测试计划界面的添加目录或jar包到classpath处点击浏览,找到对应的jar包加载进去
4、直接在beanshell中导入应用即可(如果执行错误,把jmeter重启一下)

方式一的示图:

 方式二的示图:

beanshell企业实战

备注:在上一家公司的经历,一个web网站,密码进行加密传输,通过和开发沟通了解到密码是通过MD5加密的,开发人员对密码加密的逻辑是MD5加密后的字符串的前后各加三个任意字符,后台只对前后三个任意字符的中间字符串进行解密,来达到密码加密的逻辑;所以遇到密码加密的情况,需要和开发沟通了解加密的逻辑是怎么样的,才能做接口自动化测试;(或者偷懒的方式通过手动登录获取token,把token放到header里面)

1、从开发处获取jar包,先在eclipse中使用jar包检查每一个小功能(咨询开发·加解密函数名称以及如何传参)。

非对称加密的jar包地址:

链接:https://pan.baidu.com/s/1AANpGTJbcUX4bhhMkwPNKA
提取码:ztut

2、把jar包导入到jmeter(一般通过测试计划导入jar包)

3、导入jar包后在beanshell中编写代码测试是否可以把图中的"123456"进行加密;

 4、查看日志;日志中指定的值进行的加密,说明代码测试成功

5、在beanshell中一般使用: 调用jar包时一般和 vars.get,vars.put结合使用,在下面的请求中·使用$变量名1},${变量名2}

 通过察看结果树中的调试取样器可看到加密后的值;如下图:

 

 总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!


http://www.kler.cn/news/135066.html

相关文章:

  • C语言——冒泡排序
  • Flume学习笔记(3)—— Flume 自定义组件
  • “轻松实现Linux和Windows文件共享,只需几步配置!“
  • Error: Cannot find module ‘node:util‘
  • 【Flink】核心概念:任务槽(Task Slots)
  • 如果重复定义宏,两个值不同,最终的值是哪一个?
  • 澳洲猫罐头真实水平如何?我家亲自喂养过的优质猫罐头推荐给大家
  • leetcode算法之分治-快排
  • WhatsApp新营销全解:如何才能真正留住你的客户
  • ceph学习笔记
  • 吴恩达《机器学习》9-1:代价函数
  • 【人工智能实验】A*算法求解8数码问题 golang
  • Kotlin学习(一)
  • 图像分类(三) 全面解读复现VGGNet
  • LeetCode100131. Make Three Strings Equal
  • OSCP系列靶场-Esay-DC-1
  • 在 Qt 框架中,有许多内置的信号可用于不同的类和对象\triggered
  • 数据结构【DS】数组
  • IDEA常用插件合集
  • 产业区块链生态日:你的故事,我们在等待 | 征集帖
  • 软文推广如何实现效果?媒介盒子为你支招
  • 选择java商城开发商需要注意哪些方面?
  • Web前端—小兔鲜儿电商网站底部设计及网站中间过渡部分设计
  • Vue 路由缓存 防止路由切换数据丢失 路由的生命周期
  • 虾皮台湾站点如何选品
  • 关于代码混淆,看这篇就够了
  • NX二次开发UF_CAM_ask_f_s_db_object 函数介绍
  • redis+python 建立免费http-ip代理池;验证+留接口
  • IC卡操作软件支持PN532
  • python 集合(set)