使用loadrunner和HttpClient进行简单性能测试实验
1.在eclipse中使用httpclient连接www.163.com网站,如果返回结果OK则判断loadrunner事务成功否则事务失败。
我这里只是简单的demo,没有进行性能分析。
这是我写的java代码如下:
?
/?*
?LoadRunner Java script?????
??author:luodongfu??
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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.impl.client.DefaultHttpClient;
public class Actions
{
?public int init() {
??return 0;
?}//end of init
?public int action() {
??? HttpClient httpclient = new DefaultHttpClient();
???????? HttpGet httpget = new HttpGet("http://www.163.com/");
???????? lr.log_message("executing request " + httpget.getURI());
???????????????? lr.think_time(3);
???????????????? lr.rendezvous("requestTaobao");
???????? lr.start_transaction("client taobao request");
?HttpResponse response=null;
??try {
????response = httpclient.execute(httpget);
????? } catch (Exception e) {
?????? lr.output_message(e.getMessage());
???????????? }
???
???lr.output_message("当前loadrunner请求IP:"+lr.get_host_name()+";控制器IP:"+lr.get_master_host_name());
???lr.output_message("当前虚拟用户ID:"+lr.get_vuser_id());
???lr.output_message("----------------------------------------");
???lr.output_message(response.getStatusLine().toString());
???lr.output_message("----------------------------------------");
?HttpEntity entity = response.getEntity();
???????? BufferedReader reader=null;
???????? if (entity != null) {
???????? ? lr.end_transaction("client taobao request", lr.PASS);
???????????? try {
??????????????? reader = new BufferedReader(?? new InputStreamReader(entity.getContent()));
????????????????? String line=reader.readLine();
??????????????? while(line!=null)
??????????????? {
???????????? ??? lr.output_message(reader.readLine());
???????????? ??? line=reader.readLine();
??????????????? }
???????????? } catch (Exception e) {
???????????? ?lr.output_message(e.getMessage());
???????????? }? finally {
try {
??????reader.close();
?????} catch (IOException e) {
?????}
????????????????
???????????? }
???????? }
???????? else
???????? {
???????? ? lr.end_transaction("client taobao request", lr.FAIL);
???????? }
??return 0;
?}//end of action
?public int end() {
??return 0;
?}//end of end
}
?
?
?
2.使用loadrunner创建java vuser代码,将刚才在eclipse创建代码拷贝过来就可以了
?
3.设置loadrunner运行参数,这里最重要的设置java虚拟机的classpath;
?4.看我们这里增加的classpath,都是httpclient的相关jar包以及jre lib库;
?
5.在loadrunner中编译我们刚才拷贝的代码
?6.运行我们的jvuser代码,结果没有问题,有163返回的东东了。
?7.创建场景,将一个人的量力变成你20个人的力量,20用户去请求
?8.这里我们使用手工场景,最大用户为20
?9.设置用户增加减少步数:
?
?
?
?10.增加压力加压机
?11.增加需要监控的参数图,开始监控,呵呵:
?12.分析结果,准备分析性能了呵呵:
?
?
?
?
?
?
?
??这个是随用户增加以及事务响应时间
?
?
这是随着用户不断增加163网站事务响应时间图
?
?
?剩下的事情就是我们开始分析了