ITPub博客

首页 > 大数据 > 可视化 > Watin与Httpwatch工具结合进行测试

Watin与Httpwatch工具结合进行测试

可视化 作者:xylsqewll 时间:2013-09-24 17:37:52 0 删除 编辑

 Watin与Httpwatch工具结合进行测试

上一篇 下一篇  2010-09-14 23:41:01 / 天气: 阴雨 / 心情: 郁闷 / 个人分类:WatiN

查看( 514 ) 评论( 0 ) 评分( 0 0 )

概述

  Httpwatch是一款强大的网页数据分析工具,安装后集成在IEFirefox工具栏中。它可以在不改变浏览器和网络设置的基础上捕捉HttpHttps数据。查看底层的HTTP数据,包括headers,cookies,cache等等,同时统计发送接收请求的时间,并提供完备的日志记录系统。同时该款工具具有完备的COM接口,用于给用户通过编程的方式操纵httpwatch

 

 

Watin与Httpwatch工具结合进行测试

Httpwatch自动化对象介绍

 Httpwatch自动化对象的结构如下:

Watin与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(" ");
            //输出请求超过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();
        }
    }
}

 

结果显示如下:

Watin与Httpwatch工具结合进行测试

 

结束语

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

 

资源及资源

1.      Httpwatch官网

2.      Using HttpWatch with WatiN


来源:http://www.51testing.com/html/53/61753-220148.html

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23099827/viewspace-1121867/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-12-30