Watin与Httpwatch工具结合进行测试
上一篇 / 下一篇 2010-09-14
23:41:01 / 天气: 阴雨 / 心情: 郁闷 / 个人分类:WatiN
概述
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;
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("");
//搜索“watin”
ie.TextField(Find.ById("kw")).TypeText("Watin");
ie.Button(Find.ById("su")).Click();
//停止httpwatch记录
plugin.Stop();
//创建Log实例
HttpWatch.Log log = plugin.Log;
//输出请求异常的url
|