Httpwatch工具结合进行测试

概述

  Httpwatch是一款强大的网页数据分析工具,安装后集成在IEFirefox工具栏中。它可以在不改变浏览器和网络设置的基础上捕捉HttpHttps数据。查看底层的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请求)

后面我们会通过实例来进一步说明该类的方法和属性。

 

通过把WatinHttpwatch结合进行自动化测试,可以很大程度的扩展自动化测试的范围,比如在自动化测试过程中验证链接的连通性,网页传输的速率和时间,查看网页的详细信息等等。


使用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);//输出网页的标题

}

 

WatinHttpwatch结合

 我们依然以访问百度网站为例,并进行查询操作.最后输出访问过程中HTTP请求各个资源的时间和状态。我们可以加入判断,判断哪些请求的状态有异常,哪些请求的时间过长。(请使用IE6,IE7好像有些问题)具体代码如下:

 

 using System.Collections.Generic;
using System.Linq;
using System.Text;
using WatiN.Core;

namespace ConsoleApplication1
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            //新建IE实例
            IE ie = new IE();
            //建立Httpwatch控制类
            HttpWatch.Controller controller = new HttpWatch.Controller();
            //将ie实例附加到Httpwatch接口,从而使Watin和httpwatch与同一IE建立关联
            HttpWatch.Plugin plugin = controller.IE.Attach((SHDocVw.IWebBrowser2)ie.InternetExplorer);
            //Httpwatch开始记录
            plugin.Clear();
            plugin.Record();
            //导航到百度
            ie.GoTo("www.baidu.com");
            //搜索“watin”
            ie.TextField(Find.ById("kw")).TypeText("Watin");
            ie.Button(Find.ById("su")).Click();
            //停止httpwatch记录
            plugin.Stop();
            //创建Log实例
            HttpWatch.Log log = plugin.Log;
            //输出请求异常的url
            Console.WriteLine("请求异常的地址:");
            foreach (HttpWatch.Page page in log.Pages)
            {
               
                Console.WriteLine("------------"+page.Title+"--------------");
                foreach (HttpWatch.Entry entry in page.Entries)
                {
                    if (entry.Result != "200" & entry.Result != "(Cache)")
                    {
                        Console.WriteLine(entry.URL + " : " + entry.Result);
                    }
                }
               
            }
            Console.WriteLine("\r\n\r\n");
            //输出请求超过0.1s的url
            Console.WriteLine("请求超过0.1s的地址:");
            foreach (HttpWatch.Page page in log.Pages)
            {
               
                Console.WriteLine("------------" + page.Title + "--------------");
                foreach (HttpWatch.Entry entry in page.Entries)
                {
                    if (entry.Time > 0.1)
                    {
                        Console.WriteLine(entry.URL + " : " + entry.Time + "s");
                    }
                }
            }

            Console.ReadLine();
        }
    }
}

结果显示如下:

 

结束语

 我在本篇文章中只是列举了httpwatch的一些简单应用,有对http信息分析有更深入需求的可以参考HttpWatch Automation Reference,进一步了解httpwatch的自动化对象。

 

资源及资源

1.      Httpwatch官网

2.      Using HttpWatch with WatiN

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值