起步于系统工程师,迈进入测试工程师,从起初的C/S系统到互联网时代的B/S系统,从事过电信增值业务、软交换、烟草OA、公安技侦和电子商务等行业的软件测试开发和管理多年,愿与大家共同分享共同交流,关注软件项目管理、测试团队管理、软件流程控制和软件性能测试及自动化测试技术。互联网时代,技术推动进步,欢迎人才推荐:jonas.wangl@alibaba-inc.com

发布新日志

  • 关于VI的技巧[经典]-不断更新

    2009-11-10 20:36:10

     关于VI的技巧,整理如下,后续继续更新,也欢迎大家补充 :

            Ctrl +x &&ctrl +f   在插入状态下,补全你要输入的目录名

             Ctrl +w + f     在普通模式下打开光标对应的文件

             Ctrl + p      在插入模式下,补全已声明的变量

             Ctrl +x &&ctrl +l  在插入模式下补全已有行

             ts + 函数名或变量名  列出当前目录下所有该函数或变量    输入数字 + enter    跳转到相应的函数或变量

             Ctrl + }    变量或函数跳转,但当有多个该函数存在时,无法准确识别;所以当目录下有多个相同函数,推荐使用TS查找

             Ctrl + t    跳转后返回

     

    vim小技巧
         fx 往右移动到 x 字符上 #Fx为向左, 其中x为键入的字符,下同
         tx 往右移动到 x 字符前 #Tx为向左
         ;分号,配合 f 和 t 使用,重复一次
         ,逗号,配合 f 和 t 使用,反方向重复一次
         H 跳到第一行 M 跳到中间一行 L 跳到最后一行
        :%!sort 排序
        :set list/:set nolist:显示/隐藏不可见字符;
        Ctrl+g 显示行相关信息
        u(恢复上一次的操作)
        :s/^.*$/==>&<==/在行的首尾分别加上==>和<==
        vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
         do:删至行首
        Ctrl+u:删除输入方式下所输入的文本 搜索及替换命令
        :1,2 co 3 将1行到2行之间的内容拷贝到第3行下
        :1,2 m 3 将1行到2行之间的内容移至到第3行下
        :nohlsearch 不高亮搜索结果, set hlsearch 高亮搜索结果
        :set is 搜索时在未完全输入完毕要检索的文本时就开始检索。
         syntax on/off 打开/关闭关键字上色
         set sm 显示括号配对情况

  • PHP字符串处理函数库

    2009-11-08 17:07:25

    本函数库共有 51 个函数(详细可参考http://php.freehostingguru.com/

    AddSlashes: 字符串加入斜线。
    bin2hex: 二进位转成十六进位。
    Chop: 去除连续空白。
    Chr: 返回序数值的字符。
    chunk_split: 将字符串分成小段。
    convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
    crypt: 将字符串用 DES 编码加密。
    echo: 输出字符串。
    explode: 切开字符串。
    flush: 清出输出缓冲区。
    get_meta_tags: 抽出文件所有 meta. 标记的资料。
    htmlspecialchars: 将特殊字符转成 HTML 格式。
    htmlentities: 将所有的字符都转成 HTML 字符串。
    implode: 将数组变成字符串。
    join: 将数组变成字符串。
    ltrim: 去除连续空白。
    md5: 计算字符串的 MD5 哈稀。
    nl2br: 将换行字符转成 <br>。
    Ord: 返回字符的序数值。
    parse_str: 解析 query 字符串成变量。
    print: 输出字符串。
    printf: 输出格式化字符串。
    quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
    QuoteMeta: 加入引用符号。
    rawurldecode: 从 URL 专用格式字符串还原成普通字符串。
    rawurlencode: 将字符串编码成 URL 专用格式。
    setlocale: 配置地域化信息。
    similar_text: 计算字符串相似度。
    soundex: 计算字符串的读音值
    sprintf: 将字符串格式化。
    strchr: 寻找第一个出现的字符。
    strcmp: 字符串比较。
    strcspn: 不同字符串的长度。
    strip_tags: 去掉 HTML 及 PHP 的标记。
    StripSlashes: 去掉反斜线字符。
    strlen: 取得字符串长度。
    strrpos: 寻找字符串中某字符最后出现处。
    strpos: 寻找字符串中某字符最先出现处。
    strrchr: 取得某字符最后出现处起的字符串。
    strrev: 颠倒字符串。
    strspn: 找出某字符串落在另一字符串遮罩的数目。
    strstr: 返回字符串中某字符串开始处至结束的字符串。
    strtok: 切开字符串。
    strtolower: 字符串全转为小写。
    strtoupper: 字符串全转为大写。
    str_replace: 字符串取代。
    strtr: 转换某些字符。
    substr: 取部份字符串。
    trim: 截去字符串首尾的空格。
    ucfirst: 将字符串第一个字符改大写。
    ucwords: 将字符串每个字第一个字母改大写。

  • Perl 正则表达式的三种形式整理

    2009-11-08 16:56:22

    正则表达式的三种形式

    正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握他,就可以轻易地用正则表达式来完成字符串处理的任务,当然在 CGI 程序设计中就更能得心应手了。下面整理列出一些正则表达式书写时的一些基本语法规则。

    首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:

    匹配:m/<regexp>/ (还可以简写为 /<regexp>/ ,略去 m)

    替换:s/<pattern>/<replacement>/

    转化:tr/<pattern>/<replacemnt>/

    这三种形式一般都和 =~ 或 !~ 搭配使用(其中 "=~" 表示相匹配,在整条语句中读作 does,"!~" 表示不匹配,在整条语句中读作 doesn't),并在左侧有待处理的标量变量。如果没有该变量和 =~ !~ 操作符,则默认为处理 $_ 变量中的内容。举例如下:

    $str = "I love Perl";
    $str =~ m/Perl/; # 表示如果在 $str 中发现 "Perl" 字符串,则返回 "1" 否则返回 "0"。
    $str =~ s/Perl/BASH/; # 表示将变量 $str 中的 "Perl" 字符串替换为 "BASH",如果发生此替换则返回 "1",否则返回 "0"。
    $str !~ tr/A-Z/a-z/; # 表示将变量 $str 中的所有大写字母转化为小写字母,如果转化发生了则返回 "0",否则返回 "1"。

    另外还有:

    foreach (@array) { s/a/b/; } # 此处每次循环将从 @array 数组中取出一个元素存放在 $_ 变量中,并对 $_ 进行替换处理。
    while (<FILE>) { print if (m/error/); } # 这一句稍微复杂一些,他将打印 FILE 文件中所有包含 error 字符串的行。

    Perl 的正则表达式中如果出现 () ,则发生匹配或替换后 () 内的模式被 Perl 解释器自动依次赋给系统 $1, $2 ...... 请看下面的例子:

    $string = "I love perl";
    $string =~ s/(love)/<$1>/; # 此时 $1 = "love",并且该替换的结果是将 $string 变为 "I <love> perl"
    $string = "i love perl";
    $string =~ s/(i)(.*)(perl)/<$3>$2<$1>/; # 这里 $1 = "i",$2 = " love ",$3 = "perl",并且替换后 $string 变为 "<perl> love <i>"

    替换操作 s/<pattern>/<replacement>/ 还可以在末尾加上 e 或 g 参数,他们的含义分别为:

    s/<pattern>/<replacement>/g 表示把待处理字符串中所有符合 <pattern> 的模式全部替换为 <replacement> 字符串,而不是只替换第一个出现的模式。
    s/<pattern>/<replacement>/e 表示将把 <replacemnet> 部分当作一个运算符,这个参数用的不多。

    比如下面的例子:

    $string = "i:love:perl";
    $string =~ s/:/*/; #此时 $string="i*love:perl";
    $string = "i:love:perl";
    $string =~ s/:/*/g; #此时 $string="i*love*perl";
    $string =~ tr/*/ /; #此时 $string="i love perl";
    $string = "www22cgi44";
    $string =~ s/(\d+)/$1*2/e; # (/d+)代表 $string 中的一个或多个数字字符,将这些数字字符执行 *2 的操作,因此最后 $string 变成了 "www44cgi88"。

    下面给出一个完整的例子:

    #!/usr/bin/perl

    print"请输入一个字符串!\n";
    $string = <STDIN>; # <STIDN>代表标准输入,会让使用者输入一字符串
    chop($string); # 将$string最后一个换行的字符\n删除掉
    if($string =~ /perl/){
      print("输入的字符串中有 perl 这个字符串!\n";
    }

    如果输入的字符串含有 perl 这个字符串的话,就会显示后面的提示信息。

  • 对脚本进行参数化的好处

    2008-11-02 21:59:42

    可以总结几点:

    1:减少代码量。
    2:可以用不同的值来测试脚本的能力。
    参数化的过程:
    1:用参数替换脚本中的常量。
    2:为参数设置属性和数据源。
    注:只能参数化函数中的参数。并且也不是所有函数中的参数都能参数化。Lrd_stmt只能参数化mpcText
    lr_eval_string可以参数化不能用标准参数化的参数
    参数化CORBA或General_java Vsuer必须参数整个字符串。
    参数的格式要与所录制的脚本相一致,否则脚本可能不能正常运行。

Open Toolbar