发布新日志

  • [转]Web测试常用辅助测试工具介绍

    2008-10-15 19:34:20

    问:网站安全性测试(Penetration Test,攻击试验)主要使用什么工具来模拟啊?

    答:SAINT(Security Administrator'sIntegrated Network Tool)
    只知道是一个很经典的安全测试工具,但网海茫茫,我至今没有找到它的踪迹!
    http://www.saintcorporation.com/index.html 这是官网

    63个国外优秀测试网站地址:http://bbs.51testing.com/thread-126183-1-1.html

    31个免费在先测试工具:http://bbs.51testing.com/thread-127934-1-1.html

    31个用来测试你网站各项性能的免费在线工具

    你是否肯定你的网站完全兼容各大浏览器?是否知道多少秒可以打开你的网站? 是否可以自信地说你的网站根本就没有打不开的时候? 是否……
    虽然它看似不重要,但这些在一定程度上也对你的网站的访问量产生了影响 ( 其它一部分影响浏览量的原因及解决办法 )。这里列出了一份 31 个我最喜爱的免费在线测试工具,你可以通过这些工具来测试你的网站,并根据结果对你的网站进行修改。
        网站代码验证没人可以细致到保证自己的网站代码都是正确的,你可以通过以下测试来验证网站代码是否正确。
    1 . WDG HTML Validator
    一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。(强烈推荐)

    2 . W3C Markup Validation Service
    对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一个(也是使用者最多的)的 HTML 验证工具。

    3 . W3C CSS Validation Service
    用于验证 css 源代码,能够标注出不好的 css 代码设计。例如:“Same colors for color and background-color in two contexts”。

    4 . RUWF XML Syntax Checker
    用于查找 XML 文件的错误。

    5 . W3C Feed Validation Service
    用于查找 Atom 和 RSS feed 中的错误语法。(这个我经常用到)


    6 . W3C Link Checker
    用于搜寻查明你网站内的所有链接里是否有断链。(强烈推荐)

    7 . Juicy Studio Link Analyser
    测试网站内的链接的 URL 是否存在死链,与 W3C Link Checker 很类似。网站的使用性我们常常看到网站设计者把重点放在怎网站的吸引力上,而完全不考虑会不会影响来访者的使用,一个浏览难度很大的网页是注定要失败,要让你的来访者方便的得到他要的信息(从而成为重复访客),你的网站应当遵循 WCAG section 508 易用性规则。

    8 . Watchfire WebXACT
    所有严谨的设计师和开发者都必须使用的工具,它会生成一个非常详尽的报告书,包括:网站质量,易用性和隐私等。(强烈推荐)

    9 . ATRC Web Accessibility Checker
    测试网站的 WCAG 2.0 Level2 兼容性,它会生成一份报告,提出一系列建议,如:如何提升页头,链接,数据,图表和文字的访问速度。

    10 . WAVE 3.0 Web Accessibility Tool
    高度可定制的工具,它采用了图形化模型展示网站兼容性问题( WCAG 1.0 and section 508 )。(强烈推荐)

    11 . TAW Web Accessibility
    Test测试网页是否存在冲突( WCAG 1.0 兼容性 ),通过图形模式生成一份依据 wcag 优先模式为基础的网站修改建议。

    12 . HiSoftware CynthiaSays portal
    采用了非常严格的规则来测试网页( 根据 section 508 和 WCAG 1.0 规则 ),生成的报告也极为详细( 详细到很难看懂 )。

    13 . HERA Accessibility testing with Style
    使用一种极为复杂但容易理解方式指出网页的 wcag1.0 兼容性问题。

    14 . Juicy Studio CSS Analyser
    进行了色彩对比测试,以确保你的网站的色调会符合 WCAG 1.0 的要求。

    15 . Juiciy Studio Readability Test
    分析你网站上的文字是否有语法错误或拼写错误等问题,容易让人理解不( 根据 the Flesch Reading Ease 和 Flesch-Kincaid grade level algorithms 规则 )。( 适合英文网站使用 )网站的速度打开你的网站的速度快慢,是来访者会不会再次访问网站的关键因素,在一般情况下,一个网络不是很快的来访者是不愿意访问一个充满着图片、flash 动画、多媒体文件的网站。为了使你的网站覆盖人群的范围最大化,你必须优化你的网站,使它的打开速度尽可能的快。

    16 . Web Page Analyzer from Website Optimization
    一个很好的工具,它在分析完一个网页后,会为减少加载时间提出优化建议,着重优化物体的数目,图片和网站的总体大小。(强烈推荐)

    17 . WebSitePulse Test Tools
    有一系列的工具来确定网站的加载速度和主机信息。

    18 . Internet Supervision Url Check
    从世界各地不同的服务器来测试你的网站的加载时间,用于确定是不是各地的来访者都能顺利快速的打开你得网站。
    浏览器模拟工具这是一个普遍的问题,因为现在有着很多的操作系统和浏览器,你得网站必须得兼容它们,但这绝不是一件容易的事。通过下列工具,你可以了解你得网站在各种浏览器上的显示效果。

    19 . Browsershots
    能给出你的网站在不同浏览器下显示效果的截图,包括:Firefox 和 Internet Explorer ( Windows )、Firefox 和 Safari ( Mac OS X )、Iceweasal 和 Konqueror ( Linux ),但是结果要在 1 - 3 小时后才能出来。

    20 . IE NetRenderer
    实时生成你的网站在 Internet Explorer 5.5 、6.0 和 7.0 下的截图。

    21 . MobiReady Report
    分析使用手机访问网页的兼容性问题,会生成一份详细的报告,并提供了在两种不同类型的手机浏览器上你得网站可能显示的样子。
    搜索引擎优化 (SEO) 一个网站,如果对搜索引擎有着比较好的友好度,一定会比较有竞争力。

    22 . UrlTrends
    会显示网站的访客是如何通过搜索引擎来到你的网站,还有各个流量是多少。这些数据是包括 Google, Yahoo, MSN, Alexa, AlltheWeb, AltaVista 和其他一些网站。( 强烈推荐 )

    23 . iWEBTOOL Backlink Checker
    一个很好的工具,它能找出有什么站点链接到你的站点,那些站点是什么类型的站点。

    24 . iWEBTOOL Multi-Rank Checker
    显示你网站的 Alexa 和 Google PageRank 数值。

    25 . Microsoft adCenter Labs: Advertising and Keyword Research Tools
    一个极好的工具,用于分析和预测你网站的来访者和市场。( 强烈推荐 )

    26 . Domain Tools Whois lookup
    一个 WHOIS 网络工具。

    27 . SEO-Browser
    可以让你看到在搜索引擎眼里一样的网站( 去掉所有的”美丽”配件 )。

    28 . SEO Workers SEO Analysis Tool
    非常有用的工具,分析了网站上的各种分类特征,包括 meta 标签、关键字密度及加载时间。( 强烈推荐 )

    29 . Seekport Seekbot
    可以分析网站的数据和内容,以得出搜索引擎会如何有效的解释分析的网站。

    30 . SEO Chat SEO Tools
    用以分析网站 Google adsense 盈利潜力,关键字密度,Meta tag 等等……

    31 . Marketleap Search Engine Marketing Tools
    用来分析网页,让你知道你的网站检索、设定的关键字好不好。
     
     
     
  • [转]解决自动测试中验证码问题的非技术方法

    2008-09-02 19:13:29

    例如ASP下用xbm技术生成的图片,就可以很容易地通过算法来识别;在PHPdotNET等平台上完全使用图形库函数生成的图片,同样可以通过对某个区域内的图片分析,识别出图片对应的实际数字或是字母。

            下面以处理xbm格式的验证码为例,介绍对其进行识别的算法。

            本文的2.1节对xbm文件格式进行了深入的探讨,用xbm实现验证码的方法在ASPdotNET平台上非常常见,由于xbm文件格式的规则性,因此很容易通过程序对其进行识别。一般的识别过程如下:

    • <!--[if !supportLists]-->多次访问带有验证码的页面,分析每次获得的xbm文件和显示的图片之间的对应关系,获得验证码中所有符号对应的十六进制串;
    • <!--[if !supportLists]-->编写识别验证码的代码,识别代码根据获得的xbm文件,将其按照编码方式分组,然后与上一步骤中获得的对应的十六进制串进行比较,这样就可以识别出该xbm文件对应的验证码的实际数据。

            下面这段代码是用于将xbm图片文件识别为相应的验证码内容的C语言代码:

    int?getDigital(char?dig[10])

    {
     const?char?orgdig[10][10]?=?{ 
    {0x3c,0x66,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0x66,0x7e},?//0 
    {0x18,0x1c,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00},?//1 
    {0x3c,0x66,0x60,0x60,0x30,0x18,0x0c,0x06,0x06,0x7e},?//2 
    {0x3c,0x66,0xc0,0x60,0x1c,0x60,0xc0,0xc0,0x66,0x38},?//3
    {0x38,0x3c,0x36,0x33,0x33,0x33,0xff,0x30,0x30,0xfe},??//4
    {0xfe,0xfe,0x06,0x06,0x3e,0x60,0xc0,0xc3,0x66,0x3c},??//5 
    {0x60,0x30,0x18,0x0c,0x3e,0x63,0xc3,0xc3,0x66,0x3c},?//6 
    {0xff,0xc0,0x60,0x30,0x18,0x18,0x18,0x18,0x18,0x18},??//7
    {0x3c,0x66,0xc3,0x66,0x3c,0x66,0xc3,0xc3,0x66,0x3c},?//8 
    {0x3c,0x66,0xc3,0xc3,0x66,0x3c,0x18,0x0c,0x06,0x03}??//9 
    }; 

    int?i=0,?j=0; 
    int?ret?=?1; 

    for(i=0;?i <10;?i++)
     { 
    ret?=?1; 
    for(j=0;?j <10;?j++)
     { 
    if(orgdig[i][j]!=?dig[j]) 

    ret?=?0; 
    break; 


    if(ret)
    return?i; 
    }
    return?-1;
    }

    主函数:

    char?picc[500],?t[40],?od[10];
    char?separators[]?=?",";
    char?*token,?*endstr;

    int?i=0,?j=0;

    //获取需要识别的图片中的数据描述部分,内容为
    //0x3c,?0x3c,?0x18,?0x3c,?0x66?…
    //将其存放在字符串picc中
    …………

    //分解获得的串

    token?=?(char?*)strtok(picc,?separators);?/*?Get?the?first?token?*/
    if(!token)
    {
     return(?-1?);
    }

    while(?token?!=?NULL?)
    {
    if(!strcmp(token?,? ""))//处理为“空”的内容,将其替换成0x00
    t[i]?=?0x00;
    else
    t[i]?=?strtol(token,? &endstr,?16);
     i++;
    token?=?(char?*)strtok(NULL,?separators);
    }

    for(i=0;?i<4;?i++)//一共4个数字,分别调用getDigital函数进行处理
    {
    for(j=0;?j <10;?j++)
    {
    od[j]?=?t[j*4+i]; 

    lr_output_message( "%d",?getDigital(od));
    }

            其他通过服务器代码绘图方式实现的识别码识别相对麻烦一些,但原理上都差不多,无非是将获取到的图片进行分析,通过识别方法判断其对应的符号。

    <!--[if !supportLists]-->1.2<!--[endif]-->服务端插入法

            如果可以控制和修改服务端代码,就可以使用服务端插入法。该方法在服务端提供一个可被客户端使用的接口,只要客户端传递过来自己的SessionID,该接口就返回此时正确的Session,这种方法就可以很容易地让自动测试工具直接获取到正确的应该提交的验证码内容。从测试的角度来说,这种方法就等于是在系统上增加了一个测试接口,从而提高了系统的可测试性。

            服务端插入法的实现并不复杂,在任何一个平台上都能很容易实现,在此就不再赘述了。服务端插入法可以针对任何类型的应用使用,但这种方法也有明显的不足:

            <!--[if !supportLists]-->1、<!--[endif]-->如果是已经上线的应用,网站不太可能会允许保留一个这样的接口,因此,该方法一般用于还未上线的WEB系统,如果要在已上线的WEB系统上使用该方法,则必须通过管理上的方法提高该方面的安全性;

            <!--[if !supportLists]-->2、 <!--[endif]-->采用这种方法,在性能测试时,由于该方法需要额外请求一次才能获得实际的验证码,相对于实际的用户操作来说,访问带有验证码页面的请求会多一次,因此在获得的测试结果上会有些许的差异。

    <!--[if !supportLists]-->1.3 <!--[endif]-->解决自动测试中验证码问题的非技术方法

            其实,测试并不只是单单的技术问题,除了上面给出的识别法和服务端插入法,其实,通过非技术的方式也能让自动化测试在具有验证码的系统上成功应用。当然,这些非技术方法应用的前提是,测试团队必须具有足够的能力和机会影响系统的实现。如果完全没有方法接触到服务端代码或是完全不能修改服务端代码,以下的方法就都不能应用了。

            下面,让我们跳出技术的范围,换个角度来看看如何解决验证码的问题:

            <!--[if !supportLists]-->1、 <!--[endif]-->屏蔽法

            屏蔽法是最容易想到的一种方法,方法的核心就是:在被测系统中暂时屏蔽验证功能。这种方法最容易实现,对测试结果也不会有太大的影响(当然,这种方式去掉了“验证验证码”这个环节,如果该环节本身存在功能上的问题,或是本身就是性能的瓶颈,那就一定会对测试结果造成影响了)。但这种方法也有一个问题:如果被测系统是一个实际已上线的系统,屏蔽验证功能会对已经在运行的业务造成非常大的安全性的风险,因此,对于已上线的系统来说,用这种方式就不合适了。

            <!--[if !supportLists]-->2、 <!--[endif]-->后门法

            后门法不屏蔽验证码,但在其中留一个后门,在代码中设定一个所谓的“万能验证码”,只要用户输入这个“万能验证码”,就能通过验证,否则,还是按照正常的验证方式进行验证。这种方式仍然存在安全性的问题,但由于我们可以通过管理手段将“万能验证码”控制在一个小的范围内,而且只在测试期间保留这个小小的后门,相对第一种方法来说,在安全性方面有了较大的提高。

    <!--[if !supportLists]-->1.4 <!--[endif]-->各种方法的比较

            本文提供了多种用于解决具有验证码的WEB系统在自动测试时遇到问题的方法,这些方法既包含技术性的方法,也包含非技术性的方法。但由于每种方法的出发点不同,因此这些方法也就具有各自不同的优缺点和适用场合。本节我们对本文提到的各种方法进行比较,分别给出其优缺点和适用的场合。

    <!--[if !supportLists]-->2 <!--[endif]-->小结

            针对WEB系统的验证码对自动化测试带来的挑战,本文详细分析了WEB验证码常见的实现方法,并根据分析提出了几种不同的解决方案:识别法、服务端插入法、屏蔽法和后门法。这几种方法各有其优缺点和适用场合,因此本文也给出了这几种方法之间的对比,并给出了各种方法的应用建议。

            当然,本文的重点是介绍解决WEB系统的验证码对自动化测试带来问题的方法,在实际的自动化测试过程中,除了需要了解本文所介绍的方法外,还需要了解相应的自动化测试工具的具体应用方法,虽然不同的测试工具在提供的功能上大同小异,但在具体的使用层面上,不同的工具还是有较大差异性的,请读者自行查阅相应的测试工具文档,从工具的文档中获取相应信息。

我的栏目

数据统计

  • 访问量: 1380
  • 日志数: 3
  • 建立时间: 2008-09-02
  • 更新时间: 2008-10-15

RSS订阅

Open Toolbar