beanshell关联取值id,通过id实现删除学生
一.测试计划添加jar包
- 在目录lib/ext下选择jar包testng、fastjson
二、通过接口【查询所有学生】信息
三、对添加【查询所有学生】BeanShell后置处理器
- 脚本如下:
mport com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.testng.Assert;
//获取接口返回的response数据
String json = prev.getResponseDataAsString();
JSONObject jsonObject = JSONObject.parseObject(json);
String myData = jsonObject.getString("data");
List list=JSONArray.parseArray(myData);
String id=null;
for (Object obj:list) {
jsonObject=jsonObject.parseObject(obj.toString());
String name=jsonObject.getString("name");
String student_id=jsonObject.getString("id");
if (name.equals("test")){
Assert.assertEquals(name,"test");
id=student_id;
break;
}
}
vars.put("id",id);
log.info("id是------------------------------------"+id);
String getId=vars.get("id");
System.out.println("get my id is "+ getId);
JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:
-
log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);
-
vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
更多方法可参考:org.apache.jmeter.threads.JMeterVariables
-
prev - (SampleResult):获取前面的sample返回的信息,常用方法:
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
更多方法可参考:org.apache.jmeter.samplers.SampleResult
四、添加http接口 【按照id删除学生】
- 引用参数
- 执行结果