logo
 
 
|
|
|
|
|
|
|
|
 
 
您的位置:首页 - 专业知识
Spider概念在测试中的应用
[2011-03-22]
Spider,其实就是抓取网页的爬虫,大部分搜索引擎都会使用Spider来做数据源的收集。这真是一个很好的设计,那么好的设计我们是不是也能拿来在测试中使用一下呢

Spider,其实就是抓取网页的爬虫,大部分搜索引擎都会使用Spider来做数据源的收集。这真是一个很好的设计,那么好的设计我们是不是也能拿来在测试中使用一下呢。

  其实,目前还是有很多检查链接有效性的工具,诸如LinkBot等都是采用了Spider的概念来达到测试的目的的。

  那么我们就将这个思想再扩展一下。在互联网网的应用中,页面的数量一向是超级繁多的,我们在平时的测试中也很难做到各个页面都去检查,特别是一些小逻辑或 UI的改动,我们一般是利用等价类的方法论来做一些抽样的测试,但是这样的测试其实是不充分的,碍于成本和产出的失比,我们不会去测试过多的等价类。

  但是利用Spider的概念就可以很好的解决这种GET的问题了(当然POST的测试解决起来比较困难,还是建议采用“半自动化”),而且Spider可以进行多种行为控制,也是一种很灵活的应用。对于结果的分析,最简单的无非对于HTTP.STATUS的检查,那样很容易发现一些由于数据或者配置造成的异常。如果更进阶一步,可以Parse Spider获取到的Stream以精确地检查结果。

  首先,我们要统一一个概念,被测试的页面是由HTML、CSS和JS所组成的。而Spider的应用,是可以用来快速的进行HTML的检查和遍历,但是对于CSS和JS就有其局限性了。

  通过Spider其实很容易的获取到了所需要测试的页面的HTML,然后采用正则表达式的方式去获取所需的页面对象。因为HTML是标准的标签格式的,所以,获取起来也是比较方便的,然后根据标签的属性,比如ID,Class可以对对象进行区分,这就有些类似于一般的自动化测试对象,对GUI的SPY了。既然有了对象,然后对对象的内容或属性进行检查也是很方便的。

  这样做的好处是将HTML整个作为文本来处理,操作简单。

  以下是C#的示例,以获取页面上所有的链接对象:

     //获取页面HTML并保存到Page

     Regex regex = new Regex("<a[^>]+>");
     MatchCollection mc = regex.Matches(page);
   
     //mc中包含了结果对象,可以分别进行处理

  利用同样的方式,我们还可以获取页面上Div、Button、Text的对象,并且对其内容进行进一步的检查

  有人会说,看上去和QTP,Selenium等有异曲同工之处,而且,似乎要去搭建这样一个Framework还是比较麻烦的,为什么要这么做呢。其实这里有一个很大的优点是其他自动化工具不能做到的,即Spider可以多线程进行工作。我们是不是经常会碰到QTP,Selenium工作时,占用了当前进程,以致我们只能等待,并且一旦测试的内容海量,我们还得等很长的时间呢?Spider多线程的优势就在这里了。

上一篇:dogtail在GUI方面的测试
下一篇:用五个安全测试步骤来保护应用程序
   
软件测试工程师成为就业新主力 软件测试工程师成为就业新主力
北大青鸟中博:软件测试工程师就业前景好 北大青鸟中博:软件测试工程师就业前景好
北大青鸟:行业发展急需软件测试人才 北大青鸟:行业发展急需软件测试人才
学习软件测试的感想 学习软件测试的感想
软件测试点亮了我人生的烛光 软件测试点亮了我人生的烛光
 

在线报名

  • 姓       名:*
  • 高考成绩:*
  • 电       话:*
  • 地       址:*
 
课程咨询
 

 
中博教育客服在线
 
©南京北大青鸟 隐私政策
学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证