不知道用过Jmeter的童鞋有没有发现,如果想在Jmeter里面通过http请求发送emoji表情符号如😄(下图),是没法做的。原因是目前Jmeter还不能支持在界面上输入emoji,自然就没法发送了。
但是如果在测试任务中需要发送emoji该怎么办呢?办法还是有的,现在就说两种方法:
- 这种方法比较简单,就是直接修改jmx文件。找到jmx文件中需要发送emoji表情符的地方,然后插入表情符就好了。但是这种方法在Jmeter的UI端显示还是会是乱码,但是是管用的。
- 这种方法需要改下Jmeter的源码,自我感觉挺有意思。话不多说,直接上步骤:
a. 搭建可以查看并编译Jmeter源码的环境:
http://www.cnblogs.com/taoSir/p/5144274.html
b. 打开文件: HTTPHC4Impl.java
c. 打开文件后,找到如下两行并进行修改:
将原来的:
StringEntity requestEntity = new StringEntity(postBody.toString(), contentEncoding);
和
StringEntity requestEntity = new StringEntity(entityBodyContent.toString(), charset);
替换为:
StringEntity requestEntity = new StringEntity(postBody.toString().replaceAll("<tangtang_smile>", "😄"), contentEncoding);
和
StringEntity requestEntity = new StringEntity(entityBodyContent.toString().replaceAll("<tangtang_smile>", "😄"), charset);
截图如下:
简单说下:这两个地方其实就是Jmeter内部通过PUT,POST方法发送body data的地方,我们需要做的就是在这里把我们规定的一个特有字符串(<tangtang_smile>)替换成我们需要的表情符。然后在用Jmeter写请求Body的时候用这个特有字符串就好了。
当然,其实还可以通过更灵活的方式去加入这些字符,我这里就先用hardcode的方式了,大家自己做的时候可以根据自己的需求去改变。
d. 编译(如果有Jmeter运行版时用)
接下来要做的就是编译新的ApacheJMeter_http.jar包。
首先右键点击src/protocol/http工程名并选择Export -> java -> JAR file:
打包后替换Jmeter路径下lib/ext/的ApacheJMeter_http.jar,然后再重新打开Jmeter,大功告成!
下面是在Body中让表情生效的写法: