Jmeter中对接口数据的自动化测试脚本用例2

155 阅读1分钟

两个JDBC请求,响应数据分别如下:

image.png

image.png

获取请求json格式如下

image.png

请用beanshell断言编写自动化测试脚本,测试数据库内的值是否被准确调用

基本思路:先从两个JBDC请求中输出需要验证的值,再在测试脚本里面进行JSON对象转化,然后进行比对


断言如下

image.png

Assertion1:
props.put("Count1", vars.getObject("result1-1").get(0).get("count(*)"));  //通过props取出第一个数据库中的count(*)值,注意props和vars的区分

Assertion2import org.json.*;    //调用jar包

	String [] questionnairename1 = new String [100];      //创建三个字符串数组分别代表三个变量
	String [] is_use1 = new String [100];  
	String [] rowguid1 = new String [100];  

	
//	int count = props.get("Count1");
	
//	log.info(count.toString());


	for(int i =0;i<2;i++){
	//	questionnairename1[i] = vars.getObject("result1-2").get(i).get("questionnairename").toString();  
	//	is_use1[i]=vars.getObject("result1-2").get(i).get("is_use").toString();
	//	rowguid1[i] = vars.getObject("result1-2").get(i).get("rowguid").toString();

		questionnairename1[i] = vars.getObject("result1-2").get(i).get("questionnairename").toString();  
		is_use1[i]=vars.getObject("result1-2").get(i).get("is_use").toString();
		rowguid1[i] = vars.getObject("result1-2").get(i).get("rowguid").toString();
	 }
 

        props.put("questionnairename1", questionnairename1);   //输出三个变量
	props.put("is_use1", is_use1); 
	props.put("rowguid1", rowguid1);


Assertion3import org.json.*;

	String response_data = prev.getResponseDataAsString(); //获取响应信息,转为string型
	
	JSONObject object1 = new JSONObject(response_data);   //转为JSON对象
	 
	JSONObject custom = (JSONObject)object1.getJSONObject("custom");  //得到custom的信息
	
	int  totalcount = custom.get("totalcount");     //得到totalcount数字
	
	JSONArray questionnairelist = custom.getJSONArray("questionnairelist");    //得到questionnairelist数组信息
	
	int count = props.get("Count1");       //get到request1-1里面的Count1数字
//	log.info(count);
	//log.info(totalcount);

	if(totalcount==count)                   //判断request1-1和totalcount的数字是否相等
	{
		for(int i = 0 ; i<2;i++)           //遍历questionnairelist
		{
			
		JSONObject jsonTemp = (JSONObject)questionnairelist.getJSONObject(i);     //得到每个questionnairelist的信息

		String rowguid = props.get("rowguid1")[i];                                 //request1-2里的rowguid
		String dictrowguid = jsonTemp.get("rowguid").toString();                  //得到questionnairelist的rowguid
		String questionnairename = props.get("questionnairename1")[i];            //request1-2里的name
		String dictquestionnairename = jsonTemp.get("questionnairename").toString();   //得到questionnairelist的name
		String is_use = props.get("is_use1")[i];                                       //request1-2里的use
		String dictis_use = jsonTemp.get("is_use").toString();                           //得到questionnairelist的use

		if(!rowguid.equals(dictrowguid)||!questionnairename.equals(dictquestionnairename)||!is_use.equals(dictis_use))   //如果三个中任意一个不匹配
		{
			Failure = true;           
			log.info("不匹配");
			break;
			
		}else{
			
			Failure = false; 
			
		}
		
		}
		
	}
	else
	{
		Failure = true;           
		log.info("长度不匹配");
		break;
	}