« 往事 | 首页 | 某年某月某日 晴 »

用Win32::IEAutomation与HttpWatch自动分析页面返回时间

    做web开发,在windows上使用HttpWatch的场景比较多。统计页面返回时间是其中一个,如果是重复性的工作的话。HttpWatch本身提供了Automation的功能。httpwatch提供标准的COM组件,可用多种语言操作。官方安装包里提供了c#/js/ruby/vbs的示例。并且使用ruby的时候可以配合watir自动化测试工具来工作,比较方便。但安装watir未成功,ruby1.8报找不到包的错误,ruby1.9报找不到dll的错误。不熟悉ruby,于是放弃。

    在cpan中找到Win32::Watir但安装出错,又找到相关的Win32::IEAutomation,使用cpan安装成功。 现在ActivePerl也支持cpan安装,第一次使用的时候会自动下载编译器以及dmake。其实像watir以及Win32::IEAutomation都可以看成是语法糖,直接通过COM自行创建IE的实例,再用DOM语法来玩也是一样的,但有了这些工具会方便很多。

    配置完环境后上demo,代码参照HttpWatch自带的js的demo以及Win32::IEAutomation的demo.

#!/usr/bin/perl
use strict;
use warnings;
use Win32::OLE;
use Win32::IEAutomation;

my $control = Win32::OLE->new('HttpWatch.Controller') or die "failed to create httpwatch";
my $ie = Win32::IEAutomation->new( visible => 1, maximize => 1);
my $plugin = $control->Attach($ie->getAgent());
$plugin->Record();
$ie->gotoURL('http://www.baidu.com');
$ie->getTextBox('name:', "wd")->SetValue("大美女");
$ie->getButton('caption:', "百度一下")->Click;
$control->Wait($plugin, -1);
$plugin->Stop();
my $summary = $plugin->Log->Entries->Summary;
print "Total time to load page (secs):      " . $summary->Time . "\n";

    上面这个demo是直接完成了一次百度的搜索。在实际工作中可以模拟登录,发表文章等。统计多次访问的平均值来评估页面速度或其它项目。HttpWatch自带的帮助文档对于各个对象的方法及属性有详细说明。


引用:

本篇引用地址:
http://www.vetcafe.net/cgi-bin/mt3/mt-tb.cgi/2602

评论:

一直在关注9的weblog,今天意外上去了,留个记号

好久不见。

学习了,win32下还是python用的多点。

发表评论

(如果您以前没在这里发表过评论,也许您发表的评论需要Blog主人的审核才能显示在这里,感谢您的静候。)