缺乏CR - TCP采样器

时间:2013-08-04 14:55:45

标签: imap jmeter jmeter-plugins

我正在尝试使用TCP Sampler在IMAP4之上创建自动测试 我没有使用Mail Reader Sampler,因为我需要允许注入纯IMAP4命令。 我的IMAP4服务器(与任何IMAP4服务器一样)希望通过CRLF(0D0A)接收任何IMAP4命令结束,所以我已经在Text to send区域中以新行(Enter)结束了我的命令。

我嗅到了流量,注意到JMeter在命令后只添加了LF(0A)(没有回车)

这里有什么我想念的吗? 如何强制JMeter TCP采样器在每个TCP命令结束时添加CRLF?

2 个答案:

答案 0 :(得分:2)

使用XML-escaped解决了问题! http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

在基于XML的JMX文件中,我明确地附加了0xD字符:

1 login 972557557566@is433.email.com a123456A

答案 1 :(得分:-1)

虽然我无法使用EOL修复工具,也没有使用XML方法,但我确实找到了以下帖子,它提供了另一种解决方案:http://community.blazemeter.com/knowledgebase/articles/268778-how-to-send-control-characters-using-the-jmeter-tc。一般的想法是做以下事情:

  1. 创建名为' new_line'的用户定义变量和' carriage_return'。
  2. 将这些用户定义的变量分别设置为%0A和%0D。
  3. 在tcp采样器之前,创建一个BeanShell预处理器。
  4. 在BeanShell预处理器中,覆盖变量值,如下所示:

    vars.put(" new_line_char",URLDecoder.decode(vars.get(" new_line_char")," ASCII")); vars.put(" carriage_return_char",URLDecoder.decode(vars.get(" carriage_return_char")," ASCII"));

  5. 在您的TCP采样器中,在行尾添加新变量

    要发送到某个地方的一些数据$ {carriage_return_char} $ {new_line_char}