loadrunner vuser http通讯压测
loadrunner压测基础脚本
导入相应jar包后,关键action代码如下:
public int action() throws Throwable {
URL url = new URL("http://57.25.2.87:8084/");
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true); // 设置该连接是可以输出的
httpURLConnection.setRequestMethod("POST"); // 设置请求方式
httpURLConnection.setRequestProperty("Content-Type",
"application/xml;charset=utf-8");
httpURLConnection.setRequestProperty("User-Agent", "Apache-HttpClient/4.5.2
(Java/1.8.0_101)");
httpURLConnection.setRequestProperty("Accept-Encoding", "gzip,deflate");
httpURLConnection.setRequestProperty("Connection", "Keep-alive");
PrintWriter pw = new PrintWriter(new OutputStreamWriter(
httpURLConnection.getOutputStream(),"utf-8"));
lr.start_transaction("往账付款交易http");
pw.write("{\\"APP_HEAD\\":{},\\"SYS_HEAD\\":{\\"SCENE_ID\\":\\"01\\",\\"RUN_DATE\\":\\"20200427\\",\\"USER_ID\\":\\"907006\\",\\"TRAN_TIMESTAMP\\":\\"140000\\",\\"SYSTEM_ID\\":\\"301907\\",\\"TRAN_MODE\\":\\"ONLINE\\",\\"SOURCE_TYPE\\":\\"IP\\",\\"SEQ_NO\\":\\"\<seq\>\<random\>\<random\>\\",\\"USER_LANG\\":\\"CHINESE\\",\\"SERVICE_ID\\":\\"300420021\\",\\"MAC_VALUE\\":\\"UPPS\|uppsToesb\|RZAK\|6276A776CB468656EB28B1F2F29E782C\\",\\"TRAN_DATE\\":\\"20200427\\",\\"BRANCH_ID\\":\\"00001\\"},\\"BODY\\":{\\"TERMINAL_NO\\":\\"123456\\",\\"BUSI_CLASS_CODE\\":\\"120004\\",\\"PAYER_ACCT_TYPE\\":\\"00\\",\\"PAYER_ACCT_NO\\":\\"623166000000682244\\",\\"PAYER_NAME\\":\\"测试\\",\\"MERCHANT_NO\\":\\"\\",\\"MERCHANT_NAME\\":\\"\\",\\"MERCHANT_SHORT\\":\\"\\",\\"PAYEE_ACCT_BELONG_BRANCH\\":\\"C1081621000014\\",\\"PAYEE_ACCT_BRANCH_NM\\":\\"XX银行\\",\\"PAYEE_ACCT_TYPE\\":\\"00\\",\\"PAYEE_SIGN_PROTOCOL\\":\\"\\",\\"PAYEE_ACCT_NO\\":\\"623166000000682244\\",\\"PAYEE_NAME\\":\\"测试\<seq\>\\",\\"CCY\\":\\"CNY\\",\\"TRAN_AMT\\":\\"0.01\\",\\"NARRATIVE\\":\\"123\\",\\"TRAN_USE\\":\\"0001\\",\\"TRX_TRM_TYPE\\":\\"02\\",\\"TRAN_DEVICE_INFO\\":\\"\\",\\"TRAN_NOTE\\":\\"123\\"}}");
pw.flush();
pw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(
httpURLConnection.getInputStream(), "utf-8"));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) { // 读取数据
sb.append(line + "\\n");
}
if (0\<=sb.toString().indexOf("000000") ) {
System.out.println(sb.toString());
//判断本次交易成功(指成功发送消息,并受到返回)
lr.end_transaction("往账付款交易http",lr.PASS);
}
else {
System.out.println(sb.toString());
lr.end_transaction("往账付款交易http",lr.FAIL);
}
//关闭连接
httpURLConnection.disconnect();
return 0;
}//end of action
这里是直接用了java.net.包中的http组件,使用io来处理报文流。
这个可以更好的模拟客户端是java应用的压力产生,可用于测试后端接口。如果是网页版的可以参考另一个直接使用web脚本。