常见问题:
1、中文乱码
2、linux问题记录
2.1 csv文件在linux上的路径问题
2.2 linux上执行测试计划 Error in NonGUIDriver
2.3 mysql造数
一、中文乱码处理
1、多种编码,导致数据混乱
比如一个网站有utf-8,也有gb2312编码,显示时就可能会有问题。
1)在jmeter.properties中将 sampleresult.default.encoding=ISO-8859-1 值改为gb2312
2)在beanshell后置处理器中对utf-8做单独的编码处理。
prev.setDataEncoding("utf-8");
3)在html模式下查看,问题是否解决。
2、获取参数化文件数据,得到的是乱码
现象1:参数化文件取值后发现是乱码
1)查看csv data set config里file encoding为utf-8(要与参数化文件保存的格式一致)
2)将参数请求值从http采样器中的parameters放到body data里,再次请求在结果树中看看是否已经变更了。
现象2:参数化文件保存的是utf-8格式的文件,但参数化取值后发现乱码。非数字类型转换为URL编码,比如test123显示为类似%E9%94。。123的字符。
1)将文件保存为ANSI格式,再运行下看看结果。
3、中文URL编码
现象:抓包后发现参数值中文乱码,如果改成中文会使页面数据是乱码。
1)分析下数据,看看乱码是不是URL编码。使用fiddler(工具-textWizard)工具,编解码试下。
2)将URL编码自动转码为中文。
jmetetr自带有两个函数
${__javaScript(encodeURIComponent('${token}'))}
${__urlencode('${token}'))}
可以借助这两个函数来实现,这样在变量或者参数文件中填写中文,在请求中调用这两个函数来编码。
4、http请求的body data中写的中文有乱码,比如中间方框中有个?的这种。---jmeter3.x以上版本应该没有此问题了
解决方法:
1)jmeter.properties中搜索JSyntaxTextArea
#JSyntaxTextArea configuration #jsyntaxtextarea.wrapstyleword=true #jsyntaxtextarea.linewrap=true #jsyntaxtextarea.codefolding=true # Set 0 to disable undo feature in JSyntaxTextArea #jsyntaxtextarea.maxundos=50 # Change the font on the (JSyntax) Text Areas. (Useful for HiDPI screens) #jsyntaxtextarea.font.family=Hack #jsyntaxtextarea.font.size=14 # Set this to false to disable the use of JSyntaxTextArea for the Console Logger panel
JSyntaxTextArea 科普下。
2)将上边的注释取消,重启jmeter,加载脚本。再次查看是否正常了。
5、查看结果树乱码
在jmeter.properties这个文件添加上sampleresult.default.encoding=utf-8,重启jmeter
6、使用函数${__RandomString(5)} 生成字符乱码
使用函数,结果显示类似:ᰚᛆ↬ḡ溤
在jmeter.properties中将 sampleresult.default.encoding使用gb2312、ISO-8859-1、utf-8、GBK时都是如此,还将JSyntaxTextArea 注释取消也是如此。
尝试其他解决方式???
二、linux上问题
2.1 csv 在linux上的路径问题
jmeter3.3版本,测试计划中使用csv data set config插件,此测试计划在windows下使用的绝对路径下使用正常。上传到linux并改路径后,始终提示文件有问题,执行报错。
排查问题步骤:
1、将参数文件上传到linux下的一个文件路径,测试计划中使用linux上的绝对路径。----一直报错。
2、检查文件夹权限、参数文件权限,权限都OK。windows与linux都使用的相同jmeter版本,不同在版本问题。----一直报错。
3、将jmeter的测试计划与参数文件,放在同一目录下,地址使用 .\file.txt这样的相对路径。----一直报错。
4、将jmeter的测试计划与参数文件,放在同一目录下,地址使用 file.txt这样的相对路径。----执行OK。
报错信息数据如下所示:
java.lang.IllegalArgumentException: Could not read file header line for file .\file.txt
Caused by: java.lang.IllegalArgumentException: File .\file.txt must exist and be readable
相对路径
这个用法到处都是,只提一个特别注意的:可以把csv文件与脚本放在同一个目录下,然后路径写脚本所在的相对路径即可,也可以把csv文件放到bin下面,把bin目录作为相对路径。(注意csv函数还是csv配置元件,路径前面都没有用引号,也没有/或者./不要画蛇添脚)
2.2 linux上执行测试计划 Error in NonGUIDriver
linux上执行测试计划报错,如下所示:
Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/root/jmeter201808/test.jmx', missing class com.thoughtworks.xstream.converters.ConversionException:
---- Debugging information ----
cause-exception : com.thoughtworks.xstream.converters.ConversionException
cause-message :
first-jmeter-class : org.apache.jmeter.save.converters.HashTreeConverter.unmarshal(HashTreeConverter.java:67)
class : org.apache.jmeter.save.ScriptWrapper
required-type : org.apache.jorphan.collections.ListedHashTree
converter-type : org.apache.jmeter.save.ScriptWrapperConverter
path : /jmeterTestPlan/hashTree/hashTree/hashTree/kg.apc.jmeter.vizualizers.CorrectedResultCollector
line number : 170
version : 3.3 r1808647
解决: