Jmeter 接口测试-文件上传报“文件不存在”问题解决

Jmeter 接口测试-文件上传报“文件不存在”问题解决,第1张

利用Jmeter测试上传文件,首先可根据接口文档或者抓包分析文件上传的接口。

以下是我通过谷歌自带的抓包所截取的文件上传的接口

Jmeter 新建一个Http  Request 采样器,填写相关的接口地址信息,如图:

然后就要填写post的内容,此时再看抓包截取的请求内容,如图:

jmeter 设置请求信息,如图:

此时,添加结果树,查看响应报文,一直报文件不存在

查了许多资料,有可能是因为文件上传路径的'\'被编码了,服务器无法识别

此时,需在http request 设置 implementation 为 Java ,让请求内容不被编码,如图:

此时,上传成功

1.解决 jmeter 非 GUI 模式运行测试时,结果.jtl 文件没有响应数据及中文乱码问题

(1)修改bin目录下的user.properties文件,追加配置:

jmeter.save.saveservice.response_data=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.responseHeaders=true

(2)jmeter\bin\jmeter.properties文件下把sampleresult.default.encoding的属性改成UTF-8并解开注释

2.Jmeter 高并发内存溢出问题

(1)修改apache-jmeter-3.2\bin\Jmeter.bat文件中的HEAP参数,如下

set HEAP=-Xms2048m-Xmx2048m

(2)可以去删除Jmeter bin文件夹下的文件jmeter.log 文件,或者每次内存溢出报错也会生成类似hs_err_pid6872.log文件,也要删除。

3.特别重要!!!脚本未保存,退出Jmeter

高并发跑的时候,可能内存溢出/脚本卡住直接退出Jmeter,然而我刚刚改的还没有保存........

不用担心脚本找不回,

这个时候有运行过,脚本会自动保存在apache-jmeter-3.2\backups文件夹下,

如果没有运行过的话,那哭吧,就是找不回来了.....

4.如何导出Jmeter 的报告

在跑脚本之前先在报告里配置报告存储路径,这样每次新运行的脚本生成报告就存储下来了,如下图:

注:每次运行如果报告存储路径及名字没有改的话会覆盖掉哦

5.Jmeter 非GUI模式生成html报告方法:

1.在Jmeter bin目录下输入以下命令并回车运行:

jmeter –n t .jmx脚本路径–l .jtl报告存放路径 –e –o html报告存放路径

注:(1)可能出现报错Error in NonGUIDriver

java.lang.IllegalArgumentException 是因为jmeter/bin/user.properties中,添加了一条如下属性 jmeter.save.saveservice.output_format=xml ,删除后再使用jmeter –n t .jmx脚本路径–l .jtl报告存放路径–e –o html报告存放路径 命令即可生成html报告;(2)html报告存放路径 必须是一个当前不存在的文件夹,否则会报错An error occurred:Cannot write to“F:\report”as folder is not empty.

参考文档: https://www.cnblogs.com/zymnstlm/p/10151155.html

6. 非GUI模式生成的 .jtl 报告在Jmeter可视化界面结果树打开Request 为No data to display,Response data为空解决办法:

(1)jmeter/bin/user.properties下添加如下命令行:

jmeter.save.saveservice.response_data=true

jmeter.save.saveservice.samplerData=true

jmeter.save.saveservice.requestHeaders=true

jmeter.save.saveservice.url=true

jmeter.save.saveservice.responseHeaders=true

(2)View Results Tree 的Configure 要勾选 save 

后续遇到继续更.......

一、配置java环境1:先查看系统32/64: uname -a根据系统的版本去Oracle官网下载jdk,下载后安装jdk即可。2:配置JAVA环境变量:vi /etc/profile追加如下内容:JAVA_HOME=/opt/jdk1.6.0_20 PATH=$JAVA_HOME/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/tools.jarexport JAVA_HOMEexport PATHexport CLASSPATH其中的JAVA_HOME为jdk的安装路径3:验证 echo $PATH 或者 java -version二、安装resin下载resin后,解压运行安装脚本: ./resin.sh console。然后在自己pc上访问 server ip:port 看到resin默认欢迎页面即说明安装成功。之后把在web项目的war包拷进 ren目录下的webapps 文件夹内,即可在外网访问服务器上的web项目了。三、 安装jmeter下载:同样在jemeter官网下载 对应的安装包,解压后执行:./jmeter -n -t ../ssdb_test.jmx -l ../log.jtl命令说明:a.-n 参数说明不用验证是否安装了图形库b. .jmx文件可以在windows环境下的用jmeter图形化生成,涉及参数以及测试结果的.csv文件路径可以直接 用notepad++ vi 等修改.jmx文件,确保其相对于.jmx文件路径正确。c.log.jtl 保存测试结果 既然没装图形界面库,那么测试结果.jtl文件就只能在windows下用jmeter来查看了。执行效果如下:[@zjm_44_250 bin]# ./jmeter -n -t ../ssdb_test.jmx -l ../log.jtlCreating summariser <summary>Created the tree successfully using ../ssdb_test.jmxStarting the test @ Mon Dec 29 18:43:20 CST 2014 (1419849800772)Waiting for possible shutdown message on port 4445summary = 100 in 0.3s = 289.9/s Avg: 105 Min: 3 Max: 285 Err: 0 (0.00%)Tidying up ... @ Mon Dec 29 18:43:21 CST 2014 (1419849801734)... end of run最后,执行命令:/home/apache-jmeter-2.8/bin/jmeter -n -t download.jmx -l log.jtllinux下最好输全路径,不然可能报bash:jeter:command not found,找不到执行文件错误,参数介绍如下:-n This specifies JMeter is to run in non-gui mode-t [name of JMX file that contains the Test Plan].-l [name of JTL file to log sample results to].-r Run all remote servers specified in JMeter.properties (or remote servers specified on command line by overriding properties)The script also lets you specify the optional firewall/proxy server information:-H [proxy server hostname or ip address] -P [proxy server port]


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12030959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存