发布新日志

  • “忙”不全是借口!

    2012-08-20 20:26:30

           好久没有来这个小空间写点东西了,4年了,真是太“忙”了。
        
           今天利用查资料的机会,回想起了用户名和密码,再次拉开了我的这个小空间,明显多了很多足迹。有些可能是路过“打酱油”的,有些可能获取有些有用的信息。总之,我觉得之前留下的一些信息还是值得的。也激发了我应该继续多来看看,多来打扫打扫我的空间的想法。
     
           4年了,真的是太忙了!
     
           可能还要再忙4年,但接下来的4年,我希望能不再以忙为借口,当然也不全是借口。
     
           好了,我要找点性能测试的资料了,重拾4年前的旧业,好好“忙”一番了。
     
           请随时关注我的一些信息吧。
  • 如何调整基于存储的磁盘

    2008-09-29 20:53:30

    以下操作基于IBM DS4700存储设备,该设备为双控制器,总容量为15TB1个扩展柜,总物理磁盘数量为55块,每块315GB;根据需求对其做了RAID 5,且分为2个存储组,每个LUN大小为615GB。而其,同时为6个主机组(AF)提供服务,每主机组平均分上述LUN

    某用户有两台IBM P55A小机(CD),其中D挂了上述存储的4LUN。现在,该用户提出如下需求,要求把D4LUN拿出一个给C

    当前的情况是,C主机没有HBA卡,而6个主机组中的A机器(CD以外)上有一空闲HBA卡。

    针对用户的需求,特执行如下操作步骤:

    1)  A机器上将HBA卡相关设备信息删除,相关命令如下:

    A) 首先,确认即将拆卸的HBA卡的名称及相关配置信息

    #lsdev –Cc adapter——假设名称为fcs0

    #lsattr –El fcs0——记录fcs0MAC,假设为XXX

    B) 确认后执行删除操作

           #rmdev –dl fcs0 –R

    C) 确认是否删除成功

           #lsdev –Cc adapter——fcs0已消失

    2)  关掉A机器,等进入待机状态(电源灯绿闪),断掉物理电源,然后将HBA卡拔下;

    3)  关掉C机器(过程同(2)),然后将HBA卡插入某PCI插槽,并将光纤线连接;

    4)  启动C机器,更新、确认新添设备信息,命令如下:

           #cfgmgr –v

           #lsdev –Cc adapter——确认已识别出fcs0

           #lsdev –C|grep dar——确认有几个RAID组提供服务,如果有多个,则需删除该设备信息并重新添加(命令同(1)中的C步骤)

    5)  进入D机器,删除即将分配给C的磁盘,相关命令如下:

           #lspv——列出了hdisk0hdisk3,并准备将hdisk3分出去

    A) 首先,记录hdisk3的标识号(由IEEE......开头的一行标识),命令如下:

    #lsattr –El hdisk3——假设标识号为YYY

    B) 如果hdisk3未在卷组中,则直接执行如下命令,删除该磁盘:

    #rmdev –dl hdisk3

    C) 如果hdisk 3在卷组中(假设是vg001),则需先从该卷组中将其移除,相关命令如下:

    #varyoffvg vg001

    #rmdev –dl hdisk3

    (有时,如果hdisk3上以创建文件系统,则需先unmount该文件系统后,上述操作才可成功)

    D)再次确认删除成功,命令如下:

       #lspv

    6)  第(5)步执行成功后,进入存储管理界面,添加新主机组C,同时会识别到其上的HBA卡(名称为XXX),添加成功后进入下一步;

    7)  查看D主机组所挂LUN中那个LUN的标识为YYY,将其移除;移除成功后进入一步;

    8)  将刚被移除的LUN添加到C主机组中;

    9)  C机器上更新、确认设备信息,相关命令如下:

           #cfgmgr –v

          #lspv——如果添加成功此时会在原有磁盘基础上再增加一块新磁盘;

          #lsattr –El newdiskname——确认磁盘信息为新添加的磁盘,如果一致则标识添加成功。

        然后,用户即可使用新添加的设备。

  • RAID的入门

    2008-09-20 17:21:38

        做项目过程中接触到了存储的一些知识,从网上查了点关于RAID的资料,希望对同样刚入门的朋友有点用吧。

    一、什么是RAID?
        RAID(Redundant Array of Inexpensive Disks)的概念源自1975年由Patterson、Gibson和Katz这三位工程师发表的题为《A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列方案)》的论文。其基本思想就将多个容量较小的、相对廉价的硬盘驱动器进行有机结合,使其性能超过一只昂贵的大硬盘。

    二、RAID技术规范简介
       RAID技术主要包括RAID0~RAID7,它们的侧重点各不相同,现一一列举如下:

       1)RAID 0
         连续以位或字节为单位分割数据,并行读写于多个磁盘上,具有较高的读写传输率,但没有数据冗余,还不能算是真正的RAID结构。RAID0只是单纯的提高性能,没有数据的可靠性保证,其中一块儿磁盘出现问题会影响到所有的数据,因此,RAID0不适用于对数据安全性要求比较高的应用。

       2)RAID 1
         它通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID1可提高数据读写性能。但是单位成本最高,而具有较高的安全性和可用性。当一块磁盘失效时,系统可以自动切换到另一块磁盘上进行读写,而不用重组失效的数据。

       3)RAID 0+1
         也称为RAID 10标准,即RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。

        4)RAID 2
         将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。

        5)RAID 3
        它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

       6)RAID 4
        RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。

       7)RAID 5
        RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

       8)RAID 6
        与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。

        9)RAID 7
        这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。除了以上的各种标准(如表1),我们可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。

  • Linux下的“chmod”和“chown”命令

    2008-09-17 22:09:53

    本文大部分摘自网络,首先感谢资料原始整理者。

    1、chmod命令
        语法格式:chmod [-cfvR] [--help] [--version] mode file...
        描述:Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以控制档案如何被他人所存取。
        mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
    -c : 若该档案权限确实已经更改,才显示其更改动作
    -f : 若该档案权限无法被更改也不要显示错误讯息
    -v : 显示权限变更的详细资料
    -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
    --help : 显示辅助说明
    --version : 显示版本

    范例 :
    1)将档案 file1.txt 设为所有人皆可读取 :     chmod ugo+r file1.txt
    2)将档案 file1.txt 设为所有人皆可读取 :     chmod a+r file1.txt
    3)将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :                               chmod ug+w,o-w file1.txt file2.txt
    4)将 ex1.py 设定为只有该档案拥有者可以执行 :  chmod u+x ex1.py
    5)将目前目录下的所有档案与子目录皆设为任何人可读取 :   chmod -R a+r *

    此外chmod也可以用数字来表示权限如 chmod 777 file
    语法为:chmod abc file
        其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

    r=4,w=2,x=1
    若要rwx属性则4+2+1=7;
    若要rw-属性则4+2=6;
    若要r-x属性则4+1=7。

    范例:
    1)chmod a=rwx file 和  chmod 777 file  效果相同
    2)chmod ug=rwx,o=x file 和 chmod 771 file 效果相同
    3)若用chmod 4755 filename可使此程式具有root的权限

    2、指令名称 : chown
    使用权限 : root

    使用方式 : chmod [-cfhvR] [--help] [--version] user[:group] file...

    说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才有这样的权限。

    把计 :

    user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)--help : 显示辅助说明--version : 显示版本

    范例 :
    将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
    chown jessie:users file1.txt

    将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
    chmod -R lamport:users *
    -rw------- (600) -- 只有属主有读写权限。

    -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。

    -rwx------ (700) -- 只有属主有读、写、执行权限。

    -rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

    -rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。

    -rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。

    -rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。

    以下是对目录的两个普通设定:


    drwx------ (700) - 只有属主可在目录中读、写。

    drwxr-xr-x (755) - 所有用户可读该目录,但只有属主才能改变目录中的内容
    suid的代表数字是4,比如4755的结果是-rwsr-xr-x
    sgid的代表数字是2,比如6755的结果是-rwsr-sr-x
    sticky位代表数字是1,比如7755的结果是-rwsr-sr-t 

  • 可怕的“广播风暴”

    2008-09-17 19:55:37

    (一)悲惨遭遇

        又忙活了好几个小时,再次被“广播风暴”雷倒!

        从下午开始,我们技术平台的网络总是出现时断时续的现象,快下班时干脆彻底“崩溃”了。首先是埋怨核心交换机——北电的8600系列,无果;接着,埋怨平台网络管理之混乱,亦无果;最后,埋怨自己平时没做好管理工作……总之,还是静下心好好troubleshooting吧。 经过反复实验,发现一个规律,在重启核心交换机后,起初可以联通外网,可没过1分钟立即被“雷倒”。

        根据经验和北电机器的特性(不知其他核心设备是否也有这个特性,就是一发现异常包就启动自保护,就是所有模块自失效,对外就表现为网络无法联通,内网也一样),觉得是内网某个VLAN有异常包。两个机房各有一台核心,且各自连着2~3个VLAN,而我们平台网络拓扑有个独到之处就是能否与外网联通,由此两个核心机的通信链路决定,且是单链路,其中任何一台出现上述自失效都会导致整个平台网络“瘫痪”。那如何断定是哪台设备?时间仓促,就想了个苯办法——挨个试吧。 又考虑到涉及到的VLAN较多,苯办法也不能真的笨到没有策略的挨个试,还是先从最有“嫌疑”的VLAN下手。这两天为了一个测试项目,部署了一个新的测试局域网,而其中一个VLAN被波及较多。好,就先从它下手了。咦?“帅猫碰到一个漂亮老鼠啦”,断掉第一个VLAN后,其他VLAN即刻可以与外网联通,且比较稳定。经进一步排查,发现原来这个VLAN里形成了一个环路,导致了“广播风暴”。 整整2个多小时,偶的电话被领导雷暴,终于找出根源了——一个不经意的误操作,也亲身领教了“广播风暴”的威力。

    (二) 那什么是“广播风暴”呢?

        简单的讲,当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。

    (三)“广播风暴”的成因

        1、网络不正确的设计和规划。   
        2、网络设备或者设备的损坏;HUB做为广播设备本身容易导致;网卡或者交换设备的损坏也可能产生广播风暴。   
        3、网络环路;路由配置错误,或者在没有启用STP的交换设备上出现“两端”同时接入错误。   
        4、其它:网络病毒本身具有感染后向网内大量扩散传播的特性,也可导致广播风暴。

    (四)预防和抑制“广播风暴”
        1、在局域网中安装WSUS补丁服务器,保证局域网所有计算机都能及时打上最新的补丁。   
        2、最好在局域网内安装网络版的防毒服务器,如无条件这,起码也得保证单机版的防毒软件的病毒库是经常更新的。   
        3、检查每一台计算机的网卡、网线和交换机的每一个端口,检查是否有故障。   
        4、当广播风暴发生时,观察交换机的指示灯不啻为很好的方法,可直接观察网络连通性及网络流量。     要避免广播风暴,可以采用恰当划分VLAN、缩小广播域、隔离广播风暴,还可在千兆以太网口上启用广播风暴控制,最大限度地避免网络再次陷入瘫痪。当端 口接受到大量的广播、单播或组播的包时,就会发生广播风暴。转发这些包会导致网络速度变慢或超时,在交换机上借助对端口的广播风暴控制可以有效避免硬件损 坏或链路故障导致的广播风暴的网络瘫痪。   

        根据经验,90%以上的网络广播风暴是病毒所致,因此,在局域网中配备防病毒系统,购置IDS入侵检测系统、网络流量检测工具等,以加强网络 病毒的防治,加强对网络线路运行状态的监控,及时发现和处理网络上的异常流量和病毒攻击等问题,并制定计算机安全管理制度,确保网络线路的正常运行。

  • 性能测试与“并发用户数”关系的最新体会

    2008-09-10 10:34:24

         文章的题目源自在一个培训课程上,准备请教夏老师的一个疑问。问题简述如

    下:“并发用户数如何计算才能反映系统业务高峰期时的并发用户,及它与思考时

    间的关系。

     

    一、所获得的解释大体如下

    并发用户数可从下述途径获得:  

    1)  生产报表、系统日志;     

    2)  使用80/20原则计算;

    3)  使用5%20%经验值获取。

    性能测试中“并发用户数”一般不做为一个确切的考察指标,其不如“吞吐量”、“响应时间”更有意义。因为性能测试主要还是考察服务器端的性能表现,而服务器端的性能表现随其负载的不同而有不同的表现,此所谓的负载可以用不同的“并发用户数”来模拟,但也跟这些并发用户发送请求的频率也有关系,而这个频率与“思考时间”、“Pacing”时间都有关系。因此,出了测试目的是符合性验证的,“并发用户数”不如“吞吐量”、“交易成功率”、“响应时间”更有参考价值。

     

    二、个人理解:

    我觉得,真实业务中的“并发”有个绝对并发和相对并发之分。一般的“并发”测试,目的主要是考察系统运行过程中处理“死锁”、“资源挣用”的能力,反映在实际业务中,可以是多个用户同时做同一个操作。而很多“性能测试”的目的不仅仅出于考察系统处理“并发”的能力,而是全面考察处理各种业务请求的能力,或者考察“吞吐量”,此时更多的是指“相对并发”,反映在实际业务中就是多个用户同时做不同的操作。而此时服务器端能及时响应这些请求吗?在单位时间内能响应多少请求?服务器端资源消耗又如何呢?这些能力表现才能更好的体现服务器端的性能状况,也是可以做为验证、考察、定位服务器端性能能力、性能瓶颈的最好参考。而此前所说的,这些多用户,是否同时,或以什么频率向服务器发请求,都是可以通过我们的测试工具进行设置、模拟的。

     

    三、总结:

    1)               如果测试目的是符合性测试,并发用户数可根据调查或推算选取,但不要做为反映系统处理能力的数据,最终结果中还要通过与并发用户数对应的“吞吐量”、“响应时间”来体现。小技巧:如果lincense限制了并发用户总数,可考虑降低并发用户数,并将思考时间、步间隔时间调整,只要达到服务器端所能承受的压力即可。

    2)               如果被测系统是银行、金融系统,该类系统更关注系统业务处理能力,因此,还要用“吞吐量”来衡量。

    3)   如果测试目的是压力或确定性能瓶颈的测试,那么更多的是利用并发用户数和思考时间配合解决给服务器端制造尽可能大的压力的目的。

  • LoadRunner使用技巧——在UNIX平台安装 generator

    2008-09-09 23:59:50

        我们在做性能测试的时候,可能遇到过这样的障碍——负载生成器数量和处理级别有限,无法模拟执行方案中预订的虚拟用户数。那该怎么办呢?解决方案之一就是由处理级别更高的小机充当负载生成器(前提是您有小机)。

        LoadRunner设计者考虑到了这种需求,因此提供了LoadRunner generator for UNIX(HP-UX、AIX、Solaris、Linux)的解决方案。安装步骤如下:

        1)将LoadRunner generator for UNIX安装程序传到目标小机某目录下;

        2)运行install.sh安装脚本;

        3)配置与目标UNIX系统相匹配的shell环境变量;

        4)启动agent_demaon_setup.sh脚本;

        5)在Controller里添加目标UNIX小机,并设置UNIX Environment选项页中的“Shell Setting”项,勾选“Don't Use RSH”,然后,测试连接。

        如果在Controller的Generator里识别到目标UNIX小机,则说明配置成功。

  • Linux下C编程工具简介(1)

    2008-09-09 23:46:36

        本人准备利用业余时间学习Linux下的C语言编程。本文是入门,主要整理于网络技术文档和一些免费电子书,首先感谢前人的心血。

        Linux各发行版本中包含了C、C++的编程及调试工具。

    1)什么是C语言?
        C语言起源于UNIX系统,是由贝尔实验室的 Dennis Ritchie 为了 UNIX 的辅助开发而编写的。

    2)C语言得到广泛应用的原因:
        a、通用性;
        b、执行速度快;
        c、是所有UNIX版本上的系统语言
        C语言在过去的二十年中有了很大的发展。 在80年代末期美国国家标准协会(American National Standards Institute)发布了一个被称为 ANSI C 的 C 语言标准。这更加保证了将来在不同平台上的C语言的一致性。 在80年代还出现了一种C语言的面向对象的扩展称为 C++。

    3)Linux上的C编译器——GNU C
        它建立在自由软件基金会的编程许可证的基础上, 因此可以自由发布。随 Slackware Linux 发行的 GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器。
        GCC的基本语法:
           gcc [options] [filename]

  • 不怕说错,就怕不说!

    2008-09-09 22:47:27

     

        为期两天的测试工具——LoadRunner的培训(第二期)结束了。本以为这次的讲师跟上次是一个,或者水平差不多,故抱着去学习人家的讲课风格、如何活跃课堂气氛为目的去“捧场”了。

        第一个猜测被打破,本次讲师换了。可我去听课的初衷却没有随之改变,改变此初衷的却是课堂之上与老师互动过程中,老师说的一句话:“不能怕说错了,就怕你不说出来你的想法!”

        是呀,其实这句话就这么简单,也许你也在某处听过,也许你也能给你的弟弟、妹妹、新来的同事说过,也许你觉得就这句话不值得花这些时间写出来,还占服务器资源。但我觉得,就是这么一句看似简单的话,你能做到吗?大家都能做到吗?我们中国人都可以做到吗?说到这里,可能很多朋友不愿意听了,至于升级到“中国人”的字眼吗?我还是说,值得!这是我们中国人几千年的诟病,是老祖宗遗传给我们的遗憾。为什么这么说,是含蓄?是矜持?是虚伪?还是……其实很简单,不敢面对现实。错了就是错了,败了就是败了,知道就是知道,不知道就是不知道!错了不怕,这次错了我下次改正;败了也不怕,下次我会竭尽全力赢回来;知道就说知道,没必要谦虚;不知道也承认,我可以虚心学习,以弥补这块知识的欠缺,下次我就知道啦。

        但是,你别不说!你不说别人怎么知道你的想法?怎么让别人针对你的需求给出合适的解决方案?怎么达成共识或形成争论?一个简单的例子,为什么我们有些朋友学一段时间外语后,可顺利读懂或写出一些专业的技术文档,可以大体听懂外国友人所说,但自己却冒了一头汗也挤不出一个单词。他可能会埋怨没有好的语言环境,这是根源吗?再想想为什么李阳推崇“疯狂英语”,你就应该明白李阳老师的用心了。对,说出来,有声的读出来,甚至是喊出来,这样不仅锻炼了自己的表达,还提高了自信心。

        再延伸些,我们做技术的,尤其是做测试工作的朋友,更要有这种精神,更要注意及时沟通、交流的重要性。多与同行、跨行的朋友交流,别怕人家笑话,更别怕说错。勇敢的说出你的观点,形成讨论,受益的不仅仅是你自己!

  • LoadRunner 脚本录制无法激活IE问题解决

    2008-04-17 15:57:18

    今天安装完LR 9.0后录制脚本,遇到了无法激活IE的问题,网上有位仁兄提出了如下解决方案: 1)系统属性,高级选项卡下,性能里面,单击设置按钮,修改数据执行保护为“只为关键windows程序和服务启用数据执行保护”,然后,重启; 2)IE6->工具->internet选项->高级 ,把"启用第三方浏览器扩展"前面的勾取消掉,再"确定".重启一次IE也许可以解决; 3)lr本身的稳定性,再加上在系统中安装软件时有可能会将其注册表修改掉,尤其是安装dotnet2005的时候,导致lr录制脚本时不能弹出IE页面。其实单就这个问题来看,主要是LR的注册信息被修改,无法找到IE路径。如何重新注册LR呢?在lr的安装目录(例如D:\Program Files\Mercury\LoadRunner\bin)下,单击register_vugen.bat文件,注册信息被重新改写了。最后,重启。上述方法我采用了第一个,重启后问题解决。
  • LoadRunner 虚拟IP操作步骤

    2008-04-13 14:36:31

    1、设置虚拟IP地址
    load Generator机器必须使用固定的IP,不能使用动态IP,且确定网络中不冲突的IP地址操作步骤如下:
    打开:开始-〉程序-loadrunner-tools-ip wizard如下图:


    说明:增加新IP选择第一项;使用保存的文件增加IP选择第二项;释放已经设置的IP选择第三项。
    2、点击下一步

    此步让输入web serverIP地址(也可以不用输入),不输入,直接点‘下一步’,如图:

    说明:使用remove按钮可以删除选定的虚拟IP
    add按钮,如图:

    说明:‘检查新IP是否已经存在’选项并没有起作用;根据输入的IP的第一个值和数量,自动添加到虚拟IP列表中,例如:192.168.67.140  4,则增加的虚拟IP是:192.168.67.140192.168.67.141192.168.67.142192.168.67.143
    ok按钮,如图:

    点“完成”按钮,如图:

    说明:使用Save as…可以将本次增加的IP保存成.ips文件,下次再使用时就可以直接选择此文件了。点‘OK’按钮即可。现在需要重启计算机。

    (重新启动计算机后,设置的虚拟IP都生效了,此时使用ping会发现都能ping通,并且本机的IP也被改成了第一个虚拟IP地址。确认虚拟IP是否都生效的方法:在运行中输入cmd,在命令窗口录入ipconfig/all,然后就能看到已经生效的所有IP)

    3、使用虚拟IP(以手动方案为例)
    controller中,选择 Scenario-Enable IP Spoofer,此项设置允许使用IP欺骗。Generators按钮,设置虚拟用户生成器,将虚拟IP地址都添加进去,并连通。如图:

    连接成功的虚拟用户生成器会在工具栏中显示,如图:

    完。

     

     

  • HP-UX shell简介及查看以前命令的方法

    2008-03-04 13:20:03

    HP-UX shell简介及查看以前命令的方法

    b shell和bash其实并不是一回事.
    bsh全称是Bourne-Shell,是最古老的shell,没有历史命令功能.
    bash全称是Bourne Again Shell,是在b-shell的基础上发展起来的,具有命令历史功能.linux的缺省shell就是bash.
    hpux只要b shell(/usr/old/bin/sh),没有bash shell,
    HP默认的shell是Posix Shell(/usr/bin/sh),具有b shell的全部功能,另外还综合了csh和ksh的一部分特性.
    HP的posix shell支持命令历史,只要在.profile中加上HISTFILE环境变量和set -o vi即可.  
     
    使用时 按Esc,然后按j/k即可回滚历史命令。

     

    转自(CU),感谢愿LZ

  • 需求捕获中的注意事项

    2008-02-20 09:40:05

     做过软件的人都听过这样的抱怨:需求变化太快,软件系统经常要修改,都连续加班几个星期了......

        你是否也遇到过这样的问题呢?

        首先,问题的根源——用户需求不断变化。

        很多需求分析人员都有这样的经历,在捕获需求时,根据客户的阐述,做了记录,然后开发出了系统,客户却说很多地方不符合他们的意思,要求修改。

        我们分析一下捕获需求过程中存在的问题。——客户很可能对软件方面的知识知之甚少,他并不知道你想了解什么。

        比如说,一个业务流程,从业务逻辑到能转化成软件具体实现很可能会有问题。这就是所说的信息化过程中需要进行的业务改造。因为能输入计算机,并输出结果,不一定是能进行形式化处理的内容。这也是很多企业员工抵制信息化的原因之一。因为信息化会导致人的因素会被相对削弱,他们的工作过程也会完全被透明化。

        因此,我们就一定要让客户知道你要知道的是什么。

        如何做到呢?

    • 对于产品类的项目,你的客户不是一个,那么就要广泛的去征求意见。“需求调查问卷”通常对全面了解客户需求有一定的作用。
    • 对于特定客户,需要和他们直接沟通交流。

        和客户交流要注意方式方法,不能盲目约见,下面是一些注意事项

    一、 交流前准备充分

        通常,与客户会面前的问题列表准备时间要远远多于会面的时间。通常客户在连续和你交谈2个小时之后,就会失去热情和耐心,这是大部分人的共同特点。所以充分的准备工作很重要。

        如果你去客户那捕获需求,通常客户会说,我需要做一个什么样的系统,然后我可以用它来做这个,那个,还有那个......,然后就不知道该说什么了。这时,你一定要拿出事先准备的问题列表,针对每个大的功能的每一个功能点进行提问,一个都不能放过。对非功能的需求也同样不能放过,如客户需要的系统至少连续运行多少小时不出问题,系统在若干数量的访问者访问时的响应时间范围等。

       如果你在会面前没有对客户提供的资料,表格等进行全面研究,对客户需求就不可能调查全面,你可能需要反复去约见他,这样你会给客户留下工作效率低的印象,他对你会逐渐的感到厌烦,对你未来的工作表现会失去信心。

    二、让客户打开话匣子

        对客户进行提问,引导客户说出他们的“需求”,是非常关键的。

        有一些人通常会问这样的问题:“你们的工作流程是什么样的?”,这中问题是非常经典的无效问题。

        当你向客户提出问题的时候,你可以先进行换位思考,如果有人问你这个问题你该怎么回答呢?是不是很好回答呢?如果连你也觉得这个问题并不好回答时,就需要考虑换个问法了。

        通常人们在谈论自己很熟悉的东西时,都会有说不完的话,对于客户自己每天做的工作,他为什么没办法对你谈呢?

        问恰当的问题,问能让客户打开话匣子的问题,你就胜利了。

        这时你会面前的准备工作就显得尤为重要了,你要针对他们要做的软件的功能,一部分一部分的问,不能着急,要深入,并细致,对于他们如何处理这些事情的操作习惯等都要重视,因为要改变他们的习惯,让他们适应你的软件的一种新的操作方法通常是会降低客户满意度的,甚至他们会要求你进行修改。

        对于你对某些功能的猜想和假设,也一定要问客户,是不是根本就不需要,客户有时会碍于情面不好意思说出你的想法是没有必要的或是错误的,这时你一定要足够敏感,并勇于否定自己,这样会减少不必要的开发工作,也会给客户留下你很尊重事实的良好印象。

    三、珍惜客户的时间

        和客户面谈时特别要注意一点,就是千万不能浪费客户的时间,让他觉得非常无聊,这是捕获需求最大的忌讳。

        一旦你犯了这样的错误,你再想约见他就难了,他很可能不愿意再和你会面了。尤其是企业中的领导,他们通常是日理万机,能抽出时间和你会面,你应该感到很荣幸,因此要格外珍惜会面的时间。

        这也是很多作需求的人员常常抱怨的问题,“客户经常没时间见我,我有什么办法”,如果你遇到了这类问题,你一定要反省一下自己,是不是曾经犯过这样的错误,下次一定不要再犯了。

    四、搞清能正确回答问题的人

        不同的问题需要问不同的人,需求中有很多是细小的操作级别的问题,也有很多是关乎全局的问题,这就要求一定要搞清楚什么问题去问什么人。

        很多捕获需求的人员抱怨说,“客户答不上这些问题,他们自己都不知道要怎么做”,如果你碰到了这种事情,就要反省一下,你问对人了吗?

        客户中有一些是大干部,有些是中层管理人员,还有操作人员。对于操作细节上的问题,一定要去问那些负责操作的人员,他们会更清楚每个步骤需要怎么去操作,如果你去问大干部这些问题,你通常会被搪塞,或者以工作太忙,还有其他得事等原因被打发掉。

        对于关乎全局的问题,操作级别的人员给出的答案通常是不权威的,即便他们回答了你,你也一定要去大干部那里确认一下,再开始开发工作,否则你会后悔的。

    五、发挥原型的效力

        原型对于提高客户对软件的认知程度有很好的效果,他能使客户对软件有一个直观的认识,面对原型,他们可以更好地提出他们的想法和意见,尤其对那些对软件缺乏认识的客户。

        对原型的修改,再确认,最后得到稳定的原型,这些工作会让需求更稳定,减少很多实施工作中的反复修改工作或者返工。

    六、充分利用需求确认会议

        需求确认会议通常由全体涉众(利益相关人)参加,这可是个确认需求的难得的机会,大家能聚在一起,这样的机会其实很难得,所以一定要珍惜。

        在这种会议上,一定要先针对全局性的问题(与大家都相关的问题)进行交流,千万不要针对部分人感兴趣的问题讨论个没完没了,那样的话,不感兴趣的人会走开的,那样你再想征求与他们相关问题的意见时就找不到人了。对于只跟个别部门或人员有关系的问题你可以单独找时间根他们讨论。

        而且一定要对某些有分歧的问题找到解决方案,对与多数人利益相关的问题找出大家都能接受的解决办法。

    (文章主要内容摘自UML组织,感谢原作者!)

  • 项目管理人员达到最高层所需的八大能力

    2008-02-19 10:09:51

    现在是作一名项目经理的黄金时机

      首先,根据调查显示,越来越多的企业正在这个新兴的领域里寻找和聘用具有这方面经验和教育背景的人士。再者,一旦被企业聘用,这些极具潜力的新手将获得很多的发展机会,这其中包括项目管理资格培训课程、国际调遣机会以及他们所希望获得的学位课程。通过提供这些机会,企业不仅招聘到了最好和最聪明的人才,还能保留这些宝贵资源,使人才不会只为了更高的薪水而跳槽。

      另外,许多研究表明, 这些课程要远比薪水更能留住人才。总而言之,现在世界上很多誉满全球的公司正在向成千上万的人士提供职业发展机会, 即在项目管理方面提供全面发展的课程。

      项目管理人员达到最高层所需的八大能力

      项目经理的升迁途径大多是沿着如下的台阶:

      项目副经理——>项目经理——>项目策划经理——>项目总监——>项目副总裁

      这当中,有着项目经理的很多"共同的"基本能力。

      一、项目管理的"螺帽和螺栓"(基础知识)

      显而易见地,基本的项目管理知识是每一个行业内人士所必须掌握的,大多数企业使用项目管理知识结构的九个方面来定义这些"螺帽和螺栓",而且通过要求这些从业人员获得PMP资格证书来检验他们是否掌握了这九个方面的知识。

      另外,企业要求这些人员在不同的情况中的各种项目中表现和运用这些知识。很多项目经理是从在项目团队中工作开始的,然后发展成为团队领导,实施和管理小的项目,并逐渐接手规模更大和责任更大的项目。 除了要求掌握这些"螺帽和螺栓"之外,企业还寻求两方面的经验:

      1、使用工具的经验。现在任何从事项目管理工作的人都应该能够使用一些相关的软件工具(不必指定是哪一种)。

      2、使用某些工作方法的经验。他们应该曾使用过一些工作方法,不论它是一个具体的项目管理流程或系统发展模式。

      二、客户关系和咨询技能

      项目经理们并不应该是只呆在办公室里的技术专家。相反的,他们应该身处客户的第一线,了解客户的需要,并制定和实施满足这些需要的解决方案。相应的,聆听和理解客户需要的能力,以及制定更有价值的解决方案的能力成了项目经理关键的核心能力。但是,许多项目经理并没有掌握这些技能。

      最近的一份美国管理协会的调查报告显示,300多位受访的经理人一致认为他们的项目经理最需要发展的能力有两项:咨询和客户关系技能。近期智越咨询公司的一份研究报告也表明,企业需要一系列的项目管理高级课程。智越的每一个客户都要求我们除了开发各种管理课程之外,还应开发针对项目经理的咨询技能的课程,这些课程不必与项目管理主题有关。可见这些信息清楚地表达了:咨询、聆听以及为客户业务的解决方案提供建议将是项目经理的主要工作,而且他们需要做得更好!

     三、业务和财务技能

      今天的项目经理们不仅要关注技术解决方案,还要能与销售人员一起制定提案。为了成为销售人员的得力伙伴,项目经理需要知道两个重要的业务要素:公司采用何种业务模式将其产品和服务推向市场;支持业务模式的财务情况。

    四、领导能力

      领导能力可以体现在很多方面,项目经理的领导能力最关键的就是要负责让一组的人员做好一个具体的工作。而且,我和我们的所有客户都乐观地相信为了企业的利益这些领导技能是能够被传授,被学会和被运用的。

      领导艺术培训可以采取各种各样的形式,从极端的,例如站在一个热水浴缸里当着你的团队背诗,到普通的,例如参加一次劳动法的培训课程。不论培训的种类或具体培训课程的学习目的是什么,领导艺术培训的终级目的是帮助项目经理领导一个工作小组完成某项工作。另外,领导艺术培训使用的是一种循序渐进的方法,通过让项目经理在一段时间内完成各种难度不同的工作来逐步发展他的领导能力。

      五、“向上销售”的技能

      与在客户交流或合作的过程,往往存在一些潜在或附加的需求,如果能够识别这种向客户销售附加服务或产品的机会,并充分利用这个机会,对企业和对项目都是有重要作用,我们把这种能力称为“向上销售”的技能。

      有趣的是,客户经常期望企业的项目经理具有“向上销售”的技能,我培训过的一个客户曾经告诉我,有的项目虽然进展得较顺利,但他对与项目经理的合作关系挺失望的,你看,与他们合作了这么好几个月,他们竟然从来没有向我们提出任何改进建议。

      有的项目经理们缺乏向客户推销更多的产品和服务的兴趣。他们说,他们不想被看成是“销售”人员。但实际上,客户期望他们带来新的建议来协助其发展业务。事实上不正是项目经理日复一日在现场与客户合作的吗?难道不正是项目经理对客户的业务情况有最深的了解?难道不正是项目经理可能会为客户提出最好的建议来帮助他们提高经营业绩吗?

      六、谈判和沟通技巧

      大多数人一听到“谈判”,就会立刻想到买汽车、房子,或是与客户签定合同协议。毫无疑问,我们需要一些谈判技巧来为买汽车、房产和签合同进行谈判,但我们也需要具备这样的技巧,即把一群想法各异的人引导到一个共同的目标上;与难以相处的客户打交道;以及安抚一位股东的情绪。你可以称它们为谈判技巧、“政治”技巧或“外交”技巧。不论你怎么称呼它们,如果掌握了这些技巧,就可以办成事情,或者在不导致相互敌对的情况下作出让步。

      当然,沟通技巧和谈判技巧就像“手与手套”那样密不可分,在今天以项目为基础的现代企业中,项目经理们越来越多地被要求给企业管理层做项目进展演示。

      对一位项目经理来说,站在有影响力的用户面前演示项目的进展状况,并建议他们继续推进项目或终止项目的能力,就成为影响他职业发展的最重要的能力之一。有些人称这是一块试金石,它决定着职业生涯的终结或更上一层楼。

      七、敢于冒风险

      我所认识的每一位经理都希望他们的项目经理能在工作中承担更多的风险。他们寻找的是能够凭借坚韧不拔精神克服工作困难,并能为了客户的利益而大胆创新的人。不过,他们并不希望项目经理冒不必要的和盲目的风险。这个方面的专业发展将着重于理解风险所包藏的活力,以及使用一整套工具和技巧来识别、回应和控制风险。

    除了风险之外,项目经理们需要在找寻并充分利用机会方面非常警觉。很多经理们认为项目经理没有投入足够的时间为他们自己和企业识别潜在的机会。

      八、策略性的愿景

      企业所寻找的项目经理要具备高瞻远瞩的能力,能够超越他们自身项目的局限,完全的理解项目与公司的业务目标及客户的目标之间的关系。有了这样的视野,项目经理可以看到其他人可能看不到的东西,可以理解一个工作与下一个工作之间的相互关联,以及针对客户没有完全了解的方面提供建议。

    (文章主要摘自:UML软件工程组织,感谢原作者!)

  • 选择CMMI还是CMM

    2008-02-19 09:27:46

     
      入世后,软件企业的国际化进程也随之加快,一些大型软件企业完成CMM认证的同时,也为相当多的中小软件企业带来了希望,但他们在实施CMM的过程中,特别是在向CMM2前进时往往存在很多困惑和疑问。本文特别侧重对处于这一过程的软件企业碰到的各种疑难问题进行答疑解惑。

    一、CMM与CMMI的比较

      CMMI的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。自从1994年SEI正式发布软件CMM以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品和过程开发方面的多个能力成熟度模型。虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:

    • 不能集中其不同过程改进的能力以取得更大成绩;
    • 要进行一些重复的培训、评估和改进活动,因而增加了许多成本;
    • 不同模型对相同事物说法不一致,或活动不协调,甚至相抵触。

      于是,希望整合不同CMM模型的需求产生了。1997年,美国联邦航空管理局(FAA)开发了FAA-iCMMSM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM和软件的SW-CMM三个模型中的所有原则、概念和实践。该模型被认为是第一个集成化的模型。

    1、CMMI与CMM最大的不同点

    • CMMISM-SE/SW/IPPD/SS 1.1版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应地应用SS(Supplier Sourcing)部分。
    • CMMI有两种表示方法,一种是大家很熟悉的,和软件CMM一样的阶段式表现方法,另一种是连续式的表现方法。这两种表现方法的区别是:阶段式表现方法仍然把CMMI中的若干个过程区域分成了5个成熟度级别,帮助实施CMMI的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI中过程区域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。
    • 软件CMM 2级共有6个关键过程区域,在CMMI增加了1个:度量和分析。原来的6个关键过程区域的名称和内容在CMMI中作了部分改进,但是主体内容没有大幅调整。软件CMM 4级共有2个关键过程区域,在CMMI中仍是2个,只是名称和内容有所改进。软件CMM 5级共有3个KPA,在CMMI中进行了合并,改为2个,但主要内容未变。变化最显著的在CMMI 3级上,原有的7个KPA变成了14个,其中原来对工程活动进行要求的KPA-软件产品工程进行了详细的拆分,并结合常见的软件生命周期模型进行了映射。CMMI中新增的过程区域中还涉及到过去未曾提到的内容,比如决策分析和解决方案、集成团队等。

    2、到底是选择CMM还是CMMI主要基于以下几个方面进行考虑:

    • 实施企业的业务特点: 如果企业的规模不是很大,业务又集中在软件开发为主,那么还是软件CMM比较适用。如果企业的规模比较大(开发人员100人以上),并且业务不仅仅集中在软件开发,还包括硬件开发哪怕是硬件代理(采购)都可以考虑实施CMMI。
    • 实施企业对过程改进的熟悉程度: 如果企业已经实施过ISO 9000,并且取得了较好的效果,那么可以考虑实施CMMI。如果企业虽然没有实施过CMM,但是对于过程改进一直比较关注,接受过不少相关培训,甚至能够自发的进行一些过程改进,那么也可以考虑实施CMMI。如果过去没有接触过类似的工作,那么最好先从软件CMM 2级开始,首先建立持续过程改进的思路。另外,软件CMM的要求也比CMMI要稍低一些。可以适当降低实施的难度。
    • 实施企业对过程改进项目的预算: 不论怎样,几乎可以肯定地说,实施CMMI的费用肯定要比实施CMM高出一些。而就模型本身来看,CMMI的2级7个过程区域在内容上并不比软件CMM的2级6个关键过程区域多多少。这样的话,我们完全可以“少花钱、多办事”,也就是说可以采用CMM的实施和评估方法,但可以在过程改进的时候参考CMMI的要求,这样就经济很多。

         (文章摘自http://www.csai.cn ,感谢原作者! )

  • 进入RedHat Linux单用户模式

    2008-02-18 18:25:03

     

    很多初用Linux的朋友可能会遇到忘记密码、或图形界面服务无法启动的情况,解决方法之一就是进入Linux的单用户模式。步骤及方法如下:

    1、用单用户来登录系统

    在GRUB启动后,移动键盘到Linux的启动项;按e键;然后再移动键盘到类似下面的一行,也就是kernel的那行:

     kernel /boot/vmlinuz-2.4.21-27.EL ro root=LABEL=/ quiet  
    
    把光标移动这行后,再按一下e键,进入编辑这行;在行尾条一个空格 ,然后输入 Linux single
    修改后如下:
     kernel /boot/vmlinuz-2.4.21-27.EL ro root=LABEL=/ quiet  Linux single
    

    结束编辑,按回车返回;

    接着我们要启动系统,按一下b键启动。即可进入“单用户模式”

    二、进入“单用户模式”,

    1、使用passwd命令进行密码修改

    2、改变inittab中的启动模式:

    找到 /etc/inittab文件,找到如下一行;

    id:5:initdefault:
    

    把这里的5改为3 ,也就是改成如下的:
    代码:

    id:3:initdefault:
    上述操作在RedHat Enterprise Linux AS 3 u2上实验成功。其他版本操作类似,可举一反三。
    
  • 好的测试工程师应具备的素质

    2008-02-18 16:30:55

    人是测试工作中最有价值也是最重要的资源,没有一个合格的、积极的测试小组,测试就不可能实现。然而,在软件开发产业中有一种非常普遍习惯,那就是让那些经验最少的新手、没有效率的开发者或不适合干其他工作的人去做测试工作。这绝对是一种目光短浅的行为,对一个系统进行有效的测试所需要的技能绝对不比进行软件开发需要的少,事实上,测试者将获得极其广泛的经验,他们将遇到许多开发者不可能遇到的问题。

    1、沟通能力

      一名理想的测试者必须能够同测试涉及到的所有人进行沟通,具有与技术(开发者)和非技术人员(客户,管理人员)的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,不幸的是这两类人没有共同语言。和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上。而和开发者谈相同的信息时,就必须将这些活重新组织以另一种方式表达出来,测试小组的成员必须能够同等地同用户和开发者沟通。

    2、移情能力

      和系统开发有关的所有人员都处在一种既关心又担心的状态之中。用户担心将来使用一个不符合自己要求的系统,开发者则担心由于系统要求不正确而使他不得不重新开发整个系统,管理部门则担心这个系统突然崩溃而使它的声誉受损。测试者必须和每一类人打交道,因此需要测试小组的成员对他们每个人都具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗减少到最低程度。

    3、技术能力

      就总体言,开发人员对那些不懂技术的人持一种轻视的态度。一旦测试小组的某个成员作出了一个错误的断定,那么他们的可信度就会立刻被传扬了出去。一个测试者必须既明白被测软件系统的概念又要会使用工程中的那些工具。要做到这一点需要有几年以上的编程经验,前期的开发经验可以帮助对软件开发过程有较深入的理解,从开发人员的角度正确的评价测试者,简化自动测试工具编程的学习曲线。

    4、自信心

      开发者指责测试者出了错是常有的事,测试者必须对自己的观点有足够的自信心。如果容许别人对自己指东指西,就不能完成什么更多的事情了。

    5、外交能力

      当你告诉某人他出了错时,就必须使用一些外交方法。机智老练和外交手法有助于维护与开发人员的协作关系,测试者在告诉开发者他的软件有错误时,也同样需要一定的外交手腕。如果采取的方法过于强硬,对测试者来说,在以后和开发部门的合作方面就相当于“赢了战争却输了战役”。

    6、幽默感

      在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。

    7、很强的记忆力

      一个理想的测试者应该有能力将以前曾经遇到过的类似的错误从记忆深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。因为许多新出现的问题和我们已经发现的问题相差无几。

    8、耐心

      一些质量保证工作需要难以置信的耐心。有时你需要花费惊人的时间去分离、识别和分派一个错误。这个工作是那些坐不住的人无法完成的。

    9、怀疑精神

      可以预料,开发者会尽他们最大的努力将所有的错误解释过去。测式者必须听每个人的说明,但他必须保持怀疑直到他自己看过以后。

    10、自我督促

      干测试工作很容易使你变得懒散。只有那些具有自我督促能力的人才能够使自己每天正常地工作。

    11、洞察力

      一个好的测试工程师具有“测试是为了破坏”的观点,捕获用户观点的能力,强烈的质量追求,对细节的关注能力。应用的高风险区的判断能力以便将有限的测试针对重点环节。

    (摘自“希赛网”,感谢原作者!)

  • TCP/IP协议全面解析

    2008-02-18 15:56:09

    推荐一个好网站:

    http://networking.ctocio.com.cn/tcpip/

  • 如何判断带宽是否是网络瓶颈?

    2008-02-18 15:51:50

    1.不要过分相信“命令”

      网络带宽是指端到端的可用带宽,绝对不是简单的认为就是自己出口的带宽数值。另外,网络带宽是分两个方向分别来看的,目前大部分骨干以下的链路上下行两个方向可用带宽明显不对称,一般是下行大于上行,而在骨干以上及出口链路上两个方向数据链路的可用带宽比较接近。因此,区别不同方向的链路带宽是必要的。如何得到不同方向的链路在不同的时段还有多少剩余的带宽可供使用、是否拥塞、链路带宽是否可以满足当前业务和将来新业务的开展的基本需要。

      细想一下,我们才发现,广域网里数据包所经过的路由器或交换机的机会会大大增多。而这些路由器或交换机对数据包的转发会形成微小的延迟,多次的微小延迟就会形成积累作用。另外,在广域网上TCP/IP 协议的效率极为低下,比如,分支机构的用户打开存储在总部服务器上一个演示文稿时,这需要在客户端和服务器之间进行多次的重复“握手机制”,即使在高速的广域网联路上,TCP协议的表现也不能让人满意。因为通过三个重复的ACK来判断分组丢失的情况要比超时对网络的影响更多,因此TCP连接会花费大多数时间在拥塞避免算法上。

      我们测试网络连通性的命令主要有ping或tracert,他们往往会受到防火墙和路由设置的限制而无法解决指标测量问题。即使没有这些限制,这些命令结果反映的双向时延也不能说明问题的本质,因为只有上下行两个方向分别单独测量的结果才能表明问题的真实情况。

    2.服务器和程序设计问题

      带宽一般分为瓶颈带宽和可用带宽。瓶颈带宽是指当一条路径(通路)中没有其它背景流量时,网络能够提供的最大的吞吐量。可用带宽是指在网络路径(通路)存在背景流量的情况下,能够提供给某个业务的最大吞吐量。我们通常把这两种带宽的数值表述当作网络管理的要点来看,殊不知很多问题出在服务器和程序设计方面。

      很多企业的Web服务器低效运行的主要原因不是服务器的系统配置不到位,而是Web服务系统没有优化。在连接数量较少的情况下,客户端和服务器都不会有明显感觉,但在数百条同时连接的情况下,Web服务进程的性能局限性就变得非常明显。比较明显的就是许多企业设计用于支持业务流程的Web服务内容,但这些服务都是运行在通用操作系统上,( OS本身并没有优化),而在程序开发阶段也没有对Web服务的功能充分测试,进而限制了Web服务器处理数千条TCP连接的能力。问题的根源在于与输入/输出(I/O)相关的软件架构,而不是RAM容量或CPU的时钟频率。

    3.病毒对带宽的干扰

      近段时间以来,很多局域网出现了大范围的网络中断现象,这大多是因为个别用户计算机感染某种ARP病毒导致。而这种病毒的危害的影响程度往往超出了网管人员的预期,很多ARP病毒可能已衍生新的变种,这些病毒发作时,其他用户不能再通过arp命令查看网关的物理地址,使用相关的Antiarp软件也无法起到相应的作用。

      以财政专网为例,如果网络突然缓慢,在重要数据往来的时间段,留给系统管理员的响应时间只有宝贵的十几分钟、甚至几分钟。而且,蠕虫病毒对网络速度的影响越来越严重,例如“网络天空”等邮件蠕虫病毒,它们导致被感染的用户只要一连上网就不停地往外发邮件,病毒选择用户个人电脑中的随机文档附加在用户的通讯簿上,通过随机地址进行邮件发送。成百上千的这种垃圾邮件有的排着队往外发送,有的又成批地被退回来堆在服务器上。这都造成个骨干线路出现明显拥塞,甚至在蠕虫泛滥的局域网中,瘫痪的事件屡有发生。由此可见,我们在增加带宽之前最好要排除病毒问题。

     4.网络中的压缩技术

      除去增加网络带宽之外,还有一些比较实际的解决办法,例如“压缩技术”。在电信术语中,压缩的定义是:“通过消除相同的或在后续的采样间隔中没有变化的位串,来减少对信息或信号编码时所需的位数量或带宽的技术”。与增加带宽作用相同的包括比较典型的MSR(分子序列压缩)技术。

      MSR技术在广域网数据加速的主要表现为:数据包压缩以后才进行转发。它可以把很多压缩的信息包封装在特定输出信息包中,用来进行广域网传递。通过信息压缩处理,需要传输的数据包的数量大量减少。另外,MSR的分析算法还检测通信中重复的样式,并构造在组织上传输的主要样式的动态词汇,构造全面的知识库,有时也称作“MSR字典”。随着从网络通信延伸和继续,它会了解到更多的样式和相关性,而知识库将不断更新,那些没有用处的样式记录会被重新排列的新样式所替换。采用这种方式,MSR的知识库将与网络的动态语言和通信特征不断保持同步。

    建议

      无限的增加带宽不如合理的分析网络中的应用,部署智能的服务保障体系。我们需要提高对网络流量的监控能力,实现网络流量协议的划分,如:Web浏览(HTTP)、电子邮件(POP3、SMTP、WEB MAIL、文件下载(FTP)、即时聊天(MSN、QQ等)、流媒体(MMS、RTSP)等。针对不同 的网络应用协议进行流量监控和分析,如果某一个协议在一个时间段内出现超常占用可用带宽的情况,就有可能是攻击流量或蠕虫病毒出现。

      再者,针对现有广域网应用,部署QoS也可以起到加速的作用。因为QoS强调网络的充分可控性,即需要对网络资源和用户行为进行严格的约束和控制。至今为止,在IP网络上实现QoS已经有了若干可行的方案,包括IntServ、DiffServ、SCORE、DPS等。在这其中,进入网络工程领域的是基于MPLS的QoS方案,许多企业已经充分将VPN与之同步部署。MPLS是面向连接的,是ATM技术在IP网络内扩展,通过在网络中间节点上维护一定的状态信息,保证分组在网络中流动时的可控性,是电信网络设计思想在互联网中的渗透与融合。

    (转自IT专家网,感谢原作者!)

Open Toolbar