专注于自动化测试,性能测试.......

Watin系列之六 Watin与Httpwatch工具结合进行测试

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

概述

&LJ wtxq0

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

51Testing软件测试网})F7VV[9R-J:K

h2MW6S WSBL0

6[z6s7G6R8]0

Httpwatch自动化对象介绍51Testing软件测试网F\$cJI)V&D!A

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

i@^S5xP/I0

51Testing软件测试网3|1z4Q[#s mh#B)P

51Testing软件测试网ly*otM8p.J8b.l7[)c+z

Controller

TC:X+Er1H0

 Controller类总是控制的起点,它用于创建Httpwatch插件接口或者读取log文件,通过IE属性和Firefox属性的new()方法或者Attch()方法返回Plugin实例对象

u1Ri#u r!a@0

Plugin51Testing软件测试网 sI"q*^#Z C9]

 Plugin类是Httpwatch与浏览器交互的接口。它提供了方法用于开始和停止http流量的记录。还有很多方法和属性用于管理Httpwatch的日志文件和配置自动化记录。

l \"_ N1^0

Log

v!a^(i4lQI|0

 Plugin对象的Log属性是Log对象的入口。它包含了一系列通过Httpwatch记录的日志。Log对象中具有很多重要的类,比如Pages,Entries类。51Testing软件测试网 NFR*S^{y^

 

Y f,y;_;|1B0

Entry

Z!lCBD0

每个Log对象都包含一组Entry对象,它代表的是单个HTTP事务的详情。(比如http请求)51Testing软件测试网&C0rGJ/a#B1K7B3w

后面我们会通过实例来进一步说明该类的方法和属性。51Testing软件测试网kR&a&Q"q

 

p"X1O.WU0

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

rB ~+n1Ot0

51Testing软件测试网R'`9_+y"^8uY5v&~
使用C#操作Httpwatch

0kZ'{_-c @0

 使用C#操纵httpwatch大致分为以下几个步骤:51Testing软件测试网$^ P4Ik2Xm%HWY

1) 添加HTTPwath自动化类库到你的项目中51Testing软件测试网)_:e6Rsb*w

2) 创建与Httpwatch工具的联系

+A%W(g.rQat9y0

创建新的IE接口

a#b t3v9kV0

'fFgZC,Im0B0

HttpWatch.Controller controller =newHttpWatch.Controller();51Testing软件测试网/`0Dp:T H)v

HttpWatch.Plugin plugin = controller.IE.New();

b7Mns&Xm-{"nj0

@&a*zb+Q'\0

创建新的Firefox接口51Testing软件测试网 ]2H6[Ji*E

t%w s6SOE0

HttpWatch.Controller controller =newHttpWatch.Controller();51Testing软件测试网.?7O\v/Eq7R|

HttpWatch.Plugin plugin = controller.Firefox.New("");51Testing软件测试网H#ZVq*u

51Testing软件测试网"oK @$x~Qe

附加一个已存在的IE窗口

0P&wR.[-| @F {*W u`2N0

c W|Bw2O``;s0

SHDocVw.IWebBrowser2 ieBrowser =newSHDocVw.InternetExplorer();51Testing软件测试网4ZFI,~MGT

ieBrowser.Visible =true;   // Required to see the new window

2D-R zG2ALD*n)V d0

 . . .

,yq0w}%E6Hz0

HttpWatch.Controller controller =newHttpWatch.Controller();

Dc!o4Zp"r0

HttpWatch.Plugin plugin = controller.IE.Attach(ieBrowser);51Testing软件测试网3Q9i2u b5F Znl

51Testing软件测试网/uly)Ui2V\,|M

附加一个已存在的Firefox窗口

F\g3W4E+t051Testing软件测试网(RC|b ? P.W"w+jFC

HttpWatch.Controller controller =newHttpWatch.Controller();

;W6p{f|:{:ev*t1l0

HttpWatch.Plugin plugin = controller.Firefox.Attach("FirefoxProfileName");

z(\aI2ih a;pFk0

 

*r7[|9d["Cc0
51Testing软件测试网,d `w dTd{

3) 通过接口读取HTTP详细信息51Testing软件测试网A+}%gD jiGN ^

51Testing软件测试网0H[.[} C3yb.c

plugin.Log.Save("E:\\baidu.hwl");51Testing软件测试网vi&U BlvP'}6Z

foreach(HttpWatch.Pagepageinplugin.Log.Pages)51Testing软件测试网,M+fO1`/F.\

{51Testing软件测试网EtP[y2CD

Console.WriteLine(page.Title);//输出网页的标题

2~C@%kZC0

}51Testing软件测试网V1p B(`/[hgy

z c%{)IS [3[ e&a]"a0

51Testing软件测试网#P-]3w*||pO

 51Testing软件测试网 udq"HW{}%^

WatinHttpwatch结合51Testing软件测试网l-K;?9lB$\3@ y)m!W

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

 

!c?J V4c#P0

 using System.Collections.Generic;
%E#O0J5ITG0using System.Linq;51Testing软件测试网~"pa0~uk
using System.Text;51Testing软件测试网$G0a*t w.y$Y0@C
using WatiN.Core;
51Testing软件测试网"T L'y)s IN yv(bU

namespace ConsoleApplication151Testing软件测试网 es[,n4b(z
{51Testing软件测试网$aE5^\}5|O
    class Program51Testing软件测试网'a^jA0` x'a2O
    {
7o&R/hqMyT)E0        [STAThread]
O x,?|#k:B!gia0        static void Main(string[] args)
gYh"Z/q8\A,m_]0        {51Testing软件测试网]wUj L5M_R
            //新建IE实例51Testing软件测试网'f z-U|[
            IE ie = new IE();
4AmR ye0            //建立Httpwatch控制类
%{bC9xEW$nB a0            HttpWatch.Controller controller = new HttpWatch.Controller();
m(_:`y}:~g4f0            //将ie实例附加到Httpwatch接口,从而使Watin和httpwatch与同一IE建立关联51Testing软件测试网u$m]/C [kcjw
            HttpWatch.Plugin plugin = controller.IE.Attach((SHDocVw.IWebBrowser2)ie.InternetExplorer);
Rao,my Q4J(h0            //Httpwatch开始记录
O!?\!WI8t[0            plugin.Clear();51Testing软件测试网 QCG4Qab!Y8YuW/X
            plugin.Record();51Testing软件测试网!j'apyg+b
            //导航到百度51Testing软件测试网H&M&e7r a6o/d
            ie.GoTo("www.baidu.com");
C(~%X/S#@i}9I0            //搜索“watin”
VW dRDdA:I0            ie.TextField(Find.ById("kw")).TypeText("Watin");
s8N*?6A;C6YF0            ie.Button(Find.ById("su")).Click();
xZ'o@t&s0            //停止httpwatch记录51Testing软件测试网3IjN:j8cvl
            plugin.Stop();51Testing软件测试网;`.`"q%X ] K+Z"_,f0[
            //创建Log实例
ye f| B0            HttpWatch.Log log = plugin.Log;
FC]AK(A5d/S0            //输出请求异常的url51Testing软件测试网vO1`6e&g/F*l!fKI
            Console.WriteLine("请求异常的地址:");
xm&Ls*SD2f0            foreach (HttpWatch.Page page in log.Pages)
;cFp W+S_%^0            {51Testing软件测试网 }TQgW6@ o,[8Y
               
YHu7kJ"iu3Y0                Console.WriteLine("------------"+page.Title+"--------------");51Testing软件测试网7vktL}.L]/Y
                foreach (HttpWatch.Entry entry in page.Entries)51Testing软件测试网F C:_#U/A j
                {51Testing软件测试网6a7{x-c6_aTW#A$H
                    if (entry.Result != "200" & entry.Result != "(Cache)")51Testing软件测试网 LzJ [$x r(T1C
                    {
2X6?]w7s*jE0                        Console.WriteLine(entry.URL + " : " + entry.Result);51Testing软件测试网|H!`"{H KV/I4_
                    }
q&g*y#U1O5m-iL0                }
zI3x;J-?A6j0               51Testing软件测试网7yKH6\*]3k{+O'GFB)j
            }51Testing软件测试网Fq;`5k/Ch6X ?u']
            Console.WriteLine("\r\n\r\n");
c5wqV#y-e&rO(|#_P+Ln0            //输出请求超过0.1s的url51Testing软件测试网JQQUUM
            Console.WriteLine("请求超过0.1s的地址:");51Testing软件测试网)@_BNP4n)J
            foreach (HttpWatch.Page page in log.Pages)51Testing软件测试网9pxp)P#x'W.u V)E f
            {
4Q%M Z v!r1g0               51Testing软件测试网`}%Q-D!I0Hz8FZ
                Console.WriteLine("------------" + page.Title + "--------------");51Testing软件测试网#N/OzH aA^;Ts
                foreach (HttpWatch.Entry entry in page.Entries)51Testing软件测试网J8U(V*O4V7L3DS
                {51Testing软件测试网:\ Ur ]L9K"fs
                    if (entry.Time > 0.1)51Testing软件测试网-X2u}9f;vP
                    {
g'A5U:x0m!S+{0                        Console.WriteLine(entry.URL + " : " + entry.Time + "s");
:WxR2bB0                    }
*\u @wva0                }
XsT9Ez"jTbrj0            }

[zu-[N5p6o)D0VE0

            Console.ReadLine();
Ld1GCS M;U,T0        }
U6gN2unl#F%c7E0    }51Testing软件测试网Y%z zA b+i']h
}
2te n3e zh$e%R0
51Testing软件测试网7O,_3D'N A7oW3`+M

,O^X~4`O)R4E&v0

结果显示如下:51Testing软件测试网4s2[oG Z\6}

*bto+F-Rcu ts0

 

)r(w,Ax~0

结束语51Testing软件测试网q&Ht8s {a

 我在本篇文章中只是列举了httpwatch的一些简单应用,有对http信息分析有更深入需求的可以参考HttpWatch Automation Reference,进一步了解httpwatch的自动化对象。51Testing软件测试网j7?4nu` |/QcT+p

 

9Va}h?m}"d2o@0

资源及资源

Hs$|3OBs0

1.      Httpwatch官网

c\b6Q,x AB0

2.      Using HttpWatch with WatiN

D@'^,b){w8sz{0

51Testing软件测试网]:t ]$r0L rW


TAG: Watin WatiN

 

评分:0

我来说两句

wxf_xsfy

wxf_xsfy

自动化测试的拥簇者,善于自动化测试的框架和工具开发,TIB工作室核心成员

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 381474
  • 日志数: 79
  • 图片数: 1
  • 文件数: 1
  • 书签数: 3
  • 建立时间: 2007-09-19
  • 更新时间: 2018-01-30

RSS订阅

Open Toolbar