jmeter学习 查询接口自动化测试

查询接口自动化测试,主要分为几步:

  1. 从数据库查询数据
  2. 随机取数作为接口的入参
  3. 调用接口
  4. 再次查询数据库,获取预期结果数据
  5. 比较接口返回和预期结果
    注:如果接口入参有多个,需要考虑接口间的组合情况、必填参数和非必填参数之间的组合情况以及异常场景

简单的例子:
http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
假设上面要调用的接口,数据来源为我本地数据库的mobilearea表。表结构如下:
在这里插入图片描述

第一步,从数据库查询数据
在这里插入图片描述
第二步,随机设置入参(在查询取样器后添加后置BeanShell处理器)

import java.util.Random;

//取出sql语句查询结果
Object result = vars.getObject("result"); 
int size = result.size();

//在查询结果中随机取一个作为入参
Random random=new Random();
if(size > 0){
	int randomNum = random.nextInt(size); 
	String temp = result.get(randomNum).get("mobile");
	log.info("=========================randomNum = " + randomNum.toString() + ", " + "mobile = " + temp);
	vars.put("mobile",temp);
}

第三步,调用接口,并去除接口返回结果
此处的mobile即为上一步赋值的变量
在这里插入图片描述
后置BeanShell取出接口调用的结果

import org.json.* ;

//取接口调用返回
String response = prev.getResponseDataAsString();
JSONObject response1=XML.toJSONObject(response);
String CodeInfoResult = response1.get("soap:Envelope").get("soap:Body").get("getMobileCodeInfoResponse").get("getMobileCodeInfoResult");
String responseArea = CodeInfoResult.split(":")[1];

//将解析结果存在变量中
vars.put("responseArea",responseArea);

第四步,查询预期结果
在这里插入图片描述
添加后置BeanShell处理器,取出查询的预期结果,与接口调用的实际结果进行比较

//获取预期结果
Object expectResult = vars.getObject("expectResult");
String msg = "";
if(expectResult.size()>0){
	String area = expectResult.get(0).get("area");
	
	//获取接口返回的结果
	String responseArea = vars.get("responseArea");

	//比较接口调用结果和预期结果
	if(responseArea.indexOf(area) != -1 ){
		log.info("******************************Succes");
	}
	else{
		msg = "expect: " + area + "But actual: " + responseArea;
	}
}
vars.put("dataMessage",msg);
if(msg != ""){
	log.error("*****************************Failed: " + msg);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值