loadrunner之Java Vuser協議腳本編寫


步驟:
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編碼格式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM