由于LR不支援PUT方式,是以隻好通過java Vuser寫壓測腳本,使用httpclient jar包,我使用的httpclient4.5版本。

/*
* LoadRunner Java script. (Build: _build_number_)
*
* Script Description:
*
*/
import lrapi.lr;
import lrapi.web;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.text.SimpleDateFormat;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class Actions
{
public int init() throws Throwable {
return 0;
}//end of init
public int action() throws Throwable {
HttpClient client = HttpClients.createDefault();
HttpPut put = new HttpPut("http://xxxxcart.beta1.fn/xxxCart/rest/v1/cart/");
// lr.save_string(lr.eval_string("<owner>"), "user");
// lr.output_message("The value of str = " + lr.eval_string("<user>") + ".");
String sourceStr = lr.eval_string("<name5529206105542>");
String sourceArray[] = sourceStr.split(",");
List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
parameters.add(new BasicNameValuePair("owner",sourceArray[0]));
lr.save_string(sourceArray[0], "user");
// parameters.add(new BasicNameValuePair("owner","name5529206105542"));
for ( int i=2;i<sourceArray.length;i++ ) {
lr.save_string(sourceArray[i],"id1");
// lr.output_message("id1 value is "+lr.eval_string("<id1>"));
parameters.add(new BasicNameValuePair("area_seq","CS000016"));
parameters.add(new BasicNameValuePair("is_login","1"));
parameters.add(new BasicNameValuePair("mem_type","0"));
// parameters.add(new BasicNameValuePair("cart_detail_list","[{\"cart_detail_id\":\"715\",\"qty\":2,\"selected\":true,\"campaign_seq\":\"\"}]"));
parameters.add(new BasicNameValuePair("cart_detail_list","[{\"cart_detail_id\":\"<id1>\",\"qty\":<qty>,\"selected\":true,\"campaign_seq\":\"\"}]"));
/*
List<BasicNameValuePair> parameters = new ArrayList<BasicNameValuePair>();
parameters.add(new BasicNameValuePair("owner","<user>"));
parameters.add(new BasicNameValuePair("area_seq","CS000016"));
parameters.add(new BasicNameValuePair("is_login","1"));
parameters.add(new BasicNameValuePair("mem_type","0"));
parameters.add(new BasicNameValuePair("cart_detail_list","[{\"cart_detail_id\":\"<id>\",\"qty\":2,\"selected\":true,\"campaign_seq\":\"\"}]"));
*/
// System.out.println("parameters is " + parameters );
try {
put.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
lr.start_transaction("t1");
HttpResponse response = client.execute(put);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
// System.out.println(result);
boolean b = result.contains("\"code\":1");
// System.out.println(b);
if ( b == true ) {
// System.out.println("為真");
lr.end_transaction("t1", lr.PASS);
} else {
// System.out.println("為假");
// lr.end_transaction("t1", lr.FAIL);
FileWriter writer = null;
try {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以友善地修改日期格式
String hehe = dateFormat.format( now );
writer = new FileWriter("e://codeerror.txt", true);
// writer.write(result);
BufferedWriter buffer = new BufferedWriter(writer);
buffer.write(hehe);
buffer.write(lr.eval_string("<user>"));
buffer.write(result);
buffer.newLine();
buffer.flush();
buffer.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(writer != null){
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//end of for
return 0;
}//end of action
public int end() throws Throwable {
return 0;
}//end of end
}