上下求索
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.comresolved 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.comis 192.168.2.1
该脚本的功能类似于DOS中nslookup的命令,笔者刚拿到项目需求也是想当然地尝试着使用万能协议socket去录制nslookup命令执行,最后以失败告终,最好去查阅了DNS协议信令,才发行DNS是采用UDP方式来实现传输,在此再次号召大家熟读TCP/IP协议详解三卷本。
收藏
举报
TAG:
LoadRunner
loadrunner