IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    sleetdrop发表于 2010-12-28 13:48:27
    love 0

    做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自带的帮助文档对于各个对象的方法及属性有详细说明。



沪ICP备19023445号-2号
友情链接