Jmeter压测DNS


背景

很多场景下,Jmeter都是用作HTTP服务的压测工具。其实,得益于插件,jmeter还有很多其他的功能。其中一条就是用来发送UDP消息,UDP是一种轻量级的网络协议,它的性能一般会很高。

最常用的UDP消息,估计就是dns请求了。DNS服务器的作用是将域名解析成ip地址。

DNS性能指标

插件的作者认为,dns服务器有两个指标比较重要:响应时间和失败率。UDP消息是无状态的,有可能会在网络传输中丢失。如果发生丢失,那么客户端就会一直等待,直到超时;然后还可能会重试。

Jmeter创建dns请求

  1. 打开jmeter这款软件,添加线程组,添加“查看结果数”方便查看结果。
  2. 在线程组中添加一个UDP Request
  3. 第一种,通过Wireshark工具获取,此时Encode/Decode Class设置如下:
    kg.apc.jmeter.samplers.HexStringUDPDecoder
    1. 使用wireshark或者其他抓包工具,抓取dns网络包,这里用wireshark。如何发出一个dns请求包?在shell或者cmd中执行nslookup www.baidu.com即可。wireshark抓取到的包如下:wireshark抓dns包
    2. 右击”Domain Name System(query)”,然后选择”Copy => Byptes(Hex Stream)”, 然后把复制到的数据粘贴到jmeter UDP Request的body中,当然还需要在UDP Request中配置dns服务器的ip和端口(端口默认是53)。最终的请求如下:udp request
  4. 第二种,通过指定解析DNS的域名和记录类型,此时Encode/Decode Class设置如下:kg.apc.jmeter.samplers.DNSJavaDecoder
  5. 在jmeter UDP Request的request data中按照如下格式填写信息

    www.baidu.com. A IN
  6. 完成如下:

     

  7. 保存,运行即可。剩下的性能监控,指标之类的跟普通http请求类似。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM