jmeter中的ClientProtocolException
Posted
技术标签:
【中文标题】jmeter中的ClientProtocolException【英文标题】:ClientProtocolException in jmeter 【发布时间】:2017-03-20 11:47:24 【问题描述】:我是第一次测试和使用 jmeter。使用these steps 我正在尝试在jmeter 中记录移动设备脚本。我已经完成了以下步骤:
-
打开 JMeter 并右键单击 TestPlan>Add >Threads (Users)>Thread Group。
右键单击线程组>添加>逻辑控制器>录制控制器。
右键单击线程>添加>侦听器>查看结果树。
通过选择 Add>Non-Test Elements>HTTP(S) Test Script Recorder 选项添加测试脚本记录器。
将“8080”添加为端口值,然后单击“开始”按钮。这将在 localhost 上启动 JMeter 代理。
但是当我在浏览器 (https://localhost:8080
) 上检查服务器状态时,出现以下错误:
org.apache.http.client.ClientProtocolException:URI 未指定有效的主机名:https://// 在 org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:817) 在 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:517) 在 org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:331) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) 在 org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146) 在 org.apache.jmeter.protocol.http.proxy.Proxy.run(Proxy.java:240)
【问题讨论】:
【参考方案1】:您不应该在浏览器中打开https://localhost:8080
URL,您需要配置您的移动设备以使用该机器,其中 JMeter 作为代理主机运行,8080 作为代理端口。
如果您想测试 HTTP(S) 测试脚本记录器 - 将您的浏览器配置为使用 localhost
作为代理主机并使用 8080
作为代理端口并打开一些内部网或 Internet 页面 - 您应该会看到请求在录音控制器下。
您可以使用Templates 功能快速设置JMeter 进行录制,只需从JMeter 的主菜单中选择File -> Templates -> Recording -> Create
,您将在几秒钟内准备好JMeter 进行录制(在此设置中默认代理端口为8888
)
如果您的目标是在移动设备上记录 HTTPS 流量,您还需要在其上安装 JMeter 的自签名证书。在 JMeter 的 bin 文件夹中查找 ApacheJMeterTemporaryRootCA.crt
文件,通过电子邮件将其发送给自己,在移动设备上打开电子邮件并按照您的移动操作系统对话框进行安装。
有关使用 JMeter 正确记录移动设备流量的更多信息,请参阅 Load Testing Mobile Apps Made Easy 指南
【讨论】:
以上是关于jmeter中的ClientProtocolException的主要内容,如果未能解决你的问题,请参考以下文章
jmeter线程组中的循环与循环控制器中的循环各代表啥含义?
jmeter http请求中的json map 中的key怎样提取
jmeter中的ClientProtocolException