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(),获取响应信息


示例:




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、在eclipseIDEA中把所需的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包地址:私信000安排



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




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




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




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




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





重点:学习资料


600g的学习资料懂的都懂



展开阅读全文

页面更新:2024-04-25

标签:测试   示例   变量   脚本   属性   接口   常用   密码   方式   文件   方法   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top