1. 程式人生 > 其它 >JMeter自定義Java請求

JMeter自定義Java請求

public class Cnppurchase extends AbstractJavaSamplerClient {

private final Logger logger = LoggingManager.getLoggerForClass();

public static SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");

@Override

public void setupTest(JavaSamplerContext context) {

}

@Override

public Arguments getDefaultParameters() {

Arguments arguments = new Arguments();

arguments.addArgument("pan", "9558821001002575556");

arguments.addArgument("merchantId","812333345110001");

arguments.addArgument("cardHolderId","640102198102080616");

arguments.addArgument("cardHolderName","ZhangSan");

arguments.addArgument("amount","25.31");

arguments.addArgument("terminalId","00007777");

arguments.addArgument("customerId","123456");

arguments.addArgument("storableCardNo","6226380095");

arguments.addArgument("mgw_url","https://vpos.99bill.com/cnp/purchase");

return arguments;

}

@Override

public SampleResult runTest(JavaSamplerContext context) {

String merchantId = context.getParameter("merchantId");//"812333345110001";//st1

String pan = context.getParameter("pan");

String storableCardNo = context.getParameter("storableCardNo");

String amount = context.getParameter("amount");

String terminalId = context.getParameter("terminalId");

String customerId = context.getParameter("customerId");

String mgw_url = context.getParameter("mgw_url");

String cardHolderId = context.getParameter("cardHolderId");

String cardHolderName = context.getParameter("cardHolderName");

SampleResult sampleResult = new SampleResult();

sampleResult.sampleStart();

boolean success = false;

String externalRefNumber = UUID.randomUUID().toString().replace("-", "");

logger.debug("externalRefNumber is: " + externalRefNumber);

String xmlstr = buildRequestBodyWithCNP(merchantId,externalRefNumber,terminalId,

pan,amount,storableCardNo,customerId,cardHolderName,cardHolderId).toString();

InputStream inputStream = HttpsRequestUtil.requestWithPost(xmlstr, merchantId, mgw_url);

String response = HttpsRequestUtil.convertStreamToString(inputStream);

logger.info("Response Message is: " + response);

if(null != response && !"".equals(response)){

if (response.contains("<responseCode>00</responseCode>")) {

success = true;

}

}

sampleResult.setResponseMessage(response);

sampleResult.setSuccessful(success);

sampleResult.sampleEnd();

long costTime = sampleResult.getEndTime() - sampleResult.getStartTime();

if( costTime > 1200){

logger.error("The trade cost: " + costTime + "; tradeId is: " + externalRefNumber);

}

return sampleResult;

}

@Override

public void teardownTest(JavaSamplerContext context) {

}

public StringBuffer buildRequestBodyWithCNP(String merchantId,String externalRefNumber,String terminalId,

String pan,String amount,String storableCardNo,String customerId,

String cardHolderName,String cardHolderId){

StringBuffer buffer = new StringBuffer();

buffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");

buffer.append("<MasMessage xmlns=\"http://www.99bill.com/mas_cnp_merchant_interface\">");

buffer.append("<version>1.0</version>");

buffer.append("<TxnMsgContent>");

buffer.append("<txnType>PUR</txnType>");

buffer.append("<interactiveStatus>TR1</interactiveStatus>");

buffer.append("<cardNo>"+ pan +"</cardNo>");

buffer.append("<amount>"+amount +"</amount>");

buffer.append("<termInMonths></termInMonths>");

buffer.append("<merchantId>"+ merchantId +"</merchantId>");

buffer.append("<terminalId>"+terminalId+"</terminalId>");

buffer.append("<entryTime>"+simpleDateFormat.format(new Date())+"</entryTime>");

buffer.append("<externalRefNumber>"+ externalRefNumber +"</externalRefNumber>");

buffer.append("<customerId>"+customerId+"</customerId>");

//buffer.append("<storableCardNo>"+ storableCardNo +"</storableCardNo>");

//buffer.append("<cardHolderName>"+ cardHolderName +"</cardHolderName>");

//buffer.append("<cardHolderId>"+ cardHolderId +"</cardHolderId>");

buffer.append("<spFlag>QPay02</spFlag>");

buffer.append("<idType>0</idType>");

buffer.append("<extMap>");

buffer.append("<extDate>");

buffer.append("<key>phone</key>");

buffer.append("<value>13401928538</value>");

buffer.append("</extDate>");

buffer.append("</extMap>");

buffer.append("<orgPartyId></orgPartyId>");

buffer.append("<rifleMap/>");

buffer.append("<supCardFlag></supCardFlag>");

buffer.append("</TxnMsgContent>");

buffer.append("</MasMessage>");

return buffer;

}

public static void main(String[] args) {

Cnppurchase test = new Cnppurchase();

Arguments arguments = test.getDefaultParameters();

JavaSamplerContext context = new JavaSamplerContext(arguments);

test.setupTest(context);

test.runTest(context);

}

}

本文來自部落格園,作者:up~up,轉載請註明原文連結:https://www.cnblogs.com/soft-engineer/p/15131693.html