发布新日志

  • Webdriver配合Tesseract-OCR 自动识别简单的验证码

    2015-11-18 17:15:27

    验证码: 如下,在进行自动化测试,遇到验证码的问题,一般有两种方式 

    1.找开发去掉验证码或者使用万能验证码

    2.使用OCR自动识别


     

    使用OCR自动化识别,一般识别率不是太高,处理一般简单验证码还是没问题

    这里使用的是Tesseract-OCR,下载地址:https://github.com/A9T9/Free-Ocr-Windows-Desktop/releases

    怎么使用呢?

    进入安装后的目录:

    tesseract.exe test.png test -1 


     

    准备一份网页,上面使用该验证码

    复制代码
    <html>
    <head>
    <title>Table test by Young</title>
    </head>
    <body>
     </br>
    <h1> Test </h1>
     <img src="http://csujwc.its.csu.edu.cn/sys/ValidateCode.aspx?t=1">
     </br>
    </body>
    </html>
    复制代码

    要识别验证码,首先得取得验证码,这两款采取对 页面元素部分截图的方式,首先获取整个页面的截图

    然后找到页面元素坐标进行截取

    复制代码
    /**
         * This method for screen shot element
         * 
         * @param driver
         * @param element
         * @param path
         * @throws InterruptedException
         */
        public static void screenShotForElement(WebDriver driver,
                WebElement element, String path) throws InterruptedException {
            File scrFile = ((TakesScreenshot) driver)
                    .getScreenshotAs(OutputType.FILE);
            try {
                Point p = element.getLocation();
                int width = element.getSize().getWidth();
                int height = element.getSize().getHeight();
                Rectangle rect = new Rectangle(width, height);
                BufferedImage img = ImageIO.read(scrFile);
                BufferedImage dest = img.getSubimage(p.getX(), p.getY(),
                        rect.width, rect.height);
                ImageIO.write(dest, "png", scrFile);
                Thread.sleep(1000);
                FileUtils.copyFile(scrFile, new File(path));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    复制代码

    截取完元素,就可以调用Tesseract-OCR生成text

    // use Tesseract to get strings
            Runtime rt = Runtime.getRuntime();
            rt.exec("cmd.exe /C  tesseract.exe D:\\Tesseract-OCR\\test.png  D:\\Tesseract-OCR\\test -1 ");

    接下来通过java读取txt

    复制代码
    /**
         * This method for read TXT file
         * 
         * @param filePath
         */
        public static void readTextFile(String filePath) {
            try {
                String encoding = "GBK";
                File file = new File(filePath);
                if (file.isFile() && file.exists()) { // 判断文件是否存在
                    InputStreamReader read = new InputStreamReader(
                            new FileInputStream(file), encoding);// 考虑到编码格式
                    BufferedReader bufferedReader = new BufferedReader(read);
                    String lineTxt = null;
                    while ((lineTxt = bufferedReader.readLine()) != null) {
                        System.out.println(lineTxt);
                    }
                    read.close();
                } else {
                    System.out.println("找不到指定的文件");
                }
            } catch (Exception e) {
                System.out.println("读取文件内容出错");
                e.printStackTrace();
            }
        }
    复制代码

    整体代码如下:

    View Code
  • Tesseract-OCR引擎简介

    2015-11-18 17:10:34

    http://blog.csdn.net/whatday/article/details/38493551


    1.Tesseract-OCR引擎简介

    OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

    Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。

    数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。



    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了,


    因为如果选择了其他项,安装程序会自动从网上下载,语言库和其他文件,有很大一部分是从google下载,由于不能打开所以会出错,先默认安装上,需要什么文件再下载就行。

    我系统是windows8.1 默认安装好后目录如下:


    其中tesseract.exe是主程序, tessdata目录是存放语言文件 和 配置文件的,下载或自己生成的语言文件放到此目录里就可以了。



    3.Tesseract-OCR的命令行使用

    打开DOS界面,输入tesseract:


    如果出现如上输出,表示安装正常。

    我准备了一张验证码1.png放在D盘根目录下,简单的执行验证码识别


    其中 1.png是验证码图片 result是结果文件的名称 默认是.TXT文件 执行成功后会在验证码图片所在位置生成result.txt 打开结果为:



    命令详解:
    Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
    pagesegmode values are:
    0 = Orientation and script. detection (OSD) only.
    1 = Automatic page segmentation with OSD.
    2 = Automatic page segmentation, but no OSD, or OCR
    3 = Fully automatic page segmentation, but no OSD. (Default)
    4 = Assume a single column of text of variable sizes.
    5 = Assume a single uniform. block of vertically aligned text.
    6 = Assume a single uniform. block of text.
    7 = Treat the image as a single text line.
    8 = Treat the image as a single word.
    9 = Treat the image as a single word in a circle.
    10 = Treat the image as a single character.
    -l lang and/or -psm pagesegmode must occur before anyconfigfile.
  • Tesseract-OCR引擎简介

    2015-11-18 17:10:34

    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了
  • OCR(Optical Character Recognition):光学字符识别

    2015-11-18 17:09:32

    http://blog.csdn.net/whatday/article/details/38493551

    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了
  • OCR(Optical Character Recognition):光学字符识别

    2015-11-18 16:08:35

    http://blog.csdn.net/whatday/article/details/38493551

    1.Tesseract-OCR引擎简介

    OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

    Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。

    数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。



    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了,


    因为如果选择了其他项,安装程序会自动从网上下载,语言库和其他文件,有很大一部分是从google下载,由于不能打开所以会出错,先默认安装上,需要什么文件再下载就行。

    我系统是windows8.1 默认安装好后目录如下:


    其中tesseract.exe是主程序, tessdata目录是存放语言文件 和 配置文件的,下载或自己生成的语言文件放到此目录里就可以了。



    3.Tesseract-OCR的命令行使用

    打开DOS界面,输入tesseract:


    如果出现如上输出,表示安装正常。

    我准备了一张验证码1.png放在D盘根目录下,简单的执行验证码识别


    其中 1.png是验证码图片 result是结果文件的名称 默认是.TXT文件 执行成功后会在验证码图片所在位置生成result.txt 打开结果为:



    命令详解:

    Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
    pagesegmode values are:
    0 = Orientation and script. detection (OSD) only.
    1 = Automatic page segmentation with OSD.
    2 = Automatic page segmentation, but no OSD, or OCR
    3 = Fully automatic page segmentation, but no OSD. (Default)
    4 = Assume a single column of text of variable sizes.
    5 = Assume a single uniform. block of vertically aligned text.
    6 = Assume a single uniform. block of text.
    7 = Treat the image as a single text line.
    8 = Treat the image as a single word.
    9 = Treat the image as a single word in a circle.
    10 = Treat the image as a single character.
    -l lang and/or -psm pagesegmode must occur before anyconfigfile.


    tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

    tesseract    图片名  输出文件名 -l 字库文件 -psm pagesegmode 配置文件

    例如:

    tesseract code.jpg result  -l chi_sim -psm 7 nobatch

    -l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为  .raineddata 简体中文字库文件名为:  chi_sim.traineddata)

    -psm 7 表示告诉tesseract code.jpg图片是一行文本  这个参数可以减少识别错误率.  默认为 3

    configfile 参数值为tessdata\configs 和  tessdata\tessconfigs 目录下的文件名


  • Tesseract-OCR引擎简介

    2015-11-18 10:05:37

    1.Tesseract-OCR引擎简介

    OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

    Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。

    数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。



    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了,


    因为如果选择了其他项,安装程序会自动从网上下载,语言库和其他文件,有很大一部分是从google下载,由于不能打开所以会出错,先默认安装上,需要什么文件再下载就行。

    我系统是windows8.1 默认安装好后目录如下:


    其中tesseract.exe是主程序, tessdata目录是存放语言文件 和 配置文件的,下载或自己生成的语言文件放到此目录里就可以了。



    3.Tesseract-OCR的命令行使用

    打开DOS界面,输入tesseract:


    如果出现如上输出,表示安装正常。

    我准备了一张验证码1.png放在D盘根目录下,简单的执行验证码识别


    其中 1.png是验证码图片 result是结果文件的名称 默认是.TXT文件 执行成功后会在验证码图片所在位置生成result.txt 打开结果为:



    命令详解:

    Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
    pagesegmode values are:
    0 = Orientation and script. detection (OSD) only.
    1 = Automatic page segmentation with OSD.
    2 = Automatic page segmentation, but no OSD, or OCR
    3 = Fully automatic page segmentation, but no OSD. (Default)
    4 = Assume a single column of text of variable sizes.
    5 = Assume a single uniform. block of vertically aligned text.
    6 = Assume a single uniform. block of text.
    7 = Treat the image as a single text line.
    8 = Treat the image as a single word.
    9 = Treat the image as a single word in a circle.
    10 = Treat the image as a single character.
    -l lang and/or -psm pagesegmode must occur before anyconfigfile.


    tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

    tesseract    图片名  输出文件名 -l 字库文件 -psm pagesegmode 配置文件

    例如:

    tesseract code.jpg result  -l chi_sim -psm 7 nobatch

    -l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为  .raineddata 简体中文字库文件名为:  chi_sim.traineddata)

    -psm 7 表示告诉tesseract code.jpg图片是一行文本  这个参数可以减少识别错误率.  默认为 3

    configfile 参数值为tessdata\configs 和  tessdata\tessconfigs 目录下的文件名



    4.Tesseract-OCR的QA合集

    A.ImageMagick是什么?

    ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装

    我在这里之所以提到ImageMagick是因为某些图片格式需要用这个工具来转换。

    B.Leptonica 是什么?

    Leptonica 是一图像处理与图像分析工具,tesseract依赖于它。而且不是所有的格式(如jpg)都能处理,所以我们需要借助imagemagick做格式转换。

    Here's a summary of compression support and limitations:
        - All formats except JPEG support 1 bpp binary.
        - All formats support 8 bpp grayscale (GIF must have a colormap).
        - All formats except GIF support 24 bpp rgb color.
        - All formats except PNM support 8 bpp colormap.
        - PNG and PNM support 2 and 4 bpp images.
        - PNG supports 2 and 4 bpp colormap, and 16 bpp without colormap.
        - PNG, JPEG, TIFF and GIF support image compression; PNM and BMP do not.
        - WEBP supports 24 bpp rgb color.

    C.提高图片质量?

    识别成功率跟图片质量关系密切,一般拿到后的验证码都得经过灰度化,二值化,去噪,利用imgick就可以很方便的做到.

    convert -monochrome foo.png bar.png #将图片二值化

    D.我只想识别字符和数字?

    结尾仅需要加digits

    命令实例:tesseract imagename outputbase digits

    E.训练你的tesseract

    不得不说,tesseract英文识别率已经很不错了(现有的tesseract-data-eng),但是验证码识别还是太鸡肋了。但是请别忘记,tesseract的智能识别是需要训练的.

    F.命令执行出现empty page!!错误

    严格来说,这不是一个bug(tesseract 3.0),出现这个错误是因为tesseract搞不清图像的字符布局

    -psm N
        Set Tesseract to only run a subset of layout analysis and assume a certain form. of image. The options for N are:


        0 = Orientation and script. detection (OSD) only.
        1 = Automatic page segmentation with OSD.
        2 = Automatic page segmentation, but no OSD, or OCR.
        3 = Fully automatic page segmentation, but no OSD. (Default)
        4 = Assume a single column of text of variable sizes.
        5 = Assume a single uniform. block of vertically aligned text.
        6 = Assume a single uniform. block of text.
        7 = Treat the image as a single text line.
        8 = Treat the image as a single word.
        9 = Treat the image as a single word in a circle.
        10 = Treat the image as a single character.

    对于我们的验证码a.tif排列来说,采用-psm 7(single text line)比较合适。



    5.Tesseract-OCR的训练方法

    A.使用jTessBoxEditor工具

    1.下载地址:http://download.csdn.net/detail/whatday/7740739

    这个工具是用来训练样本用的,由于该工具是用JAVA开发的,需要安装JAVA虚拟机1.6才能运行。

    2. 获取样本图像。用画图工具绘制了5张0-9的文样本图像(当然样本越多越好),如下图所示:

      

      


    3.合并样本图像。运行jTessBoxEditor工具,在点击菜单栏中Tools--->Merge TIFF。在弹出的对话框中选择样本图像(按Shift选择多张),合并成num.font.exp0.tif文件。

    4.生成Box File文件。打开命令行,执行命令:

    1. tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox  

      生成的BOX文件为num.font.exp0.box,BOX文件为Tessercat识别出的文字和其坐标。

    注:Make Box File的命令格式为:

    1. tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox  

    其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。

    5.文字校正。 运行jTessBoxEditor工具,打开num.font.exp0.tif文件(必须将上一步生成的.box和.tif样本文件放在同一目录),如 下图所示。可以看出有些字符识别的不正确,可以通过该工具手动对每张图片中识别错误的字符进行校正。校正完成后保存即可。




    6.定义字体特征文件。Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为font_properties的字体特征文件。

    font_properties不含有BOM头,文件内容格式如下:

    1. <fontname> <italic> <bold> <fixed> <serif> <fraktur>  

    其中fontname为字体名称,必须与[lang]. [fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。

    这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:

    1. font 0 0 0 0 0  
    这里全取值为0,表示字体不是粗体、斜体等等。

    7.生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容。

    1. rem 执行改批处理前先要目录下创建font_properties文件  
    2.   
    3. echo Run Tesseract for Training..  
    4. tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train  
    5.   
    6. echo Compute the Character Set..  
    7. unicharset_extractor.exe num.font.exp0.box  
    8. mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr  
    9.   
    10. echo Clustering..  
    11. cntraining.exe num.font.exp0.tr  
    12.   
    13. echo Rename Files..  
    14. rename normproto num.normproto  
    15. rename inttemp num.inttemp  
    16. rename pffmtable num.pffmtable  
    17. rename shapetable num.shapetable   
    18.   
    19. echo Create Tessdata..  
    20. combine_tessdata.exe num.  

    将批处理通过命令行执行。执行后的结果如下:


    需确认打印结果中的Offset 1、3、4、5、13这些项不是-1。这样,一个新的语言文件就生成了。

    num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到Tesseract-OCR-->tessdata目录下。可以用它来进行字符识别了。

    训练前:

    1.准备一副待识别的图像,这里用画图工具随便写了一串数字,保存为number.jpg,如下图所示:
            

    2.  打开命令行,定位到Tesseract-OCR目录,输入命令:

    1. tesseract.exe number.jpg result -l eng  

         其中result表示输出结果文件txt名称,eng表示用以识别的语言文件为英文。

    3.  打开Tesseract-OCR目录下的result.txt文件,看到识别的结果为7542315857,有3个字符识别错误,识别率还不是很高,那 有没有什么方法来提供识别率呢?Tesseract提供了一套训练样本的方法,用以生成自己所需的识别语言库。下面介绍一下具体训练样本的方法。


         


    训练后:

    用训练后的语言库识别number.jpg文件, 打开命令行,定位到Tesseract-OCR目录,输入命令:

    1. tesseract.exe number.jpg result -l eng  

    识别结果如如图所示,可以看到识别率提高了不少。通过自定义训练样本,可以进行图形验证码、车牌号码识别等。感兴趣的朋友可以研究研究。




    B.使用 CowBoxer工具

    下载地址为:http://download.csdn.net/detail/whatday/7740815

    第一步生成第一个 box 文件
    演示中将 Tesseract 解压到了 E:\tesseract-ocr 目录。然后在该目录中建立了一个 build 目录用于存放原始数据和训练过程中生成的文件。原始图片数据一个有 3 个 (test.001.tif - test.003.tif):





    首先生成第一个图片 test.001.tif 的 box 文件,这里使用官方的 eng 语言数据进行文字识别:

    E:\tesseract-ocr\build>..\tesseract test.001.tif test.001 -l eng batch.nochop makebox
    Tesseract Open Source OCR Engine with Leptonica
    Number of found pages: 1.

    执行完这个命令之后,build 目录下就生成了一个 test.001.box。使用 CowBoxer 打开这个 box 文件,CowBoxer 会自动找到同名的 tif 文件显示出来。



    CowBoxer 的使用方法可以看 Help -> About 中的说明。修改完成之后 File -> Save box file 保存文件。

    生成初始的 traineddata

    接下来使用这一个 box 文件先生成一个 traineddata,在接下来生成其他图片的 box 文件时,使用这个 traineddata 有利于提高识别的正确率,减少修改次数。

    ..\tesseract test.001.tif test.001 nobatch box.train
    ..\training\unicharset_extractor test.001.box
    ..\training\mftraining -U unicharset -O test.unicharset test.001.tr
    ..\training\cntraining test.001.tr
    rename normproto test.normproto
    rename Microfeat test.Microfeat
    rename inttemp test.inttemp
    rename pffmtable test.pffmtable
    ..\training\combine_tessdata test.

    在 build 目录下执行完这一系列命令之后,就生成了可用的 test.traineddata。

    生成其余 box 文件

    将上一步生成的 test.traineddata 移动到 tesseract-ocr\tessdata 目录中,接下来生成其他 box 文件时就可以通过 -l test 参数使用它了。

    ..\tesseract test.002.tif test.002 -l test batch.nochop makebox
    ..\tesseract test.003.tif test.003 -l test batch.nochop makebox

    这里仅仅是使用 3 个原始文件作为例子。实际制作训练文件时,什么时候生成一个 traineddata 根据情况而定。中途生成 traineddata 的目的只是为了提高文字识别的准确率,使后面生成的 box 文件能少做修改。

    生成最终的 traineddata

    在所有的 box 都制作完成后,就可以生成最终的 traineddata 了。

    ..\tesseract test.001.tif test.001 nobatch box.train
    ..\tesseract test.002.tif test.002 nobatch box.train
    ..\tesseract test.003.tif test.003 nobatch box.train
    ..\training\unicharset_extractor test.001.box test.002.box test.003.box
    ..\training\mftraining -U unicharset -O test.unicharset test.001.tr test.002.tr test.003.tr
    ..\training\cntraining test.001.tr test.002.tr test.003.tr
    rename normproto test.normproto
    rename Microfeat test.Microfeat
    rename inttemp test.inttemp
    rename pffmtable test.pffmtable
    ..\training\combine_tessdata test.

    在文件较多时可以用程序生成这种脚本执行。

    未完。。。

  • Tesseract-OCR引擎简介

    2015-11-18 10:00:59

    http://blog.csdn.net/whatday/article/details/38493551

    1.Tesseract-OCR引擎简介

    OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程。

    Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。

    数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。



    2.Tesseract-OCR的下载安装

    google下载地址:http://code.google.com/p/tesseract-ocr    

    需要下载安装程序(tesseract-ocr-setup-3.02.02.exe)和语言库,默认有英文的语言库只能识别英文,所以还需要下载中文语言库,  

    由于google经常打不开,所以通过代理下载后,上传到了CSDN,

    安装程序下载地址:http://download.csdn.net/detail/whatday/7740469

    简体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740531

    繁体中文语言库下载地址:http://download.csdn.net/detail/whatday/7740429

    安装tesseract-ocr-setup-3.02.02.exe 默认安装就可以了,


    因为如果选择了其他项,安装程序会自动从网上下载,语言库和其他文件,有很大一部分是从google下载,由于不能打开所以会出错,先默认安装上,需要什么文件再下载就行。

    我系统是windows8.1 默认安装好后目录如下:


    其中tesseract.exe是主程序, tessdata目录是存放语言文件 和 配置文件的,下载或自己生成的语言文件放到此目录里就可以了。



    3.Tesseract-OCR的命令行使用

    打开DOS界面,输入tesseract:


    如果出现如上输出,表示安装正常。

    我准备了一张验证码1.png放在D盘根目录下,简单的执行验证码识别


    其中 1.png是验证码图片 result是结果文件的名称 默认是.TXT文件 执行成功后会在验证码图片所在位置生成result.txt 打开结果为:



    命令详解:

    Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]
    pagesegmode values are:
    0 = Orientation and script. detection (OSD) only.
    1 = Automatic page segmentation with OSD.
    2 = Automatic page segmentation, but no OSD, or OCR
    3 = Fully automatic page segmentation, but no OSD. (Default)
    4 = Assume a single column of text of variable sizes.
    5 = Assume a single uniform. block of vertically aligned text.
    6 = Assume a single uniform. block of text.
    7 = Treat the image as a single text line.
    8 = Treat the image as a single word.
    9 = Treat the image as a single word in a circle.
    10 = Treat the image as a single character.
    -l lang and/or -psm pagesegmode must occur before anyconfigfile.


    tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile...]

    tesseract    图片名  输出文件名 -l 字库文件 -psm pagesegmode 配置文件

    例如:

    tesseract code.jpg result  -l chi_sim -psm 7 nobatch

    -l chi_sim 表示用简体中文字库(需要下载中文字库文件,解压后,存放到tessdata目录下去,字库文件扩展名为  .raineddata 简体中文字库文件名为:  chi_sim.traineddata)

    -psm 7 表示告诉tesseract code.jpg图片是一行文本  这个参数可以减少识别错误率.  默认为 3

    configfile 参数值为tessdata\configs 和  tessdata\tessconfigs 目录下的文件名



    4.Tesseract-OCR的QA合集

    A.ImageMagick是什么?

    ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装

    我在这里之所以提到ImageMagick是因为某些图片格式需要用这个工具来转换。

    B.Leptonica 是什么?

    Leptonica 是一图像处理与图像分析工具,tesseract依赖于它。而且不是所有的格式(如jpg)都能处理,所以我们需要借助imagemagick做格式转换。

    Here's a summary of compression support and limitations:
        - All formats except JPEG support 1 bpp binary.
        - All formats support 8 bpp grayscale (GIF must have a colormap).
        - All formats except GIF support 24 bpp rgb color.
        - All formats except PNM support 8 bpp colormap.
        - PNG and PNM support 2 and 4 bpp images.
        - PNG supports 2 and 4 bpp colormap, and 16 bpp without colormap.
        - PNG, JPEG, TIFF and GIF support image compression; PNM and BMP do not.
        - WEBP supports 24 bpp rgb color.

    C.提高图片质量?

    识别成功率跟图片质量关系密切,一般拿到后的验证码都得经过灰度化,二值化,去噪,利用imgick就可以很方便的做到.

    convert -monochrome foo.png bar.png #将图片二值化

    D.我只想识别字符和数字?

    结尾仅需要加digits

    命令实例:tesseract imagename outputbase digits

    E.训练你的tesseract

    不得不说,tesseract英文识别率已经很不错了(现有的tesseract-data-eng),但是验证码识别还是太鸡肋了。但是请别忘记,tesseract的智能识别是需要训练的.

    F.命令执行出现empty page!!错误

    严格来说,这不是一个bug(tesseract 3.0),出现这个错误是因为tesseract搞不清图像的字符布局

    -psm N
        Set Tesseract to only run a subset of layout analysis and assume a certain form. of image. The options for N are:


        0 = Orientation and script. detection (OSD) only.
        1 = Automatic page segmentation with OSD.
        2 = Automatic page segmentation, but no OSD, or OCR.
        3 = Fully automatic page segmentation, but no OSD. (Default)
        4 = Assume a single column of text of variable sizes.
        5 = Assume a single uniform. block of vertically aligned text.
        6 = Assume a single uniform. block of text.
        7 = Treat the image as a single text line.
        8 = Treat the image as a single word.
        9 = Treat the image as a single word in a circle.
        10 = Treat the image as a single character.

    对于我们的验证码a.tif排列来说,采用-psm 7(single text line)比较合适。



    5.Tesseract-OCR的训练方法

    A.使用jTessBoxEditor工具

    1.下载地址:http://download.csdn.net/detail/whatday/7740739

    这个工具是用来训练样本用的,由于该工具是用JAVA开发的,需要安装JAVA虚拟机1.6才能运行。

    2. 获取样本图像。用画图工具绘制了5张0-9的文样本图像(当然样本越多越好),如下图所示:

      

      


    3.合并样本图像。运行jTessBoxEditor工具,在点击菜单栏中Tools--->Merge TIFF。在弹出的对话框中选择样本图像(按Shift选择多张),合并成num.font.exp0.tif文件。

    4.生成Box File文件。打开命令行,执行命令:

    1. tesseract.exe num.font.exp0.tif num.font.exp0 batch.nochop makebox  

      生成的BOX文件为num.font.exp0.box,BOX文件为Tessercat识别出的文字和其坐标。

    注:Make Box File的命令格式为:

    1. tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox  

    其中lang为语言名称,fontname为字体名称,num为序号,可以随便定义。

    5.文字校正。 运行jTessBoxEditor工具,打开num.font.exp0.tif文件(必须将上一步生成的.box和.tif样本文件放在同一目录),如 下图所示。可以看出有些字符识别的不正确,可以通过该工具手动对每张图片中识别错误的字符进行校正。校正完成后保存即可。




    6.定义字体特征文件。Tesseract-OCR3.01以上的版本在训练之前需要创建一个名称为font_properties的字体特征文件。

    font_properties不含有BOM头,文件内容格式如下:

    1. <fontname> <italic> <bold> <fixed> <serif> <fraktur>  

    其中fontname为字体名称,必须与[lang]. [fontname].exp[num].box中的名称保持一致。<italic> 、<bold> 、<fixed> 、<serif>、 <fraktur>的取值为1或0,表示字体是否具有这些属性。

    这里在样本图片所在目录下创建一个名称为font_properties的文件,用记事本打开,输入以下下内容:

    1. font 0 0 0 0 0  
    这里全取值为0,表示字体不是粗体、斜体等等。

    7.生成语言文件。在样本图片所在目录下创建一个批处理文件,输入如下内容。

    1. rem 执行改批处理前先要目录下创建font_properties文件  
    2.   
    3. echo Run Tesseract for Training..  
    4. tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train  
    5.   
    6. echo Compute the Character Set..  
    7. unicharset_extractor.exe num.font.exp0.box  
    8. mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr  
    9.   
    10. echo Clustering..  
    11. cntraining.exe num.font.exp0.tr  
    12.   
    13. echo Rename Files..  
    14. rename normproto num.normproto  
    15. rename inttemp num.inttemp  
    16. rename pffmtable num.pffmtable  
    17. rename shapetable num.shapetable   
    18.   
    19. echo Create Tessdata..  
    20. combine_tessdata.exe num.  

    将批处理通过命令行执行。执行后的结果如下:


    需确认打印结果中的Offset 1、3、4、5、13这些项不是-1。这样,一个新的语言文件就生成了。

    num.traineddata便是最终生成的语言文件,将生成的num.traineddata拷贝到Tesseract-OCR-->tessdata目录下。可以用它来进行字符识别了。

    训练前:

    1.准备一副待识别的图像,这里用画图工具随便写了一串数字,保存为number.jpg,如下图所示:
            

    2.  打开命令行,定位到Tesseract-OCR目录,输入命令:

    1. tesseract.exe number.jpg result -l eng  

         其中result表示输出结果文件txt名称,eng表示用以识别的语言文件为英文。

    3.  打开Tesseract-OCR目录下的result.txt文件,看到识别的结果为7542315857,有3个字符识别错误,识别率还不是很高,那 有没有什么方法来提供识别率呢?Tesseract提供了一套训练样本的方法,用以生成自己所需的识别语言库。下面介绍一下具体训练样本的方法。


         


    训练后:

    用训练后的语言库识别number.jpg文件, 打开命令行,定位到Tesseract-OCR目录,输入命令:

    1. tesseract.exe number.jpg result -l eng  

    识别结果如如图所示,可以看到识别率提高了不少。通过自定义训练样本,可以进行图形验证码、车牌号码识别等。感兴趣的朋友可以研究研究。




    B.使用 CowBoxer工具

    下载地址为:http://download.csdn.net/detail/whatday/7740815

    第一步生成第一个 box 文件
    演示中将 Tesseract 解压到了 E:\tesseract-ocr 目录。然后在该目录中建立了一个 build 目录用于存放原始数据和训练过程中生成的文件。原始图片数据一个有 3 个 (test.001.tif - test.003.tif):





    首先生成第一个图片 test.001.tif 的 box 文件,这里使用官方的 eng 语言数据进行文字识别:

    E:\tesseract-ocr\build>..\tesseract test.001.tif test.001 -l eng batch.nochop makebox
    Tesseract Open Source OCR Engine with Leptonica
    Number of found pages: 1.

    执行完这个命令之后,build 目录下就生成了一个 test.001.box。使用 CowBoxer 打开这个 box 文件,CowBoxer 会自动找到同名的 tif 文件显示出来。



    CowBoxer 的使用方法可以看 Help -> About 中的说明。修改完成之后 File -> Save box file 保存文件。

    生成初始的 traineddata

    接下来使用这一个 box 文件先生成一个 traineddata,在接下来生成其他图片的 box 文件时,使用这个 traineddata 有利于提高识别的正确率,减少修改次数。

    ..\tesseract test.001.tif test.001 nobatch box.train
    ..\training\unicharset_extractor test.001.box
    ..\training\mftraining -U unicharset -O test.unicharset test.001.tr
    ..\training\cntraining test.001.tr
    rename normproto test.normproto
    rename Microfeat test.Microfeat
    rename inttemp test.inttemp
    rename pffmtable test.pffmtable
    ..\training\combine_tessdata test.

    在 build 目录下执行完这一系列命令之后,就生成了可用的 test.traineddata。

    生成其余 box 文件

    将上一步生成的 test.traineddata 移动到 tesseract-ocr\tessdata 目录中,接下来生成其他 box 文件时就可以通过 -l test 参数使用它了。

    ..\tesseract test.002.tif test.002 -l test batch.nochop makebox
    ..\tesseract test.003.tif test.003 -l test batch.nochop makebox

    这里仅仅是使用 3 个原始文件作为例子。实际制作训练文件时,什么时候生成一个 traineddata 根据情况而定。中途生成 traineddata 的目的只是为了提高文字识别的准确率,使后面生成的 box 文件能少做修改。

    生成最终的 traineddata

    在所有的 box 都制作完成后,就可以生成最终的 traineddata 了。

    ..\tesseract test.001.tif test.001 nobatch box.train
    ..\tesseract test.002.tif test.002 nobatch box.train
    ..\tesseract test.003.tif test.003 nobatch box.train
    ..\training\unicharset_extractor test.001.box test.002.box test.003.box
    ..\training\mftraining -U unicharset -O test.unicharset test.001.tr test.002.tr test.003.tr
    ..\training\cntraining test.001.tr test.002.tr test.003.tr
    rename normproto test.normproto
    rename Microfeat test.Microfeat
    rename inttemp test.inttemp
    rename pffmtable test.pffmtable
    ..\training\combine_tessdata test.

    在文件较多时可以用程序生成这种脚本执行。



    未完。。。


  • 这种取log的方式不错

    2015-10-20 15:34:30

    这种取log的方式不错

  • log4j:WARN Unsupported encoding?

    2015-10-20 14:47:04

    运行程序时出现警告:
    log4j:WARN Error initializing output writer. 
    log4j:WARN Unsupported encoding?

    设置编码那行有空格。。。 去掉空格就OK了.

  • Android autotest - Monkey tool

    2015-09-17 09:57:42

    Android autotest - Monkey tool

     3135人阅读 评论(0) 收藏 举报

    http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html

    一、 什么是Monkey

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

     

    二、 Monkey的特征

    1、测试的对象仅为应用程序包,有一定的局限性。

    2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。

    3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置。

    三、Monkey的基本用法

    基本语法如下:

    $ adb shell monkey [options]

    如果不指定options,Monkey将以无反馈模式启动,并把事件任意发送到安装在目标环境中的全部包。下面是一个更为典型的命令行示例,它启动指定的应用程序,并向其发送500个伪随机事件:

    $ adb shell monkey -p your.package.name -v 500

     

    四、Monkey测试的一个实例

    通过这个实例,我们能理解Monkey测试的步骤以及如何知道哪些应用程序能够用Monkey进行测试。

    Windows下(注:2—4步是为了查看我们可以测试哪些应用程序包,可省略):

    1、 通过eclipse启动一个Android的emulator

    2、 在命令行中输入:adb devices查看设备连接情况

    C:\Documents and Settings\Administrator>adb devices

    List of devices attached

    emulator-5554 device

    3、 在有设备连接的前提下,在命令行中输入:adb shell 进入shell界面

    C:\Documents and Settings\Administrator>adb shell

    #

    4、 查看data/data文件夹下的应用程序包。注:我们能测试的应用程序包都在这个目录下面

    C:\Documents and Settings\Administrator>adb shell

    # ls data/data

    ls data/data

    com.google.android.btrouter

    com.android.providers.telephony

    com.android.mms

    com.android.providers.downloads

    com.android.deskclock

    com.android.email

    com.android.providers.media

    com.android.settings

    5、 以com.android.email作为对象进行MonkeyTest

    #monkey -p com.android.email -v 500

    其中-p表示对象包 –v 表示事件数量

    运行过程中,Emulator中的应用程序在不断地切换画面。

    按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。

     

    五、关于Monkey测试的停止条件

    Monkey Test执行过程中在下列三种情况下会自动停止:

    1、如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

    2、如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错。

    3、如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

    通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序。 

  • Appium+Robotframework实现手机应用的自动化测试-1:Appium简介

    2015-09-16 21:08:30

    http://www.51testing.com/html/59/488459-3578170.html
    http://bbs.51testing.com/thread-1060560-1-1.html

    Appium对京东App中WebView的处理

  • 安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案

    2015-09-16 21:00:00

    http://blog.csdn.net/xifeijian/article/details/8578832

    安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案

    分类: LoadRunner 性能测试 9250人阅读 评论(4) 收藏 举报

    我的电脑在安装UFT时,被要求需要卸载本机上安装的LoadRunner11,当LoadRunner11被卸载后,进行重新安装LoadRunner11时,会报缺少vc2005_sp1_with_atl_fix_redist错误,类似下图所示:

    由提示信息可知,这里是由于本机缺少该组件所致,解决方案就是安装此组件,可以去网上下载,当然,我们完全没有必要这样做,因为在LoadRunner的安装包中,可以找到此组件,进行安装即可。

    路径地址:找到安装程序自带的lrunner\Chs\prerequisites\vc2005_sp1_redist,双击运行vcredist_x86.exe,再重新安装LoadRunner即可成功。

    PS:这里对于LoadRunner安装过程中已经检测到缺少此安装组件,而在安装包的prerequisites目录下又能找到这些必需的预安装组件,我觉得LoadRunner安装过程有点“弱”,这种情况下完全可以自动去执行该路径下文件,也就相当于,既然你已经捕获了异常,为何不尝试去处理它?

  • RTT(Round-Trip Time): 往返时延

    2015-09-02 16:26:38

    RTT(Round-Trip Time): 往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
  • Fiddler 教程

    2015-09-02 13:21:19

    http://kb.cnblogs.com/page/130367/
    http://www.imooc.com/learn/37

    阅读目录
    1. Fiddler的基本介绍
    2. Fiddler的工作原理
    3. 同类的其它工具
    4. Fiddler如何捕获Firefox的会话
    5. Fiddler如何捕获HTTPS会话
    6. Fiddler的基本界面
    7. Fiddler的统计视图
    8. QuickExec命令行的使用
    9. Fiddler中设置断点修改Request
    10. Fiddler中设置断点修改Response
    11. Fiddler中创建AutoResponder规则
    12. Fiddler中如何过滤会话
    13. Fiddler中会话比较功能
    14. Fiddler中提供的编码小工具
    15. Fiddler中查询会话
    16. Fiddler中保存会话
    17. Fiddler的script系统
    18. 如何在VS调试网站的时候使用Fiddler

      Fiddler的基本介绍

      Fiddler的官方网站:  www.fiddler2.com

      Fiddler官方网站提供了大量的帮助文档和视频教程, 这是学习Fiddler的最好资料。

      Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展

      你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。

      Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。

      Fiddler的工作原理

      Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

      同类的其它工具

      同类的工具有: httpwatch, firebug, wireshark

      Fiddler 如何捕获Firefox的会话

      能支持HTTP代理的任意程序的数据包都能被Fiddler嗅探到,Fiddler的运行机制其实就是本机上监听8888端口的HTTP代理。 Fiddler2启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置的,所以将Firefox的代理改为 127.0.0.1:8888就可以监听数据了。

      Firefox 上通过如下步骤设置代理

      点击: Tools -> Options,  在Options 对话框上点击Advanced tab - > network tab -> setting.

      Fiddler如何捕获HTTPS会话

      默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler  Tool->Fiddler Options->HTTPS tab

      选中checkbox, 弹出如下的对话框,点击"YES"

      

      点击"Yes" 后,就设置好了。

      Fiddler的基本界面

      看看Fiddler的基本界面

      Fiddler的HTTP统计视图

      通过陈列出所有的HTTP通信量,Fiddler可以很容易的向您展示哪些文件生成了您当前请求的页面。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。

      选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化

      QuickExec命令行的使用

      Fiddler的左下角有一个命令行工具叫做QuickExec,允许你直接输入命令。

      常见得命令有:

      help  打开官方的使用页面介绍,所有的命令都会列出来

      cls    清屏  (Ctrl+x 也可以清屏)

      select  选择会话的命令

      ?.png  用来选择png后缀的图片

      bpu  截获request

      Fiddler中设置断点修改Request

      Fiddler最强大的功能莫过于设置断点了,设置好断点后,你可以修改httpRequest的任何信息包括host, cookie或者表单中的数据。设置断点有两种方法:

      第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->Before Requests(这种方法会中断所有的会话)

      如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

      第二种:  在命令行中输入命令:  bpu www.baidu.com   (这种方法只会中断www.baidu.com)

      如何消除命令呢?  在命令行中输入命令 bpu

      看个实例,模拟博客园的登录, 在IE中打开博客园的登录页面,输入错误的用户名和密码,用Fiddler中断会话,修改成正确的用户名密码。这样就能成功登录:

      1. 用IE 打开博客园的登录界面  http://passport.cnblogs.com/login.aspx

      2. 打开Fiddler,  在命令行中输入bpu http://passport.cnblogs.com/login.aspx

      3. 输入错误的用户名和密码,点击登录

      4. Fiddler 能中断这次会话,选择被中断的会话,点击Inspectors tab下的WebForms tab 修改用户名密码,然后点击Run to Completion 如下图所示。

      5. 结果是正确地登录了博客园

      Fiddler中设置断点修改Response

      当然Fiddler中也能修改Response:

      第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中断所有的会话)

      如何消除命令呢?  点击Rules-> Automatic Breakpoint  ->Disabled

      第二种:  在命令行中输入命令:  bpuafter www.baidu.com   (这种方法只会中断www.baidu.com)

      如何消除命令呢?  在命令行中输入命令 bpuafter,

      具体用法和上节差不多,就不多说了。

      Fiddler中创建AutoResponder规则

      Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。

      看个实例:

      1. 打开博客园首页,把博客园的logo图片保存到本地,并且对图片做些修改。

      2. 打开Fiddler 找到logo图片的会话, http://static.cnblogs.com/images/logo_2012_lantern_festival.gif,  把这个会话拖到AutoResponer Tab下

      3. 选择Enable automatic reaponses 和Unmatched requests passthrough

      4. 在下面的Rule Editor 下面选择 Find a file... 选择本地保存的图片.  最后点击Save 保存下。

      5.   再用IE博客园首页, 你会看到首页的图片用的是本地的。

      Fiddler中如何过滤会话

      每次使用Fiddler, 打开一个网站,都能在Fiddler中看到几十个会话,看得眼花缭乱。最好的办法是过滤掉一些会话,比如过滤掉图片的会话。Fiddler中有过滤的功能, 在右边的Filters tab中,里面有很多选项, 稍微研究下,就知道怎么用。

      Fiddler中会话比较功能

      选中2个会话,右键然后点击Compare,就可以用WinDiff来比较两个会话的不同了(当然需要你安装WinDiff)

      Fiddler中提供的编码小工具

      点击Fiddler 工具栏上的TextWizard,  这个工具可以Encode和Decode string.

      Fiddler中查询会话

      用快捷键Ctrl+F打开Find Sessions的对话框,输入关键字查询你要的会话。 查询到的会话会用黄色显示。

      Fiddler中保存会话

      有些时候我们需要把会话保存下来,以便发给别人或者以后去分析。  保存会话的步骤如下:

      选择你想保存的会话,然后点击File->Save->Selected Sessions

      Fiddler的script系统

      Fiddler最复杂的莫过于script系统了,官方的帮助文档: http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp

      首先先安装SyntaxView插件,Inspectors tab->Get SyntaxView tab->Download and Install SyntaxView Now... 如下图

      安装成功后Fiddler 就会多了一个Fiddler Script. tab,如下图:

      在里面我们就可以编写脚本了, 看个实例让所有cnblogs的会话都显示红色。

      把这段脚本放在OnBeforeRequest(oSession: Session) 方法下,并且点击"Save script"

    if (oSession.HostnameIs("www.cnblogs.com")) {

      oSession["ui-color"] = "red";

    }

      这样所有的cnblogs的会话都会显示红色。

      如何在VS调试网站的时候使用Fiddler

      我们在用visual stuido 开发ASP.NET网站的时候也需要用Fiddler来分析HTTP, 默认的时候Fiddler是不能嗅探到localhost的网站。不过只要在localhost后面加个点号,Fiddler就能嗅探到。

      例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,  加个点号后,变成 http://localhost.:2391/Default.aspx 就可以了


  • Java环境变量的设置方法

    2015-08-20 10:43:55


    想要成功配置Java的环境变量,那肯定就要安装JDK,才能开始配置的。
    安装JDK 向导进行相关参数设置。如图:

    正在安装程序的相关功能,如图:

    选择安装的路径,可以自定义,也可以默认路径。如图:

    成功安装之后,进行测试是否真的成功安装,点击【开始】----【运行】----输入 CMD,在命令提示符里面输入“Java -version”并按回车键,出现下图,即为安装成功。如图:

    下面开始配置环境变量,右击【我的电脑】---【属性】-----【高级】---【环境变量】,如图:

    选择【新建系统变量】--弹出“新建系统变量”对话框,在“变量名”文本框输入“JAVA_HOME”,在“变量值”文本框输入JDK的安装路径(也就是步骤5的文件夹路径),单击“确定”按钮,如图:

    在“系统变量”选项区域中查看PATH变量,如果不存在,则新建变量 PATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”或者是直接“%JAVA_HOME%\bin;”,单击确定按钮,如图:

    在“系统变量”选项区域中查看CLASSPATH 变量,如果不存在,则新建变量CLASSPATH,否则选中该变量,单击“编辑”按钮,在“变量值”文本框的起始位置添加“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。如图:

    现在测试环境变量的配置成功与否。在DOS命令行窗口输入“JAVAC”,输出帮助信息即为配置正确。如图:

    注意事项

    记得不要漏掉最后的“;”符号。



  • 安装TestNG Eclipse插件

    2015-02-25 16:36:11

    两种方法可以安装TestNG Eclipse插件:

    第一种,离线安装

    TestNG Eclipse插件下载地址http://testng.org/doc/download.html

    下载下来以后,放在eclipse的plugins文件夹下,然后启动eclipse,点击Help -> software update -> Installed Software, 查找到TestNG Eclipse插件,点击Install(安装),安装完成后,重启eclipse。

    然后去Windows -> show view -> other,java文件夹下,有TestNG,双击图标,在eclipse界面下面便会出现TestNg的窗体。


    第二种,在线安装
    具体步骤如下:

        1. 选择菜单:Help->Install New Software,然后在弹出的窗口中的Work with后面的输入框中输入:

    http://beust.com/eclipse。

        2. 然后点击Add按钮,选中TestNG后一路点击Next下去安装即可,直到Finished之后,重启Eclipse完成安装。
  • 安装Eclipse

    2015-02-25 16:32:30

  • 抓包改包工具 burpsuite_free_v1.6

    2015-02-15 16:41:34

    burpsuite_free_v1.6
    cmd  里找到这个文件,然后执行 java -jar 文件名 回车可以运行

    Burp Suite 是用于对web 应用程序进行渗透测试的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快渗透测试应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,**,日志,警报的一个强大的可扩展的框架。

    下载地址http://pan.baidu.com/s/1eQvdUFK 




    burpsuite_pro_v1.5.01安装方法
    见http://www.2cto.com/Article/201303/195952.html

    这个需要java环境 这个必须的

    http://dl3.cr173.com//soft1/jre6.zip

    安装一直下一步就行了

    然后下载一个最新的 burpsuite_pro_v1.5.01

    http://www.2cto.com/soft/201302/37398.html

    然后新建一个批处理

    "C:\Program Files (x86)\Java\jre6\bin\java.exe" -cp BurpLoader.jar;burpsuite_pro_v1.5.01.jar larry.lau.BurpLoader

    俺现在是

    C:\Program Files (x86)\Java\jre6\bin\java.exe 这个是我安装的java路径 因为有空格要双引号号。你们跟我一样估计也就没什么问题。。

    点击查看原图

    I accept 一下 那个熟悉的界面又出来了

    看一下图把

    点击查看原图
     


  • Office 2010 Toolkit.exe 破解Office 2010

    2015-02-10 15:41:07

    进行下面的设置:



392/2<12
Open Toolbar