首页 > 编程语言 >jmeter中的java请求 用httpclient写的http请求 及参数化

jmeter中的java请求 用httpclient写的http请求 及参数化

时间:2023-04-23 13:40:45浏览次数:38  
标签:java 请求 import org new apache http jmeter


首先,jmeter中的sample的原理:


 jmeter 中的java 请求,sample 原理,java testjmeter自带的包,把包放在类路径下面,通过反射机制,通过反射机制扫出来。 


先导入五个jar

jmeter中的java请求 用httpclient写的http请求 及参数化_java



 

 

package com.young.testing91;

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;


public class addComputerInfoClient extends AbstractJavaSamplerClient {
	private static String uriPOST = "http://localhost:9000/computers";

	@Override
	public Arguments getDefaultParameters() {
		Arguments arguments = new Arguments();
		arguments.addArgument("val", "");

		return arguments;
	}

	public SampleResult runTest(JavaSamplerContext arg0) {
		// 添加事务 new SampleResult
		SampleResult result = new SampleResult();
		result.sampleStart();
		String value = arg0.getParameter("val");
		try {
			int responseCode = SendHttpRequest.sendPostRequest(value);
			if (responseCode == 200) {
				result.setSuccessful(true);
			} else {
				result.setSuccessful(false);
			}
		} catch (ClientProtocolException e) {
			result.setSuccessful(false);
			e.printStackTrace();
		} catch (IOException e) {
			result.setSuccessful(false);
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		}
		result.sampleEnd();
		return result;
	}

	public static void main(String[] args) {
		new addComputerInfoClient().runTest(new JavaSamplerContext(new Arguments()));
	}
}

 

 

 

package com.young.testing91;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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 SendHttpRequest {
	// send url is http://localhost:9000/computers?f=ACE
		private static String uriPOST = "http://localhost:9000/computers";

		public static int sendPostRequest(String value) throws ClientProtocolException, IOException {

			CloseableHttpClient httpclient = HttpClients.createDefault();
			HttpPost httpPost = new HttpPost(uriPOST);
			List<NameValuePair> params = new ArrayList<NameValuePair>();
			params.add(new BasicNameValuePair("name", value));
			params.add(new BasicNameValuePair("introduced", "2017-2-19"));
			params.add(new BasicNameValuePair("discontinued", "2017-2-19"));
			params.add(new BasicNameValuePair("company", "22"));
			httpPost.setEntity(new UrlEncodedFormEntity(params));
			long startTime = System.currentTimeMillis();
			CloseableHttpResponse httpResponse = httpclient.execute(httpPost);
			int responseCode = httpResponse.getStatusLine().getStatusCode();
			System.out.println(responseCode + " ," + (System.currentTimeMillis() - startTime) + "ms");
			return responseCode;

在jmeter里,多个参数用这个方法增加

arguments.addArgument("val", "");

 

导包的时候用runnable JAR file, 此方法可以把依赖的类都导出

jmeter中的java请求 用httpclient写的http请求 及参数化_java_02

在ecplise中的httpclient  jar包版本要于jmeter中的版本一直或是比jmeter中的高,否则会报错java.lang.NoSuchFieldError: INSTANCE。

jmeter中的java请求 用httpclient写的http请求 及参数化_jar包_03

 

jmeter中的java请求 用httpclient写的http请求 及参数化_java_04

 

把导出的jar包放到jmeter中 lib 中的ext目录下,然后在jmeter中新建一个java请求,就可以选择刚才导入的jar包,选择参数

jmeter中的java请求 用httpclient写的http请求 及参数化_java_05

jmeter中的java请求 用httpclient写的http请求 及参数化_java_06

在这分享一个之前学习过的jmeter视频,还不错,关注公众号【测试开发加油站】

jmeter中的java请求 用httpclient写的http请求 及参数化_apache_07

回复jmeter即可获得下载链接。

标签:java,请求,import,org,new,apache,http,jmeter
From: https://blog.51cto.com/u_16084838/6217435

相关文章

  • 业务接口造数据(httpclient)
    导入httpclientjar包创建maven工程 httpclient发送get请求packagecom.testing91;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client......
  • java基础-泛型(七)
    泛型:jdk1.5版本以后出现的一个安全机制。表现格式:<>好处:1:将运行时期的问题ClassCastException问题转换成了编译失败,体现在编译时期,程序员就可以解决问题。2:避免了强制转换的麻烦。 只要带有<>的类或者接口,都属于带有类型参数的类或者接口,在使用这些类或者接口时,必须给<>中传递一......
  • java基础-面向对象-多态(四)
    某一个事务不同的体现形态例如:人:男人、女人动物:猫、狗猫x=new猫();动物x=new猫();1、多态的体现父类的引用指向了自己的子类对象父类的引用也可以接受自己的子类对象2、多态的前提必须是类与类之间有关系,要么继承、要么实现,通常还有一个前提,存在覆盖3、多态的好处多态的出现大大......
  • java基础-面向对象-继承(三)
    This  Super  继承的时候出现的两个关键字,final(不让复写方法)  abstract (必须复写方法)interface(修饰类)  implement继承好处:提高代码的复用性, 让类与类之间产生了关系,提供了另一个特征多态的前提父类的由来,其实是由多个类不断向上抽取共性内容而来的java来说,继承是单......
  • java基础-异常处理(六)
    异常处理,出现的问题有很多种,比如角标越界,空指针等都是。就对这些问题进行分类。而且这些问题都有共性内容比如:每一个问题都有名称,同时还有问题描述的信息,问题出现的位置,所以可以不断的向上抽取。形成了异常体系。--------java.lang.Throwable:Throwable:可抛出的。   |--Error:错......
  • Unable to tunnel through proxy. Proxy returns "HTTP/1.1 503 Service Unavailable
    背景:某日,一正常项目迁移到新的服务器新的服务器,需要使用代理来访问之前能直接访问的接口,加完代理之后,发现无法获取数据了报错:org.springframework.web.client.ResourceAccessException:I/OerroronGETrequestfor"https://xxxxxxxxxx/xxxx":Unabletotunne......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</versi......
  • 01-Httprunner简介、安装及基本使用教程
     https://www.jb51.net/article/237541.htm httprunner是一款面向 HTTP(S) 协议的通用测试框架。只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求,本文给大家介绍Httprunner安装使用教程,感兴趣的朋友一起看看吧......
  • 02-httprunner创建脚手架报错解决方法:httprunner: error: invalid choice: ‘startpro
      转载:https://blog.csdn.net/qq_33940095/article/details/128191841安装完httprunner版本4.1.3后进行创建脚手架是报错  经过百度发现是与python(3.7.6)版本不匹配.卸载httprunner重新安装低版本的httprunner卸载:pipuninstallHttpRunner  ......
  • jackson将java对象转换为json字符串
    1.1. 下载jacksonJackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。而且Jackson社区相对比较活跃,更新速度也比较快。下载地址:http://jackson.codehaus.org/1......