jmeter响应断言放进csv文件遇到的问题
用Jmeter的json 断言去测试http请求响应结果,发现遇到中文时出现乱码,导致无法正常进行响应断言,很影响工作。于是,察看了相关的测试人员的解决方案,发现是jmeter本身对编码格式的设置导致了这一问题。解决方案是在jmeter的配置文件jmeter.properties中,将编码格式sampleresult.default.encoding的值改为UTF-8改为UTF-8, 然后重启jmeter。
上图:读取csv文件的assertion断言内容是乱码。
这里的断言数据本来是下面正常显示的 客户端非法请求:username.len应该大于或等于1,但现在username.len=0这句,但实际为上面的乱码。
解决方案:
这里编码方式默认是ISO-8859-1,把它改成UTF-8.
但是再次实践,还是报错,问题出在csv文件的编码上,如果csv文件里有中文,它的编码就要改。经过多次尝试,发现编码为UTF-8 BOM时,乱码不再有了。
如上图,从csv文件读出的内容不再是乱码,而是正常的中文。
这里又出现了另一个问题,即因为csv文件默认是以,来分隔数据的,这里只读取到有,的地方,,以后的文字就没再读
数据文件是这样的:
接下来在逗号前面加个转义符\,
发现并不能成功拿到预期结果。
问题还是有。总之,没法解决逗号后面部分的断言内容被读取。
总结:如果响应断言里有逗号,那么不能把断言部分放进csv文件里做参数化。csv文件做参数化仅限于存放请求需要的数据参数,加上响应结果之类的就不行了。