发布新日志

  • 华夏银行的异常

    2010-08-15 14:02:17

  • shell小品

    2010-04-01 14:11:13

    需求一个文件有,里面有2个#匹配中间的新建一个文件,已2个#中间的字符命名。

    找到一个结束标记。循环再次查找。最终把一个大的文件拆成无数个小的文件。

     


    svn=$1
    while read line
    do


    if [ -e "$new_file_title" ] ; then

     echo $line>>$new_file_title

            is_spacr=`echo ${line##*cuiweihaha}`
            if [ $is_spacr == 'z' ] ; then
                    echo '========================================================================================================'
            mv $new_file_title /home/admin/cuiwei
            fi


    else


            find_symbol=`echo ${line#*#}`
            if [ -n $find_symbol ] ; then
                    find_end_symbol=`echo ${find_symbol%#}`
                    if [ -n $find_end_symbol ] ; then
                            new_file_title=`echo $line | awk -F "#" '{print $2}'`
                            touch $new_file_title
                    fi
            fi


    fi
    done<$svn
    ~
    ~

  • svn命令

    2008-11-10 16:45:32

    svn在linux下的使用(svn命令)

    刚来公司时同事将电脑安装好了才给我使用,很多东西都不是我亲自动手,这几天我们换了新的电脑很多东西都是我自己动手实现,不容易啊,在使用linux下的SVN时遇到些问题,从网上拷来一篇文章学习了不少东西,保留下来以后好看。

    svnlinux下的使用(svn命令)

    1、将文件checkout到本地目录

    svn checkout pathpath是服务器上的目录)

    例如:svn checkout svn://192.168.1.1/pro/domain

    简写:svn co

    2、往版本库中添加新的文件

      svn add file

    例如:svn add test.php(添加test.php)

    svn add *.php(添加当前目录下所有的php文件)

    3、将改动的文件提交到版本库

      svn commit -m “LogMessage“ [-N] [–no-unlock] PATH (如果选择了保持锁,就使用–no-unlock开关)

    例如:svn commit -m “add test file for my test“ test.php

    简写:svn ci

    4、加锁/解锁

      svn lock -m “LockMessage“ [–force] PATH

    例如:svn lock -m “lock test file“ test.php

    svn unlock PATH

    5、更新到某个版本

      svn update -r m path

    例如:

    svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。

    svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)

    svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

    简写:svn up

    6、查看文件或者目录状态

      1svn status path (目录下的文件和子目录的状态,正常状态不显示)

    ?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

    2svn status -v path (显示文件和子目录状态)

    第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

    注:svn statussvn diff svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

    简写:svn st

    7、删除文件

      svn delete path -m “delete test fle“

    例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”

    或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种

    简写:svn (del, remove, rm)

    8、查看日志

      svn log path

    例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化

    9、查看文件详细信息

      svn info path

    例如:svn info test.php

    10、比较差异

      svn diff path(将修改的文件与基础版本比较)

    例如:svn diff test.php

    svn diff -r m:n path(对版本m和版本n比较差异)

    例如:svn diff -r 200:201 test.php

    简写:svn di

    11、将两个版本之间的差异合并到当前文件

      svn merge -r m:n path

    例如:svn merge -r 200:205 test.php(将版本200205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

    12SVN 帮助

      svn help

    svn help ci

    ——————————————————————————

    以上是常用命令,下面写几个不经常用的

    ——————————————————————————

    13、版本库下的文件和目录列表

      svn list path

    显示path目录下的所有属于版本库的文件和目录

    简写:svn ls

    14、创建纳入版本控制下的新目录

    svn mkdir: 创建纳入版本控制下的新目录。

    用法: 1mkdir PATH…

    2mkdir URL…

    创建版本控制的目录。

    1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增

    调度,以待下一次的提交。

    2、每个以URL指定的目录,都会透过立即提交于仓库中创建。

    在这两个情况下,所有的中间目录都必须事先存在。

    15、恢复本地修改

    svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)revert:

    用法: revert PATH…

    注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复

    被删除的目录

    16、代码库URL变更

    svn switch (sw): 更新工作副本至不同的URL

    用法: 1switch URL [PATH]

    2switch –relocate FROM TO [PATH…]

    1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将

    服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的

    方法。

    2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动

    (比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用

    这个命令更新工作副本与仓库的对应关系。

    17、解决冲突

    svn resolved: 移除工作副本的目录或文件的冲突状态。

    用法: resolved PATH…

    注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的

    相关文件,然后让 PATH 可以再次提交。

    18、输出指定文件或URL的内容。

    svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。

    svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

     

  • GreenAMP 和 BugFree

    2008-08-08 11:06:35

    008-07-31 11:13:49

    ===== 下载 GreenAMP BugFree =====
    1.
    http://chin.blogchina.com/604819.html 下载 GreenAMP Standard Build 050123 (4,732,671 字节)
    2.
    http://bugfree.1zsoft.com/ 下载 BugFree Ver 0.4 (479,572 字节)

    =================================================================

    ===== 解压缩 GreenAMP BugFree =====
    3.
    GreenAMP.rar解压缩到 D:\GreenAMP
    4.
    BugFree0.4.zip解压缩到 D:\GreenAMP\Apache\htdocs

    =================================================================

    ===== 配置Apache BugFree =====
    5.
    修改 D:\GreenAMP\Apache\conf \httpd.conf文件中

          Listen 80—>Listen 90

    目的是为了apache其他http)端口不冲突
           ServerName localhost
    à
       
    为:
           ServerName
    15.15.55.15:90
       
    这里 15.15.55.15 是我本机的IP地址。这样做的目的是让局域网中的其他人可以访问

    6. 修改D:\GreenAMP\Apache\htdocs\Include \Config.inc.Sample.php的文件名为àConfig.inc.php

    =================================================================

    =====安装GreenAMP=====

       KISS 0.2各组件的版本:

      Apache 2.2.2 with mod_ssl/2.2.0 mod_php5/5.1.1 OpenSSL/0.9.8a

      PHP 5.1.4 with(mbstring,soap,gd2,pdo,sqlite,firebird,mysql,mysqli,postgresql)

      Firebird 1.5.3.4870

      MySQL 5.0.21

      PostgreSQL 8.1.3

      Zend Optimizer 3.0.0

      Zend Debugger 5.1.0

    ----

      1.如何开始?

     D:\GreenAMP\ 双击menu.bat,程序会根据你的操作系统类型(Win9x,WinNT)产生相应的脚本.

      Win9x平台上生成 程序名称_start/stop.bat这样的文件,因为Win9x没有服务的概念,只能在命令提示行(理解为DOS窗口好了)下运行.

      WinNT平台上生成 服务名称_service_install/uninstall.bat这样的文件,注册成服务,用户可以根据自己的需要注册相应的服务.比如说,如果只需要Apache,就点击apache2_services_install.bat,Apache就会自动注册为服务并启动.

     

      先决条件:

      (a).KISS所在的目录应该尽量简洁,不要有中文,也最好不要有空格,比如放在D:\kiss,E:\greenamp,X:\myserver这些目录是值得推荐的做法.

      (b).确保您的机器上没有安装其他版本的KISS(或者KISS的组件,Apache,MySQL,PostgreSQL,Firebird),因为他们的存在会造成服务名,共享库,配置文件和端口冲突,除非您能熟练的配置和管理这些共存的不同版本.也不要有微软IIS服务器(它会和Apache80端口)

      Kiss的各个组件的默认端口:

      Apache:80

      MySQL:3306

      PostgreSQL:5432

      Firebird:3050

     

      2.menu.bat脚本干了什么

      menu.bat调用init.php初始化kiss套件,主要做这些事情:(a)修改Apache,MySQL,PHP等配置文件中关于路径的选项 (b)如果你使用WinNT平台,程序会自动创建一个postgres用户,如果这个用户已经存在,删除之然后创建 (c)KISS根目录生成相应的批处理脚本.

       除此之外,不再做其他的事情,不向Windows系统目录复制DLL文件,不写注册表.

     

      由于PostgreSQL数据库必须以非管理员权限的用户运行,且必须被安装在NTFS系统上,以免给系统安全造成危害,因此,Win9x下不能使用这个组件;WinNT,需要创建一个postgres帐户来运行这个程序,因此,当您执行menu.bat的时候,就自动创建了postgres用户——即使您并不打算使用这个组件,密码是和当前系统时间有关的一个MD5字串,以免被恶意的人或者程序猜测到,密码的明文在PostgreSQL_service_install.bat文件里面有,因为注册服务器的时候需要登陆,您可以自行修改它.

     

      3.注册了服务之后如何删除

      每个服务注册脚本都有一个对应的卸载脚本,注册脚本叫 服务名称_service_install.bat(例如Apache2_service_install.bat),对应的卸载脚本是Apache2_service_uninstall.bat,只要双击那个卸载的脚本,就会从您的系统中取消这个服务.

     

      Kiss 0.2Apache2.2.2有个bug,执行Apache2_service_uninstall.bat,会在net stop apache2的时候出现一个错误,跳出两次Windows的发送错误报告的窗口,这个经过我反复测试,暂时无法解决.您可以不用理会它,因为卸载脚本还会正常执行,Apache2服务会被停止和卸载.

     

      4.如何卸载整个KISS

      很简单,备份您的数据,点击卸载脚本卸载您注册的服务,然后删除KISS目录就行了.

     

     

      TODO

      ----

      计划中的KISS 0.3

      (a).增加Perl,Python,Java等语言的支持.

      (b).增加一些成熟流行的开源代码包,比如PHPphpmyadmin,adodb

      (c).免费的第三方数据库管理软件,比如EMS家族的MySQL,Firebird,PostgreSQL manager

     

     

    =================================================================

    =====启动bugfree=====

  • 关于浏览器的自动刷新的快速切换问题

    2008-06-13 10:03:28

    由于流量器的不稳定,以及分布式处理的特点,基于BS结构的应用系统就会有许许多多奇怪的问题,下面就举一个比较常见的不常见问题,希望以后大家在测试到这个地方的时候多关注一下是否也会在你的系统中有类似的情况。

    许多系统有自动刷新的功能,当多级菜单联动的时候,自动刷新功能也就是从上级菜单获得数据并在下级菜单执行查询,由于网络的原因,这中间肯定会有一个时间间隔,也许你的机器比较快网络比较好这个延时很短,也可能你的机器运行很多东西或者网络不好延时很高,这时就有问题了。当延时高的时候,你在快速切换2个选择项时,有可能就向后台传人2个参数,这样就很可能导致系统错误,严重的导致系统崩溃。

  • 使用存储过程再数据库中批量新建数据

    2008-05-12 17:22:38

    create or replace procedure createtable_t_new1(start_num integer,step integer)
    as
      i integer:=start_num;
    begin
         loop
             i:=i+step;
             execute immediate 'create table a1'||to_char(lpad(i,10,'0'))|| ' AS SELECT * FROM example_table '; 
         exit when i>20*start_num;
             
         end loop;
    end;

    根据步长,使用存储过程批量建表

    create or replace procedure createtable_t_new1(start_num integer,step integer)
    as

    begin
         loop

             for i in 1..10 loop
                 insert into 'table_name'
                        select aa.nextval,'neusoft','softcompany' from dual; 
                 
         end loop;
    end;

    使用序列作主键,添加记录

     

     

  • 测试工程师的必备技能

    2008-05-04 11:09:25

    1,熟练使用数据库

        目前测试的大多数mis系统都是基于BS结构,核心的就是对数据库实现各种处理的操作。尤其以金融业,电信业,政府项目最为突出。同时这些行业也是对软件质量要求最严格,一旦出现问题后果将非常严重的,所以测试占有非常重要的比重。作为一名优秀大测试工程师,熟练掌握数据库的技能,可以使你为测试的高效执行有针对性的准备数据。如果系统中使用了大量的存储过程,也可以与开发同步准备测试过程,验证核心算法的正确性。发现问题的时候,如果是数据库异常,通过经验就可以快速的定位问题。更高级的是掌握了数据库结构知识就可以当性能测试时发现数据库设计问题提出合理的意见。展示测试工程师的技术水平。

    2,熟练使用办公工具

       excel是一个非常强大的基于表格操作的办公工具,到底强大到什么程度,个人感觉深不可测,只有你想不到没有他做不到,那么面对这么强大的一个工具,我们应该用什么样的态度面对他呢,那就是够用就好,仅仅是够用这一条就已经可以大大的提高你的工作效率。对于该工具我认为有2个方面在工作中发挥较强的作用。1,就是日常办公的统计,比如bug统计分析的表格,周报日报工作量的统计,问题数量的曲线分析等等,excel都是非常好的帮手,可以说目前绝大多数的此类功能都是使用excel实现的,那么我们学什么呢,就是更好的利用他的功能,可能很多人都见过报表,但是就有的人制作的表格方便,简单,直观,功能强大,有的人制作的表格就是复杂,混乱,功能简单,我们每个人都应该向着前者看齐。同时excel还有一个强大的应用方向,就是快速建立有大规模数据计算系统的对等测试工具。当遇到一个系统里面包含大量基于数据的数学计算,而且各个计算项之间有复杂的关系,那么通过手工计算很显然是费时费力成本很高效果不好的一种方式,简单的使用计算器也不能达到很好的效果,因为当其他数据计算基于前面数值计算结果的时候计算器就很难做到,但是使用excel就可以很容易的解决以上问题,并且execl拥有简单的VBA环境,VBA是一个简单,快速,方便的开发工具。灵活使用该工具,可以在很短的时间内建立与系统相等的计算工具,并且他可以保存自由。

    3,扎实的测试理论基础

    4,了解开发语言和过程

     

  • 简单杀oracle进程

    2008-04-28 17:24:07

    操作oracle时经常遇到数据库死锁的情况,下面就教大家快速简单的杀掉死锁进程。

    1,查谁被锁住了

    SELECT * FROM V$DB_OBJECT_CACHE  where ōwner ='所属用户名'

    将会看到改用户所有的操作和操作的表

    2.通过他的name字段去查改进程的sid

    SELECT * FROM V$ACCESS WHERE ōwner ='所属用户名' and name='操作名称或者表名'

    3.根据查到sid去查serial#,spid

    SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='上一部查到的sid'

    SELECT SPID FROM V$PROCESS WHERE ADDR='刚才查到的PADDR';

    4.杀进程

    1,oracle

    ALTER SYSTEM KILL SESSION 'sid,serial#;

    2,操作系统进程

    KILL -9 刚才查出的SPID

    简单吧 

  • 关于用户名密码的测试方法

    2008-04-23 10:57:25

       别小看了这个用户名密码这么简单的输入框。可测试的内容还是很多的,并且引发的问题也有很多种类。下面就说一说他的测试方法。

        首先要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功,然后关注规约中的各种限制,比如长度,大否支持大小写。再有就是考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_“,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注

  • 新开的空间,欢迎各位同行光临,留下宝贵意见。我也是测试

    2008-04-03 13:20:30

    新开的空间,欢迎各位同行光临,留下宝贵意见。我也是测试