概述
Httpwatch是一款强大的网页数据分析工具,安装后集成在IE和Firefox工具栏中。它可以在不改变浏览器和网络设置的基础上捕捉Http和Https数据。查看底层的HTTP数据,包括headers,cookies,cache等等,同时统计发送接收请求的时间,并提供完备的日志记录系统。同时该款工具具有完备的COM接口,用于给用户通过编程的方式操纵httpwatch。
Httpwatch自动化对象介绍
Httpwatch自动化对象的结构如下:
Controller类
Controller类总是控制的起点,它用于创建Httpwatch插件接口或者读取log文件,通过IE属性和Firefox属性的new()方法或者Attch()方法返回Plugin实例对象
Plugin类
Plugin类是Httpwatch与浏览器交互的接口。它提供了方法用于开始和停止http流量的记录。还有很多方法和属性用于管理Httpwatch的日志文件和配置自动化记录。
Log类
Plugin对象的Log属性是Log对象的入口。它包含了一系列通过Httpwatch记录的日志。Log对象中具有很多重要的类,比如Pages,Entries类。
Entry类
每个Log对象都包含一组Entry对象,它代表的是单个HTTP事务的详情。(比如http请求)
后面我们会通过实例来进一步说明该类的方法和属性。
通过把Watin和Httpwatch结合进行自动化测试,可以很大程度的扩展自动化测试的范围,比如在自动化测试过程中验证链接的连通性,网页传输的速率和时间,查看网页的详细信息等等。
使用C#操作Httpwatch
使用C#操纵httpwatch大致分为以下几个步骤:
1) 添加HTTPwath自动化类库到你的项目中
2) 创建与Httpwatch工具的联系
创建新的IE接口
HttpWatch.Controller controller =newHttpWatch.Controller(); HttpWatch.Plugin plugin = controller.IE.New(); |
创建新的Firefox接口
HttpWatch.Controller controller =newHttpWatch.Controller(); HttpWatch.Plugin plugin = controller.Firefox.New(""); |
附加一个已存在的IE窗口
SHDocVw.IWebBrowser2 ieBrowser =newSHDocVw.InternetExplorer(); ieBrowser.Visible =true; // Required to see the new window . . . HttpWatch.Controller controller =newHttpWatch.Controller(); HttpWatch.Plugin plugin = controller.IE.Attach(ieBrowser); |
附加一个已存在的Firefox窗口
HttpWatch.Controller controller =newHttpWatch.Controller(); HttpWatch.Plugin plugin = controller.Firefox.Attach("FirefoxProfileName");
|
3) 通过接口读取HTTP详细信息
plugin.Log.Save("E:\\baidu.hwl"); foreach(HttpWatch.Pagepageinplugin.Log.Pages) { Console.WriteLine(page.Title);//输出网页的标题 } |
Watin与Httpwatch结合
我们依然以访问百度网站为例,并进行查询操作.最后输出访问过程中HTTP请求各个资源的时间和状态。我们可以加入判断,判断哪些请求的状态有异常,哪些请求的时间过长。(请使用IE6,IE7好像有些问题)具体代码如下:
using System.Collections.Generic; namespace ConsoleApplication1 Console.ReadLine(); |
结果显示如下:
结束语
我在本篇文章中只是列举了httpwatch的一些简单应用,有对http信息分析有更深入需求的可以参考HttpWatch Automation Reference,进一步了解httpwatch的自动化对象。
资源及资源
1. Httpwatch官网