loadrunner get請求的一個java vuser 指令碼
阿新 • • 發佈:2020-09-08
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import com.ytinf.service.lrTest.GetRequest; import com.alibaba.fastjson.JSONObject; public class Actions { public int init() throws Throwable { return 0; }//end of initpublic int action() throws Throwable { String url="http://XX.XX.XX.XX:8089/databridge_dg/hbase/lottery"; GetRequest getRequest=new GetRequest(); getRequest.addParameter("lotterysn","{lotterySn_lottery}"); lr.think_time(1); lr.start_transaction("票明細查詢"); JSONObject jsonObject=null; try{ jsonObject=getRequest.get(url); }catch(Exception e){ lr.end_transaction("票明細查詢",lr.FAIL);//如果超時報錯,事務失敗 lr.output_message("獲取響應報錯了"); } if (jsonObject!=null){ if (jsonObject.get("status").equals(0)){ lr.end_transaction("票明細查詢",lr.PASS);//解析響應結果,事務成功 }else{ lr.end_transaction("票明細查詢",lr.FAIL); lr.output_message("響應資訊的status欄位不為 0 。");//解析響應結果失敗,事務失敗 } }else{ lr.end_transaction("票明細查詢",lr.FAIL);//響應結果 為 null,響應失敗 lr.output_message("獲取的響應資訊為 null"); } return 0; }//end of action public int end() throws Throwable { return 0; }//end of end }
附上 java 程式碼 通過 httpUtil 傳送http 請求:
package com.ytinf.service.lrTest; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.utils.HttpClientUtils; import org.apache.http.client.utils.URIBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; public class GetRequest { private List<NameValuePair> params; public GetRequest() {} public GetRequest(List<NameValuePair> params) { this.params = params; } public void setParams(List<NameValuePair> params) { this.params = params; } // 直接傳入要傳送的引數列表 public JSONObject get(String url, List<NameValuePair> params) throws Exception { CloseableHttpClient httpClient=HttpClients.createDefault(); URIBuilder uriBuilder=new URIBuilder(url); uriBuilder.setParameters(params); HttpGet httpGet=new HttpGet(uriBuilder.build()); CloseableHttpResponse response=null; String result=null; try{ response=httpClient.execute(httpGet); // System.out.println(response.getStatusLine().getStatusCode()); HttpEntity httpEntity=response.getEntity(); // System.out.println(EntityUtils.toString(httpEntity)); result=EntityUtils.toString(httpEntity); }finally { if (response!=null){ response.close(); } httpClient.close(); } return JSONObject.parseObject(result); } // 可以直接 get URL,也可以通過單個add()方法,新增引數後 再執行 public JSONObject get(String url) throws Exception { CloseableHttpClient httpClient=HttpClients.createDefault(); URIBuilder uriBuilder=new URIBuilder(url); if (this.params!=null){ uriBuilder.setParameters(this.params); } HttpGet httpGet=new HttpGet(uriBuilder.build()); CloseableHttpResponse response=null; String result=null; try{ response=httpClient.execute(httpGet); // System.out.println(response.getStatusLine().getStatusCode()); HttpEntity httpEntity=response.getEntity(); // System.out.println(EntityUtils.toString(httpEntity)); result=EntityUtils.toString(httpEntity); }finally { if (response!=null){ response.close(); } httpClient.close(); } return JSONObject.parseObject(result); } // 給例項變數新增 單個引數 public void removeAllParameters(){ if (this.params!=null && params.size()>0){ this.params.clear(); } } // 給例項變數新增 單個引數 public void addParameter(String name,String value){ if (this.params==null){ this.params=new ArrayList<>(); } this.params.add(new BasicNameValuePair(name,value)); } public static void main(String[] args) throws Exception{ String url="http://XX.XX.XX.XX:8089/databridge_dg/hbase/lottery"; GetRequest getRequest=new GetRequest(); List<NameValuePair> nameValuePairList=new ArrayList<>(); nameValuePairList.add(new BasicNameValuePair("lotterysn","910440142860045587600108")); System.out.println(getRequest.get(url,nameValuePairList)); getRequest.addParameter("lotterysn","910540078760041513600403"); JSONObject jsonObject=getRequest.get(url); if (jsonObject.get("status").equals(0)){ System.out.println("成功!"); }else{ System.out.println("失敗!"); } url="http://XX.XX.XX.XX:8089/databridge_dg/hbase/win_lottery"; getRequest.removeAllParameters(); getRequest.addParameter("drawidlotterysn","175660110610175660092646500708"); JSONObject jsonObject1=getRequest.get(url); System.out.println("中獎票查詢的響應結果:"+jsonObject1); } }