步驟:
1、根據自己使用的lr版面選擇jdk
1)LR11 1.6 32位
2)LR12 1.7 32位
2、安裝好jdk,並搭建java環境變量,安裝好java代碼編寫工具


3、在src下創建一個包(我的是com.md5),將需要的jar文件放在lib目錄下(沒有的自己創建)

4、在包下放HttpClientRequest方法類、MD5算法類

5、寫好Md5Request.java
6、將com.md5打包成jar文件md5_test.jar
file-->Project Structure-->Artifacts-->JAR






7、在lr新建java Vuser協議的腳本

8、在runtime setting 的classpath中添加jar文件:
1)lib中的jar文件
2)jdk安裝目錄lib下的dt.jar和tools.jar
3)自己打包的md5_test.jar

9、最后將Md5Request.java里面的代碼復制到lr的action方法中

lr代碼如下:
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.codehaus.jettison.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; import org.codehaus.jettison.json.JSONException; import org.codehaus.jettison.json.JSONObject; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; //引入md5文件 import com.md5.MD5; //引入HttpClientRequest文件 import com.md5.HttpClientRequest; public class Actions { public int init() throws Throwable { return 0; }//end of init public int action() throws Throwable { //調用md5加密算法 將密碼加密 重置密碼時傳參要用 String md5pwd = MD5.GetMD5Code("123456"); lr.start_transaction("登錄"); //登錄 String loginRequest = HttpClientRequest.sendPost("http://192.168.145.130:8080/mobile/api/user/login","{\"mobile\":\"18705092505\",\"password\":\"123456\"}"); System.out.println("登錄響應數據:"+loginRequest); //創建JSONObject對象,獲取登錄響應數據loginRequest JSONObject loginRusult = new JSONObject(loginRequest); //獲取code int loginCode = (int)loginRusult.get("code"); if (loginCode == 0){ lr.end_transaction("登錄", lr.PASS); }else { lr.end_transaction("登錄", lr.FAIL); } //獲取token String token = (String)loginRusult.getJSONObject("data").get("token"); //重置密碼 並判斷是否成功 String resetpaypwd = HttpClientRequest.sendPost("http://192.168.145.130:8080/mobile/api/user/resetpaypwd","{\"token\":\""+token+"\",\"password\":\""+md5pwd+"\"}"); System.out.println("重置密碼響應數據:"+resetpaypwd); //將token轉換成URLcode String URLcode =""; try { URLcode = URLEncoder.encode(token,"UTF-8"); System.out.println("URLcode:"+URLcode); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } lr.start_transaction("獲取訂單列表"); //獲取訂單列表 String queryRequest = HttpClientRequest.sendGet("http://192.168.145.130:8080/mobile/api/order/getorders?","offset=0"+"&"+"size=15"+"&"+"token="+URLcode); JSONObject queryRusult = new JSONObject(queryRequest); int orderListCode = (int) queryRusult.get("code"); if (orderListCode == 0){ lr.end_transaction("獲取訂單列表", lr.PASS); }else { lr.end_transaction("獲取訂單列表", lr.FAIL); } return 0; }//end of action public int end() throws Throwable { return 0; }//end of end }
過程中遇到的問題:在idea工具運行代碼沒有問題,在lr運行報錯如下

解決如下:
原因:返回的響應編碼問題
解決:在HttpClientRequest的sendGet請求中讀取響應加上utf-8編碼格式

