wps做网站框架网络营销官网
news/
2025/9/23 8:34:27/
文章来源:
wps做网站框架,网络营销官网,郴州网站建设企业,网站开发建设一般多少钱BeanShell简介BeanShell是使用Java语法的一套脚本语言#xff0c;在JMeter的多种组件中都有BeanShell的身影#xff0c;如#xff1a;定时器#xff1a;BeanShell Timer前置处理器#xff1a;BeanShell PreProcessor采样器#xff1a;BeanShell Sampler后置处理器#x…BeanShell简介BeanShell是使用Java语法的一套脚本语言在JMeter的多种组件中都有BeanShell的身影如定时器BeanShell Timer前置处理器BeanShell PreProcessor采样器BeanShell Sampler后置处理器BeanShell PostProcessor断言BeanShell Assert监听器BeanShell Listener通过BeanShell可以对请求数据、响应数据或环境变量进行更加灵活的处理和判断。Beanshell有一些默认的内置变量和方法用户可以通过这些变量与JMeter进行交互比如:prInt非GUI模式下打印信息(输出信息到stdout)log输出信息到日志(文件)log.debu(调试信息)log.info(响应状态码 ResponseCode)log.warn(警告信息)log.error(出错信息)ResponseCode响应状态码(String类型)ResponseHeaders响应头(String类型)prev获取当前请求结果prew.getResponseDataAsString()获取响应体数据(String类型)prew.getResponseCode()获取状态码(同ResponseCodeString类型)vars: 操作jmeter变量String var1 vars.get(变量名)获取变量的值(假设为String类型)vars.put(变量名, 变量值)设置变量值props: 操作JMeter属性props.get(String,String) 可以获取Jmeter中已经生成的属性props.put(String,String) 可以创建和更新Jmeter属性ctx获取当前线程上下文数据(可获取所有信息)ctx.getVariables(变量名)获取变量值(同vars.get())ctx.setVariables(变量名, 变量值)设置变量(同vars.put())ctx.getProperties(属性名)获取属性值(同props.get())ctx.setProperties(属性名,属性值)设置属性(同props.put())ctx.getPreviousResult()获取当前请求结果同(prev)ctx.getCurrentSampler()获取当前采样器ctx.getPreviousSampler()获取前一采样器ctx.getThreadNum()获取线程数ctx.getThreadGroup()获取线程组ctx. getThread()获取当前线程ctx.getEngine()获取引擎ctx.isSamplingStarted()判断采样器是否启动ctx.isRecording()判断是否开启录制ctx.getSamplerContext()获取采样器山下文数据ctx详细API可参考JMeter上下文BeanShell断言BeanShell断言中可以通过ResponseCode、ResponseHeaders及pre.getResponseDataAsString()来分别获得String格式的响应状态码、响应头、响应体数据结合if判断通过变量Failurefalse或Failuretrue来设置断言是否通过当设置Failuretrue时还可以设置FailureMessage来设置失败原因。状态码断言//状态码断言log.info(状态码 ResponseCode);if(ResponseCode.equals(200)){Failurefalse;}else{Failuretrue;FailureMessage响应状态码非200; //指定失败原因}注字符串只能使用双引号字符串相等要使用.equals()响应体包含特定字符//获取响应数据String response prev.getResponseDataAsString();log.info(响应体 response);//响应数据包含if(response.contains(登录成功)){Failurefalse;}else{Failuretrue;FailureMessage响应数据不包含登录成功;}JSON响应体字段提取及断言将String类型的响应体转为JSON对象并操作需要额外的jar包可以使用org.json或gson下载地址如下json.jar下载地址 密码8it7gson.jar下载地址 密码6a7v以json.jar为例下载后将其放入JMeter/lib目录下重启JMeter添加BeanShell断言如下//JSON响应断言import org.json.*; //导入org.json包String response prev.getResponseDataAsString(); //获取响应数据JSONObject responseJson new JSONObject(response); //转为JSON对象String message responseJson.getString(message);log.info(响应message字段 message);if(message.equals(成功)){Failurefalse;}else{Failuretrue;FailureMessage响应message字段非成功;}JSONObject对象除了getString()方法外还支持getBoolean(字段名) 获取布尔类型字段值getInt(字段名)获取整型字段值getLong(字段名)获取长整型字段值getDouble(字段名)获取双精型字段值getJSONObject(字段名)获取嵌套Object类型字段值JSONObject类型getJSONArray(字段名)获取嵌套Array类型JSONArray类型响应头解析响应头原本为String类型可以通过分割遍历组装成Map类型来提取响应头中的项import java.util.HashMap;import java.util.Map;//将字符串用换行符 截取为adc数组String [] headersList ResponseHeaders.split(\n);Map headersMap new HashMap(); //创建HashMap来从新组装headersfor(int i1;iString [] itemListheadersList[i].split(: ); // 将每一条Headerr项按冒号分割headersMap.put((itemList[0]), itemList[1]); // 分键值放入HashMap}String contentType headersMap.get(Content-Type); // 提取相应项log.info(响应Content-Type contentType)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911919.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!