很多朋友在刚刚接触jmeter的时候会遇到各种各样感觉稀奇古怪的问题,明明请求对了却总是返回不如意的结果,jmeter功能强大,但没有postman那样的界面简洁易上手的特性,本文分享在最初接触jmeter时有可能会遇到的问题,让各位少走弯路。下方目录,点击可直接跳转到对应的问题解决方案上。
目录
2、提示{"code":"10010002","msg":"获取登陆用户信息失败"}
5、提示{"code":"30000000","msg":"JSON parse error: xxx}
1、提示java.net.URISyntaxException: Illegal character in authority at index 7:xxxx
java.net.URISyntaxException: Illegal character in authority at index 7: http:// xxxxx
at java.net.URI$Parser.fail(Unknown Source)
at java.net.URI$Parser.parseAuthority(Unknown Source)
at java.net.URI$Parser.parseHierarchical(Unknown Source)
at java.net.URI$Parser.parse(Unknown Source)
at java.net.URI.<init>(Unknown Source)
at java.net.URL.toURI(Unknown Source)
at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:620)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:66)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1296)
at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1285)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.lang.Thread.run(Unknown Source)
原因及解决方案:URL地址不正确(可能是由于域名或参数中使用了非法的字符;也有可能是在开头、结尾等地方多打了一个空格,这种情况的概率非常大,一定要检查空格)
2、提示{"code":"10010002","msg":"获取登陆用户信息失败"}
{"code":"10010002","msg":"获取登陆用户信息失败"}
原因及解决方案:提示登录用户信息失败类似的内容时,通常是访问的这个接口还需要和其它接口之间有关联,比如我目前访问的一个接口,就需要将登录接口返回的token作为请求头携带,否则就会报这个错误。
1、添加请求头方法:右键线程组-添加-配置元件-HTTP信息头管理器
2、输入名称和值即可(每个公司和每个项目都不同,具体缺少的是什么由实际情况决定,下图仅做举例)
3、提示{"timestamp":"2023-04-06T09:29:18.862+00:00","status":415,"error":"Unsupported Media Type","path":"xxxx"}
{"timestamp":"2023-04-06T09:29:18.862+00:00","status":415,"error":"Unsupported Media Type","path":"/hd/sys/user/xxxx"}
原因及解决方案:此问题常见于post请求,看到此问题时基本可以确认是请求头方面出了问题,缺少请求类型方面的描述(这一点就没有postman做的好),如果是json格式的请求体,则需在【HTTP信息头管理器】中添加Content-Type:application/json(如下图)当然,如果请求头有书写错误也会报这个错,比如使用了中文的逗号、分号等。
4、响应成功,但响应内容乱码
原因及解决方案:此问题是由于编码格式异常造成的,因为响应页面没有做编码处理,JMeter默认按照ISO-8859-1编码格式进行解析;
设置方法一(不推荐):在原本的content-type中,结尾增加英文状态的分号';'并写上charset=utf-8
上述方法不一定有效,在很多电脑上此方法会失效,如果此方法无效请参考方案二
设置方法二(推荐):
1、右键线程组-添加-后置处理器-BeanShell 后置处理程序
2、写入prev.setDataEncoding("utf-8")
prev.setDataEncoding("utf-8")
3、重新访问请求,即可解决响应乱码问题
5、提示{"code":"30000000","msg":"JSON parse error: xxx}
{"code":"30000000","msg":"JSON parse error: Unexpected character ('\"' (code 34)): was expecting comma to separate Object entries; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('\"' (code 34)): was expecting comma to separate Object entries\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 4, column: 6]"}
原因及解决方案:出现此问题,基本都是json格式书写有问题,可以把json请求体粘贴到json.cn去验证是否书写正确,我把链接附在下面可以直接访问。(多参和少参或参数错误也有可能会报这个错误,但不常见,具体看后端开发人员是如何写接口的)
点击进入json.cn验证格式书写是否异常https://www.json.cn/
❤关注我,不迷路❤
******我的本文相关专栏******
******我的其它作品专栏******