jmeter http请求中的httpclient4和java有啥区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jmeter http请求中的httpclient4和java有啥区别相关的知识,希望对你有一定的参考价值。
其实也没什么区别的,一样的效果。HTTP请求格式告诉我们,有两个位置或者说两种方式可以为request提供参数:request-line方式与request-body方式。
request-line
request-line方式是指在请求行上通过URI直接提供参数。
(1)
我们可以在生成request对象时提供带参数的URI,如:
HttpUriRequest request = new HttpGet(
"http://localhost/index.html?param1=value1¶m2=value2");
(2)
另外,HttpClient程序包为我们提供了URIUtils工具类,可以通过它生成带参数的URI,如:
URI uri = URIUtils.createURI("http", "localhost", -1, "/index.html",
"param1=value1¶m2=value2", null);
HttpUriRequest request = new HttpGet(uri);
System.out.println(request.getURI()); 参考技术A 方法/步骤
通常用jmeter做http请求(或者其他类型)时,有时候要对请求的数据(或者响应的数据)进行特定的处理再进行请求,如加密、解密。
这时候我们可以用java自己写一些工具类,利用jmeter提供的beanshell来调用我们的工具类对数据进行处理,然后再进行相关的请求。
首先在eclipse写个属于自己的工具类,如图我写了一个根据左右边界截取字符串的工具类GetStringWithLBRB.java,“选择”你所有写的类文件,“右击”选择导出,“导出”jar包(随便命名,记住该类在eclipse中的包路径即可)
然后将导出的jar包放到\apache-jmeter-2.12\lib\ext目录里,在jmeter中创建一个项目,添加一个http request,在这个请求里我们添加一个前置beanshell。
在beanshell中导入我们的jar包(包路径既我们在eclipse中看到的路径),beanshell中的两个方法是我们最常用到的:vars.get(String paramStr)、vars.put(String key,String value),前一个是从jmeter中获得变量值,后一个是将数据存到jmeter变量中。
如图显示我将abc123def字符串截取出123,然后存到jmeter中,这样我就能在jmeter中使用$paramName获取到我处理后的值了。
7
这样对于请求前要加密、请求后要解密的情况,我们就能自己写工具包进行相关数据处理了
jmeter connection reset解决方法
方法仅作参考:
1.修改HTTP请求下面的Impementation选项,改成HttpClient4
2.在user.properties文件内修改:
hc.parameters.file=hc.parameters
#Jmeter 2.10以后禁用了失败请求重试
3.在hc.parameters文件内修改:
http.connection.stalecheck$Boolean=true
#Jmeter 2.10以后禁用了失效检查
重启Jmeter再尝试一下
新建注册表脚本reg文件,编辑值如下,保存后双击执行;重启电脑,再次压测即不会出现报错
相关值解析
MaxUserPort:最大动态端口数(Default = 5000, Max = 65534)
TcpTimedWaitDelay:TCP等待延迟时间(30)
TcpNumConnections:TCP最大连接数(Default = 16,777,214)
MaxFreeTcbs:最大TCP控制块(1000-2000)
MaxHashTableSize:最大TCB Hash table数量(64-65536)
解析中值为10进制,下方脚本已全转换为16进制
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\]
"MaxUserPort"=dword:fffe
"TcpTimedWaitDelay"=dword:1e
"TcpNumConnections"=dword:fffffe
"MaxFreeTcbs"=dword:7D0
"MaxHashTableSize"=dword:10000
以上是关于jmeter http请求中的httpclient4和java有啥区别的主要内容,如果未能解决你的问题,请参考以下文章
【接口测试 】 JMeter 使用 http长连接的方法 (转)