1、非GUI模式执行脚本
前提条件
①.电脑只有C盘
②.新创建用户(非默认管理员)
③.Jmeter 版本 v5.3
非GUI模式运行脚本生成测试报告
老规矩,直接上例子
①进入到 Jmeter的bin文件夹
C:\Users > cd C:\Performance\apache-jmeter-5.3\bin
②在bin文件夹下执行脚本
C:\Performance\apache-jmeter-5.3\bin>jmeter -n -t C:\performance\pro_searchAPI.jmx -l C:\performance\report\result.jtl -e -o C:\performance\report
③查看结果
本地文件夹,生成的report的
④命令解析
n:非GUI模式执行JMeter;
t: 脚本文件(.jmx文件)的路径;
l: 指定生成测试结果的保存文件(.jtl格式),此文件必须不存在;
e:测试结束后,生成测试报告;
o:用于存放测试报告的路径;
2、问题汇总
2.1 meter.save.saveservice.*属性
报错信息
File"xxxx\result.jtl' does not contain the field names header, ensure the jmeter.save.saveservice.* properties are the same as when the CSV file was created or the file may be read incorrectly when generating report
详情如截图
解决方法
①修改jmeter.properties 文件中关于csv的属性
jmeter.properties 配置文件
jmeter.save.saveservice.output_format=csv jmeter.save.saveservice.bytes=true jmeter.save.saveservice.label=true jmeter.save.saveservice.latency=true jmeter.save.saveservice.response_code=true jmeter.save.saveservice.response_message=true jmeter.save.saveservice.successful=true jmeter.save.saveservice.thread_counts=true jmeter.save.saveservice.thread_name=true jmeter.save.saveservice.time=true jmeter.save.saveservice.timestamp_format=ms jmeter.save.saveservice.timestamp_format=yyyy-MM-dd HH:mm:ss jmeter.save.saveservice.print_field_names=true
②修改log.jtl 文件目录
要保证 log.jtl 在 report文件夹内
否则,即使修改了 csv属性,依然报错!!
2.2 拒绝访问 jmeter.log
报错信息
main ERROR FileManager (jmeter.log) java.io.FileNotFoundException: jmeter.log (拒绝访问。) java.io.FileNotFoundException: jmeter.log (拒绝访问。)
截图详情
解决方法
拒绝访问的原因,就是无权限,
所以,解决方法两个:
① 管理员权限运行Jmeter;
②把Jmeter放到非系统盘,例如D:\Performance
2.3 log.jtl / result.jtl / reoprt not empty
报错信息
An error occurred: Cannot write to 'C:\Performance\report' as folder is not empty
截图详情
report
log.jtl
解决方法
不管是 生成报告的report文件夹、还是 log.jtl、result.jtl文件,如果再次执行脚本时,
就需要清空里面的信息。
福利
为了省事,小鱼写了一个bat文件,每次执行,自动删除report 文件、清空 log.jtl、result.jtl文件的内容
@echo off C: cd C:\Performance\apache-jmeter-5.3\bin if exist result.jtl del result.jtl rmdir C:\Performance\report md C:\Performance\report jmeter -n -t C:\Performance\测试脚本.jmx -l log.jtl -e -o C:\Performance\report
2.4 Operation not supported: connect
错误信息
Load time:1 Connect Time:0 Latency:0 Size in bytes:1968 Sent bytes:0 Headers size in bytes:0 Body size in bytes:1968 Sample Count:1 Error Count:1 Data type ("text"|"bin"|""):text Response code:Non HTTP response code: java.net.SocketException Response message:Non HTTP response message: Operation not supported: connect HTTPSampleResult fields: ContentType: DataEncoding: null
解决方法
bin文件夹 system.properties配置文件
java.net.preferIPv4Stack = true
3、总结
最近也是,小鱼在忙着工作,这博文也是好些时间未更新。
今天也是利用午休时间,整理了一下,Jmeter的坑,避免大家在采坑。
话不多说,我们来看一下,主要的问题有哪些:
1、配置问题: jemter.properties、system.porperties 修改并放开属性里的内容;
2、执行问题:log.jtl 要跟report(生成报告文件夹)在同一层级目录下;
3、文件清空:再次执行同一脚本,需要清理 result.jtl、log.jtl 内容。
以上就是今天分享的内容。
希望大家都能避坑,顺利的生成测试报告!!