jmeter使用BeanShell断言

摘要:
1.首先存储接口的响应结果,如http请求中的BeanShell PostProcessor:importjava.io.UnsupportedEncodingException;System.out.println(prev.getResponseCode());Stringstr=prev.getResponseDataAsString();/*字符串结果=${__urldec

1. 首先存储一个接口的响应结果,如在http请求的BeanShell PostProcessor:

import java.io.UnsupportedEncodingException;


System.out.println(prev.getResponseCode());
String str = prev.getResponseDataAsString();
/*
String result = ${__urldecode(str)};
System.out.println("------------"+result);
*/
String result = "";
try {
            result = java.net.URLDecoder.decode(str, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
System.out.println("--------"+result);

vars.put("result",result);
log.info(result);

 或者是jdbc request中BeanShell PostProcessor:

columnValue = vars.getObject("testresultvariable").get(0).get("app_id");
vars.put("value",columnValue);

 

变量存储好后,再需要断言的接口后面添加BeanShell断言,使用Failrue来标识断言失败,FailureMessage标示断言失败的原因,如:

String result = vars.get("result");

if(!result.contains(""result":2")) {
	Failure = true;  
	FailureMessage = "分润查询失败";
}else{
	FailureMessage = "分润查询成功";
	}

  

断言结果是:

jmeter使用BeanShell断言第1张

使用第三方jar包,结合fastjar的JSON解析如下:

import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.*;
import com.jmeter.*;


listexc = new ArrayList();
listexc.add(351);
listexc.add(301);
listexc.add(302);
listexc.add(304);
listexc.add(305);
listexc.add(306);
list = new ArrayList();
flag = "false";

 if ((prev.getResponseCode() != null) && (prev.getResponseCode().equals("200") == true)) {
		String json = prev.getResponseDataAsString();
		JSONObject  jo = JSON.parseObject(json);
		if(jo.containsKey("events")) {
			JSONArray  ja = jo.getJSONArray("events");
			if(ja.size()>0) {
				flag = "true";
				for(int i = 0;i<ja.size();i++) {
					System.out.println(ja.get(i));
					JSONObject joe = ja.getJSONObject(i);
				     System.out.println(joe.get("eventId"));
				     list.add(joe.get("eventId"));
				}
				System.out.println(list.size());
				 System.out.println(new EventCompare().compare(listexc,list));	
				 if(!new EventCompare().compare(listexc,list)){
				 	Failure = true; 
	   				FailureMessage = "事件校验失败,预期结果和实际结果不一致,预期事件:"+listexc+" ,实际事件:"+list;
				 }
			}else{
				flag = "false";
				Failure = true; 
	   			FailureMessage = "事件校验失败,轮询接口返回没有eventId";
			}
			vars.put("result",flag);
			System.out.println(list.size());
			/*
			System.out.println(listexc.containsAll(list));
			if(listexc.containsAll(list)) {
				Failure = true; 
	   			FailureMessage = "事件校验失败";
				}
	*/
		}else {
			Failure = true; 
	   		FailureMessage = "事件校验失败,轮询接口返回没有events";
			}
 }else {
 	Failure = true; 
	FailureMessage = "事件校验失败,轮询接口返回空";
 	}

  

免责声明:文章转载自《jmeter使用BeanShell断言》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Makefile系列之一 : 书写规则Vue2.0---将页面中表格数据导出excel下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)

  C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535) 一:报错 Invalid row number (65536) outside allowable range (0..65535) 原因:excel 03的限制就是65536行,超过行数...

matlab 中如何创建以及获取popupmenu的值

1.如何创建popupmenu的值 如图,点击河南左边的符号,会弹出右边的小窗口,输入完一项之后点击enter继续创建第二项即可。 2.如何获取popupmenu的值 functionpopupmenu_Callback(hObject, eventdata, handles) val = get(handles.popupmenu,'value...

jmeter在linux机器上的安装和操作:

一、jmeter在linux机器上的安装:1、首先确定jmeter和JDK跟主机的版本一致 2、然后把JDK和Jmeter放在一个目录下,最好新建一个目录,分别存放 上传到目录rz jdk-8u74-linux-x64.gz3、然后各自解压【tar -zxvf jdk-8u74-linux-x64.gz】 4、解压完之后pwd出路径,然后再去配置环境变量...

Jmeter(五)关联之正则表达式提取器

我们在用Jmeter做接口或者性能测试时,经常会碰到第二个请求提交的的参数要从第一个请求返回的参数中获取,而这些参数值并不是固定的,是动态变化的,这种场景就要用到关联 Jmeter提供了一种叫做正则提取器的组件来提取数据。 场景: 通过下面这个接口可以获取到某个城市的天气 http://www.weather.com.cn/data/cityinfo/10...

【Python】解压文件/ZIP等 并实时计算解压进度

import zipfile def read_zip(zip_file_path: str, unpack_path: str, ws_msg: WebSocketMsg): """ 解压ZIP文件 @param zip_file_path: ZIP文件路径(ex. E:\aaa\a.zip) @param unpack_...

EL表达式获取数据

EL 全名为Expression Language。 EL主要作用 获取数据: •EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组) 执行运算: •利用EL表达式可以在JSP页面中执行一些基本的关系运算、...