最近在使用jmeter做一个自动化的接口测试,但是遇到了一个问题,python代码提取的变量值传给jmeter以后,是乱码的,即便加了后置处理器也无效,如下图:
###############################################获取第2页的检测站调度配置###########################################################
table = workbook.sheet_by_index(1)
name = table.name
#这个sheet的总行数
rowNum = table.nrows
lines=[]
xiangmus=[]
for i in range(0,rowNum): #遍历每一行
if table.row_values(i)[4] !='' and table.row_values(i)[4] !=u'检测项目' : #对列4判断 # u就可以转义中文
lines.append(table.row_values(i)[1]) #将第2列的值插入到这个数组中,其实就是线名称的数组
xiangmus.append(table.row_values(i)[4])
print('***')
A = 1
for i in xiangmus:
vars.put('xiangmu' + str(A),str(i))
A = A +1
这段代码是我从表格里面提取数据,把数据放在数组里,然后遍历,然后参数化,但是,我们看结果树:

很不给力,乱码,我们尝试了后置处理器试试:


还是不行:

我们把数组输出一下把:


看到这里我们怀疑这里是编码的问题,于是百度了很久,尝试了很久,使用以下方法可以解决,但是我不知道是什么原理:
for i in xiangmus:
i = str(i).encode('raw_unicode_escape').decode('utf-8')
vars.put('xiangmu' + str(A),i.decode('unicode_escape'))
A = A +1
再次运行:

完美解决。
这里希望有大咖解释一下到底是什么愿意。谢谢
网友评论