让Jmeter支持BodyData发送emoji的2种方法

不知道用过Jmeter的童鞋有没有发现,如果想在Jmeter里面通过http请求发送emoji表情符号如😄(下图),是没法做的。原因是目前Jmeter还不能支持在界面上输入emoji,自然就没法发送了。

Paste_Image.png

但是如果在测试任务中需要发送emoji该怎么办呢?办法还是有的,现在就说两种方法:

  1. 这种方法比较简单,就是直接修改jmx文件。找到jmx文件中需要发送emoji表情符的地方,然后插入表情符就好了。但是这种方法在Jmeter的UI端显示还是会是乱码,但是是管用的。
  2. 这种方法需要改下Jmeter的源码,自我感觉挺有意思。话不多说,直接上步骤:
    a. 搭建可以查看并编译Jmeter源码的环境:
    http://www.cnblogs.com/taoSir/p/5144274.html

b. 打开文件: HTTPHC4Impl.java

Paste_Image.png

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);

截图如下:

Paste_Image.png
Paste_Image.png

简单说下:这两个地方其实就是Jmeter内部通过PUT,POST方法发送body data的地方,我们需要做的就是在这里把我们规定的一个特有字符串(<tangtang_smile>)替换成我们需要的表情符。然后在用Jmeter写请求Body的时候用这个特有字符串就好了。

当然,其实还可以通过更灵活的方式去加入这些字符,我这里就先用hardcode的方式了,大家自己做的时候可以根据自己的需求去改变。

d. 编译(如果有Jmeter运行版时用)
接下来要做的就是编译新的ApacheJMeter_http.jar包。
首先右键点击src/protocol/http工程名并选择Export -> java -> JAR file:

Paste_Image.png

打包后替换Jmeter路径下lib/ext/的ApacheJMeter_http.jar,然后再重新打开Jmeter,大功告成!

下面是在Body中让表情生效的写法:

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,322评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,040评论 6 342
  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 9,630评论 0 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,055评论 25 709
  • 本课程的主要内容 教学方法 考试形式 主要内容第〇、一、二、三、四、五、六、七、八、九、十、十一、数学、力学、热力...
    Mr_woniu阅读 7,270评论 1 22