BeanShell断言判断返回类型和返回值

原文:http://www.jianshu.com/p/78df350d78e5

优化点 

  1. 接口测试里面对返回字段的类型验证值验证为基本需求,将方法导成jar文件,导入之后方便每个断言可以调用。 

  2. 补充对null类型、Array类型的判断 

步骤 

  1. 将判断方法打包成jar文件 
    java项目打包成jar 
    我的jar下载  

  2. 导入jmeter项目中 
     

 
 

  1. 判断接口返回字段值正确性(EqualsJsonValue类) 
    beanshell的调用代码如下 

import com.susie.action.equals.EqualsJsonValue; 
String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'123'},'cpma':1}"; 
EqualsJsonValue equalsValue = new EqualsJsonValue(); 
Failure = !equalsValue.respValueAssertion(standardData, prev.getResponseDataAsString()); //断言结果 
FailureMessage = equalsValue.getMessage(); //断言错误信息  

运行结果 
 

 
 

  1. 判断接口返回字段类型正确性(EqualsJsonType类) 
    beanshell的调用代码如下 

import com.susie.action.equals.EqualsJsonType; 
String standardData = "{'uid':123,'phone':1,'has_password':true,'location':{'province':true,'city':'\u6c55\u5934\u5e02'},'cpma':null}"; 
EqualsJsonType equalsJson = new EqualsJsonType(); 
Failure = !equalsJson.respTypeAssertion(standardData, prev.getResponseDataAsString()); 
FailureMessage = equalsJson.getMessage();  

  1. 格式化每个接口的字段断言 
    将每个需要检查的字段(期望响应)直接用csv记录,每次比较直接读取进行比对无需一个个断言,非常方便~ 
     

 
 

 
通过CSV Data Set Config读取,在beanshell中比较,调用方式与前面类似,获取标准响应String standardDataShell = vars.get("standardData").toString();  

注意: 读取csv中的json的时要注意json的逗号&双引号 
在这里坑了许久,因为csv是以逗号区分不同列的数据,所以,要把json里面的逗号改称分号,双引号改称单引号; 

 

 

import Tina_EqualsJson.jar;
//String standardData = "{'status':'true','diaryId':'10216','firstDiary':'1'}";
//String resData="{'result':{'status':'true','diaryId':'10217','firstDiary':'1'}}";
String standardData="{'communitypackage':'1'}";//当用户仅知道部分字段的预期结果时
String resData=prev.getResponseDataAsString();

EqualsJsonType eqType = new EqualsJsonType();
boolean result1 = eqType.respTypeAssertionType(standardData, resData).booleanValue();
log.error("类型验证 result1:="+result1);

 

EqualsJsonValue eqValue = new EqualsJsonValue();
boolean result2 =eqValue.respValueAssertionValue(standardData, resData).booleanValue();
log.error("值验证 result2:="+result2);

 

posted @ 2017-11-28 12:01  春田花花同学会  阅读(606)  评论(0编辑  收藏  举报