上下求索

loadrunner 在DNS接口测试中的应用

上一篇 / 下一篇  2009-06-24 15:16:38

最近被老大派去支持运维团队的DNS智能解析项目测试DNS策略解析最基本的功能是可以智能的判断访问您网站的用户,然后根据不同的访问者把您的域名分别解析成不同的IP地址。如访问者是网通用户,DNS策略解析服务器会把你的域名对应的网通IP地址解析给这个访问者。如果用户是电信用户,DNS策略解析服务器会把您域名对应的电信IP地址解析给这个访问者。

由于公司的客户量较大,而且做为整套服务的首个环节,该项目的性能承受能力测试非常重要,该项目基本是使用了通用的bind9开源组件+mysql数据库实现,并定制了数据监控功能,有协议的地方就有Loadrunner,在LR去选取DNS协议,切换到代码模式,马上便可以看到下面这段代码。

Action()
{
 char *results = NULL;
 int   rescnt  = 0;

 lr_save_string("172.16.10.98","DnsServer"); // Set DNS server IP Address
 lr_save_string(
www.moviesailor.com, "Hostname"); // Set hostname to resolve

 // Perform. DNS Query
 results = (char *) ms_dns_query("DnsQuery","URL=dns://{DnsServer}","QueryHost={Hostname}",
  LAST);

 // List all the results... (if more than one)
 while (*results) {
  rescnt++;
  lr_log_message(
  lr_eval_string("(%d) IP address for {Hostname} is %s"),rescnt, results);
  results = (char *) ms_dns_nextresult(results);
 }
 return 0;
}

在DnsServer中填入我们部署的DNS服务器地址,HOSTname中输入域名,输出的messqge信息中即可看到DNS服务器解析出的域名对应IP地址:

Action.c(23): Querying host information for 'www.mo-sky.com.cn' from 172.16.10.98...
Action.c(23): 通知: Transaction "DnsQuery" started.
Action.c(23): Hostwww.moviesailor.com
resolved to 192.168.2.1 (w/ TTL=60 secs).
Action.c(23): 通知: Transaction "DnsQuery" ended with "Pass" status (Duration: 0.0201).
(1) IP address forwww.moviesailor.com
is 192.168.2.1

该脚本的功能类似于DOS中nslookup的命令,笔者刚拿到项目需求也是想当然地尝试着使用万能协议socket去录制nslookup命令执行,最后以失败告终,最好去查阅了DNS协议信令,才发行DNS是采用UDP方式来实现传输,在此再次号召大家熟读TCP/IP协议详解三卷本。


TAG: LoadRunner loadrunner

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 126815
  • 日志数: 65
  • 建立时间: 2009-06-24
  • 更新时间: 2013-11-01

RSS订阅

Open Toolbar