首页 > 技术文章 > jmeter随笔(10)-中文url编码问题

heiyexiaoguai 2016-10-15 13:30 原文

  坚持分享,坚持总结,技术需要时间的积累和练习,对jmeter实践的点滴的记录,这里分享交流,仅供参考和讨论,有想法的欢迎留言、谈论,手机上图片如果不清晰,请点击【阅读原文】查看。

1技巧1:后台数据html转码,导致jmeter不能直接断言详情

问题:项目为了做xss防御,加了一种转码方式,导致我们在jmeter中看到响应的值如图,无法直接断言

clipboard

分析:这是一种转码,浏览器可以解析,我们只需要做html的转码即可,我们查资料知道 unescapeHtml这个函数可用

解决方案:

1、在jmeter的测试计划下引入包commons-lang.jar

获取地址:https://yunpan.cn/cvmXJuFtUu4vK  访问密码 771a

clipboard[1]

2、在【用户参数】,或者csv中添加我们预期的断言的值,我们这里为了方便在【用户参数】中添加如图

clipboard[2]

3、在请求中添加beanshell,如图:

import org.apache.commons.lang.StringEscapeUtils;  

//String htmltest = "国家级2次&#x3b;校级4次&#x3b;";

//控制台上打印

//System.out.println("htmltest:"+StringEscapeUtils.unescapeHtml(htmltest)); 

//获取响应结果

String myResult=prev.getResponseDataAsString();

//做html转码处理

String myResult2=StringEscapeUtils.unescapeHtml(myResult);

//将结果保存在变量【myResult3】中

vars.put("myResult3",myResult2);

clipboard[3]

4、添加响应断言,通过jmeter 变量来断言,如图:

clipboard[4]

5、运行,查看断言结果,成功解决问题

clipboard[5]

好了,本次到此,欢迎留言、点赞、转发等来交流,更多分享下期再会,给你带来更多价值,是我们期待的方向,有更多兴趣的欢迎切磋,我们微信订阅号,联系方式如下:

clipboard[6]

推荐阅读