java自定義jar包讓jemeter使用

背景:可能在作定義化的要求上,jmeter原有的jar包,已經不能知足咱們,就須要本身寫一個方法,如下就是寫入的一個模擬post的請求,在jmeter中使用的案例java

一:寫代碼

1.代碼中的有兩個包,原諒我取名字取的cuo,第一個包名,com.databasecomputer這個包下有一個addcomputerinfo這個類,com.jmeter包下有httpcientPost這個類apache

 

com.jmeter.httpcientPost 一個post請求,是登陸請求,打印的是code碼和登陸後的信息

package com.jemeter;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;

public class httpclientPost {
	
	public static int sendpost() throws ClientProtocolException, IOException {
		CloseableHttpClient httpclient = HttpClients.createDefault();
		HttpPost post = new HttpPost("https://user.XXX.com/m-users-a-act_sign.htm?pipeline=xx");
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("email", "zhang1@qq.com"));
		params.add(new BasicNameValuePair("password", "zhangjun123"));
		post.setEntity(new UrlEncodedFormEntity(params));
		CloseableHttpResponse response2 = httpclient.execute(post);

		int code = response2.getStatusLine().getStatusCode();
		HttpEntity http = response2.getEntity();

		InputStream instreams = http.getContent();
		BufferedReader reader = new BufferedReader(new InputStreamReader(instreams));
		StringBuffer buffer = new StringBuffer();
		String line;
		while ((line = reader.readLine()) != null) {
			buffer.append(line + "br ");
		}
		reader.close();
		System.out.println(code +" respones:"+buffer);
		
		return code;
	}

}

 com.databasecomputer.addcomputerinfo  如下就是調用,而且調用事務

package com.databasecomputer;

import java.io.IOException;

import org.apache.http.client.ClientProtocolException;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

import com.jemeter.httpclientPost;

public class addcomputerInfo extends AbstractJavaSamplerClient {

	public SampleResult runTest(JavaSamplerContext arg0) {
		// TODO Auto-generated method stub
		SampleResult result=new SampleResult();
		result.sampleStart();  //事務啓動
		try {
		int responeCode=httpclientPost.sendpost();
			if (responeCode==200) {
				result.setSuccessful(true);
			}else {
				result.setSuccessful(false);
			}
		} catch (ClientProtocolException e) {
			result.setSuccessful(false);
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			result.setSuccessful(false);
			e.printStackTrace();
		}
		result.sampleEnd();//事務關閉
		return result;
		
		
	}
	public static void main(String[] args) {
		new addcomputerInfo().runTest(new JavaSamplerContext(new Arguments()));
	}

}

  

運行打印code碼,返回登陸成功,注意:在運行時,要導入jmeter的jar包,否則運行會報錯,而後我就是不知道導入哪些包,出錯一個問題,就導入相應的包,可是發現效率很低,乾脆所有導入了app

 

導包的過程,導入的是jmeter下lib的全部jar文件maven

 

 2、打包

代碼調試沒有問題,就打包生成jar文件,生成文件能夠用maven命令生成,也可使用項目本身生成post

生成文件爲postdemo,文件路徑是在jmeter下的lib/ext文件夾下spa

 

 

3、jmeter使用

 

 注:若是生成jar成功,在啓動jmeter中會去查找到這個方法名,本身加載出來,我在線程組中設置了10次線程

點擊運行,控制檯顯示調試

 

 運行的次數code

 

 

說明調用jar成功orm

相關文章
相關標籤/搜索