使用Jmeter做接口测试笔记

1.首先创建一个Test Plan;
2.可以使用User Defined Variables设置一些全局变量;
3.与数据库的链接配置,JDBC Sqlserver Configuration;
在这里插入图片描述
4.可以配置Http request的公共Header;
在这里插入图片描述
5.有多只接口,如果部署服务器,端口等相同,可以设置公共的HTTP Request Defaults;
6.CSV Data Set Config设置参数;
在这里插入图片描述
7.创建线程组
8.可以使用JDBC Request对数据库做初始化;
在这里插入图片描述
9.重新创建线程组,再对接口做请求 - HTTP Request
a. 如果有中文,encoding设置为utf-8
b. request body中使用变量,如果是整型 n a m e , 如 果 是 字 符 串 类 型 " {name}, 如果是字符串类型 " name,"{name}"

10.接口请求成功后,使用JDBC PostProcessor后置处理器,获取数据库中需要校验的数据
在这里插入图片描述
11.使用JSR223 POSTProcessor获取response
以下仅是参考

package script.postprocessor

import org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy
import org.apache.jmeter.threads.JMeterContext
import org.json.*;

/*将response JSon转换为JSONObject对象*/
JSONObject response_obj = new JSONObject(prev.getResponseDataAsString())
	
/*将response_obj对象存放在hscode_response*/
props.put("hscode_response",response_obj)

12.使用JSR223 Assertion断言
以下仅是参考

package script.assertions

import org.json.*;
import org.json.JSONObject;
import com.newegg.sh.ec.tools.*;


/*获取hscode_response对象*/
JSONObject hscode_res = props.get("hscode_response");

/*比較返回的取值*/
String shippingcountry = hscode_res.get("ShippingCountry")
int companycode = hscode_res.get("CompanyCode").toInteger()
int sonumber = hscode_res.get("SoNumber").toInteger()
int dropshipid = hscode_res.get("DropShipId").toInteger()
failureMessage = ''

if (shippingcountry != "${ShippingCountry}") {
	failureMessage += "ShippingCountry Failed;"
}
if (companycode != "${CompanyCode}" as int) {
	failureMessage += "CompanyCode Failed;"
}
if (sonumber != "${SoNumber}" as int) {
	failureMessage += "SoNumber Failed;"
}
if (dropshipid != "${DropShipId}" as int) {
	failureMessage += "DropShipId Failed;"
}


JSONArray itemlist = hscode_res.get("ItemList")
for(item in itemlist) {
	if (item.get("ItemNumber")!="${ItemNumber}") {
		failureMessage += "ItemNumber Failed;"
	}
	if (item.get("Description") != "${Description}") {
		failureMessage += "Description Failed;"
	}
	
	if ("${ItemNumber}" != "11-111-115") {
        if (item.get("HSCode") != "${HSCode}") {
		    failureMessage += "HSCode Failed;"
	    }
	}
	else if (item.has("HSCode")) {
		out.println(item.has("HSCode"))
		failureMessage += "HSCode Failed;"
	}	
} 


/*获取database的数据转为对象*/
def hscode_db = vars.getObject("hscode_db_single")

for (it in hscode_db) {
	String hscode_value = it.get("HSCode")
	String item_value = it.get("ItemNumber")
	if (!(item_value == "${ItemNumber}" && hscode_value == "${HSCode}")) {
		failureMessage += "Failed! DB itemnumber:"+ item_value + ",DB HSCode:"+hscode_value +";"
	}
}

/*raise failure message*/
if (failureMessage != '') {
	Failure = true;
	AssertionResult.setFailureMessage(failureMessage);
}


13.可以使用Jmeter的JSON Assertion
在这里插入图片描述
在这里插入图片描述
14.Response Assertion
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值