发布新日志

  • TD7.6中英文对照表

    guobin_it 发布于 2007-12-17 12:55:48

    TD7.6中英文对照表

    Defect

    英文

    中文

    备注

    Defect

    缺陷

     

    Summary

    概要

     

    Detected By

    被(谁)发现

     

    Detected on Date

    被发现的日期

     

    Severity

    严重程度

     

    Assigned To

    被分配给

     

    Detected in Version

    被发现的版本

     

    Modified

    修正

    修正Defect的日期

    Priority

    优先级

     

    Project

    项目

     

    Reproducible

    可重现

     

    Status

    状态

     

    Subject

    主题

     

    Descrīption

    描述

     

    Submit

    提交

     

    Attach

    缚上

     

    Thesaurus

    辞典

     

    R&D Comments

    研发人员备注

     

    Actual Fix Time

    实际修改时间

     

    Estimated Fix Time

    估计修改时间

     

    Planned Closing Version

    计划关闭的版本

     

    Select Filter Condition

    选择过滤器条件

     

    Available/Visible Column

    可用/可

     

    Attachments

    附件

     

    Favorite

    喜爱的

     

     

    Requirement

    需求

     

    Estimated DevTime

    估计设计和生成测试时间

     

    Execution Status

    执行状态

     

    Template

    模板

     

    Exec Date

    执行日期

     

    Expected

    期望结果

     

    Duration

    持续时间

     

    Analysis

    分析

     

    Details

    详细资料

     

    Associated

    联合

     

    Current

    当前的

     

     

  • bugzilla安装与配置(Windows+Mysql+Perl+IIS)

    guobin_it 发布于 2007-12-15 22:45:52

    已在下列系统安装运行成功:
    Win2000_sp4,WinXP_sp2

    所需软件:
    Mysql 4.0.18
    Mysqlcc 0.9.3
    ActivePerl 5.8.0
    Bugzilla-2.17.6

    安装过程:

    1.安装Mysql 4.0.18
      安装Mysqlcc 0.9.3

    2.安装ActivePerl 5.8.0

    3.在Mysql中创建数据库bugzilla
      用户名:bugs(必须是bugs)   密码:任意
      运行cmd进入bugzilla目录,运行perl checksetup.pl查看需要更新的perl模块
      到http://www.cpan.org/选Perl modules->all modules,下载not found的模块,
      perl模块有两种安装方法,一种直接解压下载模块,进入其目录,运行
      perl MakeFile.pl
      nmake
      nmake test (可省略此步)
      nmake install
      (安装了VC就会有nmake)
      另一种是运行ppm <module name>,DBD-mysql-2.9002、DBI-1.38最好用这种方式。
      安装完成后可以运行perl checksetup.pl检查是否bugzilla需要的perl模块都安装完毕。

      运行Modules下的installModule.bat(注意安装的路径)
      所有模块安装完成后,运行perl checksetup.pl,如果模块全部安装正确,会在bugzilla目录下
      生成localconfig文件。
      修改localconfig文件
      $index_html = 1 (生成index.html)
      $mysqlpath = "c\\mysql\\bin" (你的mysql\bin路径)
      $webservergroup = "8"
      $db_host = "localhost" (计算机IP)
      $db_user = "bugs" (mysql的登陆用户名)
      $db_pass = '<bugs_password>'(mysql bugs用户的登陆密码)

      再次运行perl checksetup.pl,系统提示输入administrator邮箱,名字,密码。

    4.默认网站->属性->主目录->配置->添加:
      Executable: C:\Perl\bin\perl.exe "%s" %s
      Extension: .pl
      Limit to: GET,HEAD,POST

      Executable: C:\Perl\bin\perl.exe "%s" %s
      Extension: .cgi
      Limit to: GET,HEAD,POST

    5.新建虚拟目录bugzilla
      bugzilla目录属性->文档:
      添加index.cgi至顶

    6.重起IIS

  • 如何从一名测试员转型为管理人员

    charmer 发布于 2007-09-17 22:22:27

    如何从一名测试员转型为管理人员
    http://www.csai.cn 作者:不详 来源:baidu 2007年3月26日 发表评论 进入社区

      如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下内容,至少要做到几点:

      1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)

      2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)

      3. 要熟悉配置管理工具. (如: CVS, VSS等)

      4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代码)

      5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分析出性能瓶颈)

      6. 要熟悉或精通一门语言. (例如: Java, C++)

      7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)

      8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)

      9. 能用英文流利的和老外交流以及往来Email.

      10. 语言表达能力强,表达问题清晰明了.

      11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.

      12. 学习技术的能力要强,能快速上手一个新的技术.

      13. 乐于与人交流.

  • QTP9.2的破解。。。误打。。。

    魔海 发布于 2007-04-21 21:56:04

    从来到现在的公司开始就想将功能自动化运用到产品测试中去,但是因为公司的产品中有一些是flash做的,总是找不到好的办法解决,加上工作比较忙,需要自己处理的事情也越来越多,不过我也没有放弃过这个想法,最近听说Flex的Flex_Automation.zip包中有QTP的插件安装程序,运行后可以和qtp集成,在运行录制和回放时识别出swf中的控件,在用google搜索查了一下,发现集成需要安装qtp9.1以上的版本。。。,于是就到网上下载了一个9.2,可是到处都找不到9.2的破解,于是我就想用9.0的破解程序尝试一下,谁知道一试居然成功,哈,用猩猩的话,我***的真是个天才。。。,flex_Automation.zip包还在下载中。。。期待。。。

  • QTP,WR,LR下载

    erics 发布于 2007-05-24 14:58:10

  • 【分享】TestDirector 8.2 SP2的下载与安装(转载)

    zz0719 发布于 2007-05-25 23:09:15

    偶然找到的 很全面所以转来给大家参考学习


    XP和2000都可以安装,2003似乎有兼容性问题,没试过,装过的朋友可以说一下。TestDirector的安装环境要求 IIS。如果你没有,请在控制面板添加/删除程序中安装IIS。(这里需要注意的一点是,你系统的administrator用户不能使用空密码,也就是说你必须为管理员用户指定一个密码,不然安装完成后无法正常运行TestDirector,会报那个著名的RPC错误)。安装之前请关闭一些IE的辅助工具,并关闭其功能,在初次运行时,会要求更新部分IE空间,很有可能被IE的辅助工具所拦截。所以为了能让我们顺利的完成它,把杀毒软件也关掉吧。


    运行安装程序。


    NEXT




    输入你的License 继续Next

    License可以用TD7.6的:B343P--44B44--43444--6444S




    根据环境选择需要的数据库,这里使用的是Access,继续Next





    注意User 里面默认的是 你的机器名\管理员

    Password:输入管理员密码(要想正确安装你的Administrator必须有密码,不能为空)

    继续Next




    如果你有邮件服务器,则选择SMTP Server 输入你的邮件服务器

    继续Next




    Virtual Directory Name 输入你虚拟目录名,即你在IIS中访问要用的地址,默认即可

    继续Next




    继续Next




    配置完成后,可以在上面的栏目中查看你前面的详细配置,如果可以点击Install开始安装过程

    安装完成后,需要重起一下机器,在登陆系统的时候会发现多了一个关于员用户,这里是无法登陆,是TD自动创建的一个系统用户,不用去管它。

    接着继续安装SP1补丁,中途会要求输入一次系统管理密码,然后再要求重起一次


    重复上面步骤安装SP2补丁。即安装完成

  • [论坛] TestDirector概述

    rendaoyuan 发布于 2007-06-15 11:32:10

    TestDirector概述

    TestDirectorMI公司开发的一款知名的测试管理工具,可以实现需求管理,测试计划管理,用例管理,缺陷管理。TestDirector能够很好的和MI公司的其他测试工具(如QTP,Loadrunner等)很好的集成,并且具有强大的图表统计功能,会自动生成丰富的统计图表。
    TestDirectorB/S结构的软件,只需要在服务器端安装软件,所有的客户端就可以通过浏览器来访问TestDirector,方便测试人员的团队合作和沟通交流。
    TestDirector主要有以下功能模块:

    3-1 TestDirector的功能模块

    需求管理(Requirements


    定义测试需求。


    包括定义你正在测试的内容、定义需求的主题和条目并分析这些需求。


    测试计划(Test Plan


    开发一个测试计划。


    包括定义测试目标和策略、将测试计划分为不同的类别、对测试进行定义和开发、定义哪些需要自动化测试、将测试与需求进行连接和分析测试计划。


    测试执行(Test Lab


    运行测试并分析测试结果。


    缺陷管理(Defect


    增加新缺陷、确定缺陷修复属性、修复打开的缺陷和分析缺陷数据。



    程序测试是一个复杂的过程,大型的项目往往要编写成百上千的测试用例,有的时候测试还需要跨平台,测试不同硬件平台,操作系统的兼容性,所以说管理测试的过程有时是很繁琐很消耗时间的工作。
    TestDirector7.6作为经典的测试管理工具,可以很方便的管理你测试过程,包括搭建测试框架,制定测试流程等工作。TestDirector7.6还具有和很强大的数据管理功能,在后台的数据库中集中管理测试需求,测试用例,测试步骤等资源。
    TestDirector7.6同时也是一款功能强大的缺陷管理工具,可以对缺陷进行增删改查等操作,同时也可以给开发人员发送E-mail通知。

    TestDirector7.6
    还可以和MI公司的其他测试工具进行很好的集成,如WinRunner, LoadRunner, QuickTest Professional, Astra LoadTest等,同时也支持一些第3方公司开发的测试工具。

    北京地区对软件测试感兴趣的朋友可以加我qq交流:306513768

    [ 本帖最后由 rendaoyuan 于 2007-3-30 11:40 编辑 ]
  • TD7.6 字段中英文对照表

    yxd2006 发布于 2007-06-07 17:07:41

    DEFECT

    英文

    中文

    Actual Fix Time

    实际修改时间

    Assigned To

    被分配给

    Closed in Version

    被关闭的版本

    Closing Date

    关闭日期

    Defect ID

    缺陷编号

    Descrīption

    描述

    Detected By

    被(谁)发现

    Detected in Version

    被发现的版本

    Detected on Date

    被发现的日期

    Estimated Fix Time

    估计修改的时间

    Modified

    修正

    Planned Closing Version

    计划关闭的版本

    Priority

    优先级

    Project

    项目

    R&D Comments

    研发人员备注

    Reproducible

    可重现

    Severity

    严重程度

    Status

    状态

    Summary

    概要

    TEST

    英文

    中文

    Creation Date

    创建日期

    Descrīption

    描述

    Designer

    设计人员

    Estimated DevTime

    估计设计和生成测试的时间

    Execution Status

    执行状态

    Modified

    修正

    Path

    路径

    Status

    状态

    Steps

    步骤

    Template

    模版

    Test Name

    测试名称

    Type

    类型

    TEST STEP

    英文

    中文

    Actual

    实际结果

    Descrīption

    描述

    Exec Date

    执行日期

    Exec Time

    执行时间

    Expected

    期望结果

    Source Test

    测试资料

    Status

    状态

    Step Name

    步骤名称

    RUN

    英文

    中文

    Duration

    执行的期限

    Exec Date

    执行日期

    Exec Time

    执行时间

    Host

    主机

    Operating System

    操作系统

    OS Build Number

    操作系统生成的编号

    OS Service Pack

    操作系统的服务软件包

    Run Name

    执行名称

    Run VC Status

    执行 VC 的状态

    Run VC User

    执行 VC 的用户

    Run VC Version

    执行 VC 的版本

    Status

    状态

    Test Version

    测试版本

    Tester

    测试员

    REQUIREMENT

    英文

    中文

    Attachment

    附件

    Author

    作者

    Cover Status

    覆盖状态

    Creation Date

    创建日期

    Creation Time

    创建时间

    Descrīption

    描述

    Modified

    修正

    Name

    名称

    Priority

    优先级

    Product

    产品

    ReqID

    需求编号

    Reviewed

    被检查

    Type

    类型

    TEST IN TESTSET

    英文

    中文

    Exec Date

    执行日期

    Modified

    被修正

    Planned Exec Date

    计划执行的日期

    Planned Exec Time

    计划执行的时间

    Planned Host Name

    计划执行的主机名称

    Responsible Tester

    负责测试的人员

    Status

    状态

    Test Version

    测试的版本

    Tester

    测试员

    Time

    时间

    TESTSET

    英文

    中文

    Close Date

    关闭日期

    Descrīption

    描述

    Modified

    修正

    Open Date

    开放日期

    Status

    状态

    Test Set

    测试集合

  • 软件测试策略

    wyy83 发布于 2007-04-16 15:38:28

    1.静态方法与动态方法

    静态方法的主要特征是不利用计算机运行被测试的程序,而是采用其它手段达到检测的目的。

     

    可能发现的缺陷:

         用错的局部变量和全局变量

         不匹配的参数

         不适当的循环嵌套和分支嵌套

         不适当的处理顺序

         无终止的死循环

         未定义的变量

         不允许的递归

         调用并不存在的子程序

         遗漏了标号或代码

         不适当的连接

     

    找到潜伏着问题的根源:

         未使用过的变量

         不会执行到的代码

         未引用过的标号

         可疑的计算

         潜在的死循环

    提供间接涉及程序欠缺的信息

         每一类型语句出现的次数

         所用变量和常量的交叉引用表

         标识符的使用方式

         过程的调用层次

         违背编码规则

    为进一步查错做准备

    选择测试用例

    进行符号测试

     

     

    2.黑盒测试与白盒测试

    黑盒测试(Black-box Testing)又称为功能测试、数据驱动测试或基于规格说明的测试(Specification-based Testing)。在完全不考虑程序内部结构和内部特性的情况下,测试者只知道该程序输入和输出之间的关系,或是程序的功能。

    黑盒测试是从用户观点出发的测试。

     

    白盒测试(White-box Testing)又称结构测试、逻辑驱动测试或基于程序的测试(Program-based Testing)。测试者可以看到被测试的源程序,可用以分析程序的内部构造,并且根据其内部构造设计测试用例。

     

     

    黑盒测试与白盒测试的比较

     

    黑盒测试

    白盒测试

     

     

    测试依据

    根据用户看到的规格说明,即针对命令、信息、报表等用户界面及体现它们的输入数据与输出数据之间的对应关系,特别是针对功能进行测试。

    根据程序的内部结构,比如语句的控制结构,模块间的控制结构以及内部数据结构等进行测试。

     

     

    优点

    能够站在用户立场上进行测试

    能够对程序内部的特定部位进行覆盖测试。

     

    缺点

         不能测试程序内部特定部位

         如果规格说明有误,则无法发现

         无法检查程序的外部特性

         无法对未实现规格说明的程序内部欠缺部分进行测试

     

     

    方法举例

     

    等价类划分

    边界值分析

    因果图

    语句覆盖

    判定覆盖

    条件覆盖

    判定/条件覆盖

    路径覆盖

    模块接口测试

  • 英语时态

    jzhao 发布于 2007-01-26 15:44:28

     英语的时态是靠动词的变化和时间状语来表达的。英语中的时态共有十六种,但是常考的或较常用的只有8种,而且重点测试完成时态。 要掌握英语的时态和语态,必须掌握好英语中的助动词(do, be, have)和时间状语这两个核心问题。 
    1、一般现在时  
      主要用来表示人、事物的现在状况和特点;表示经常或习惯性的动作,句子中常有often, always, from time to time 等时间状语; 表示客观规律和永恒真理等。 
       He usually goes to work at 7 o’clock every morning. 
       She has a brother who lives in New York. 
       The earth goes around the sun. 
      Guangzhou is situated in the south of China. 
      考点一:表示永恒的真理,即使出现在过去的语境中,仍用一般现在时。如: 
      I learned that the earth goes around the sun when I was in primary school. 
      考点二:在时间和条件状语从句中,代替一般将来时;常用的引导词有: 
      时间:when, until, after, before, as soon as, once, the moment/the minute, the day; 条件:if, unless, provided. 
      If he accepts the job, he will get more money soon. 
      考点三:在make sure (certain), see to it, mind, care, matter +宾语从句, 从句用一般现在时代替一般将来时。 
       So long as he works hard, I don’t mind when he finishes the experiment. 
       只要他努力工作, 我不介意他什么时候做完试验。 
      考点四:在the more… the more … (越……越……) 句型中, 若主句是一般将来时, 从句通常用一般现在时。 
       The harder you study, the better results you will get. 


      2、现在进行时 
       表说话时或目前一段时间内正在进行的活动:或表感情色彩,加强语气。与频率副词,如always,constantly,continually,again等连用表示说话人的某种感情色彩(赞叹、厌烦、埋怨等)。 
       We are having English class. 
      The house is being built these days. 
       The little boy is always making trouble.  
      考点一:在时间状语或条件状语从句中表示将来正在进行的动作。 
      Look out when you are crossing the street.  
      Don\'t wake him up if he is still sleeping at 7 tomorrow morning. 
      考点二: 表示在最近按计划或安排要进行的动作(这时多有表示将来的时间状语)。 
      Marry is leaving on Friday. 


      3、现在完成时 
      表示动作发生在过去,完成在过去,但强调与现在情况仍有联系,其结果或影响仍存在。现在完成时有一些标志性的时间状语: 
      考点一:for + 时间段;since + 时间点 
      They have lived in Beijing for five years. 
       They have lived in Beijing since 1995. 
      I have learned English for ten years. 
      考点二:常见的不确定的时间状语:lately; recently, just, already, yet, up to now; till now; so far, these days,  
       Has it stopped raining yet?  
      考点三:在表示“最近几世纪/ 年/ 月以来……”时间状语中,谓语动词用现在完成时。 
      in the past few years/months/weeks/days;over the past few years; during the last three months; for the last few centuries, through centuries; throughout history 等 
       考点四:表示“第几次做某事,”或在 “It is the best (worst, most interesting ) +名词 +that” 后面跟现在完成时。 
      This is my first time that I have visited China.  
      This is the most interesting film I have ever seen. 
      That is the only book that he has written. 


      4.一般过去时 
      表在过去某个特定时间发生且完成的动作,或过去习惯性动作,不强调对现在的影响,只说明过去。常跟明确的过去时间连用,如:yesterday; last week; in 1945, at that time; once; during the war; before; a few days ago; when, 注意: 
    考点一:used to + do,表示过去经常但现在已不再维持的习惯动作。to为不定式,后接动词原形。 
      be/become/get used to + doing,表示习惯于 
      He used to smoke a lot. 
      He has got used to getting up early. 
      考点二:在时间和条件状语从句中,代替过去将来时。 
      He promised to buy me a computer if he got a raise  


      5. 过去进行时 
      表示过去某个时间点或某段时间内正在发生的动作。 
       The boy was doing his homework when his father came back from work. 
       He was taking a walk leisurely by the lake when he heard someone shouted for help. 
      What were you doing at nine last night? 
      The radio was being repaired when you called me. 


      6. 过去完成时 
      表示过去某个时间之前已经完成的动作,即过去完成时的动作发生在“过去的过去”,句中有明显的参照动作或时间状语,这种时态从来不孤立使用 ( before, after, by, up till )  
       There had been 25 parks in our city up till 2000. 
       By the end of last term we had finished the book. 
       They finished earlier than we had expected. 
      考点一:用于hardly/scarcely...when; no sooner ...than 句型中,主句用过去完成时,从句用一般过去时。 
      I had hardly finished my work when he came to see me. 
      I had no sooner got into the room than it began to snow. 
      No sooner had I arrived home than the telephone rang. (注意主谓倒装) 
      考点二:表示“第几次做某事”,主句用过去时,从句用过去完成时。 
      That was the second time that she had seen her grandfather. 
      It was 3 years since we had parted。 
      考点三:动词hope, expect, think, intend, mean, want, suppose, plan 用过去完成时,表示未实现的愿望、打算和意图。 
      I had hoped that I could do the job. 
      I had intended to see you but I was too busy. 


      7. 一般将来时 
      表在将来某个时间会发生的动作或情况。常和tomorrow, next year, in 2008等表示将来的时间状语连用,其表现形式多达5种。 
      Beijing will host the 29th Olympic Games in 2008. 
      考点一:一般将来时总是用在一些时间状语从句或条件状语从句的主句中: 
      We will begin our class as soon as the teacher comes. 
      (主句用一般将来时,从句中一定要用一般现在时替代一般将来时。) 
      考点二:某些表示短暂性动作的动词如arrive, come, go, leave, start等,用现在进行时形式表示将来。 
      I am leaving for Beijing tomorrow. 
      考点三:“祈使句 + and/or + 句子”,这种结构中and后面的句子谓语用一般将来时。 
      Use your head and you will find a way. 
      考点四:“am (is, are) going to + 动词原形”,表示打算要做的事或可能要发生的事。 
      “am (is, are) about to + 动词原形”表示按照预定计划或打算准备着手进行的动作。 
      “am (is, are) to + 动词原形”表示必须、必然或计划将要做的事。 
      They are to be married in this May. 


      8、将来进行时 
      表将来某个时间正在发生的动作,或按计划一定会发生的事情。 
      I’ll be doing my homework this time tomorrow. 明天这会我正在写作业。 
      The President will be meeting the foreign delegation at the airport. 


      9、将来完成时 
      表在将来某时刻之前业已完成的事情,时间状语非常明显。 
      考点一:常用的时间状语一般用by+将来的时间。如:by the end of this year, by 8 o’clock this evening, by March next year以及由by the time…, before或when等引导的副词从句。 
      By the end of next month, he will have traveled 1000 miles on foot. 
      By the time you reach the station, the train will have left. 
      By next Tuesday, I will have got ready for the exams. 
      考点二:在时间和条件状语从句中,将来完成时则由现在完成时表示。 
      The children will do their homework the moment they have arrived back from school. 

  • Linux常用命令

    yhp1314520 发布于 2007-04-15 16:13:38

    Linux常用命令
    一、进入与退出系统
    1. 进入Linux系统:root
    必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:
      1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
      2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
      当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:
    [root@loclhost /root] #
    这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。
    2. 修改口令: passwd
    为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,
    3. 退出系统: exit或logout
    不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令或logout命令即可。
    二、Linux文件管理命令
    4. 文件拷贝命令:cp
    功能:该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,
    语法: cp [选项] 源文件或目录 目标文件或目录
    选项如下:
    -a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpr选项的组合。
    -i 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
    -p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
    -r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
    5. 移动文件命令:mv
    功能:1.为文件或目录改名 2.将文件由一个目录移入另一个目录中。
    语法:mv [选项] 源文件或目录 目标文件或目录
    命令中各选项的含义为:
    -i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
    -f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
    如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好使用i选项。
    6. 删除文件或目录命令:rm
    功能:删除不需要的文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,原文件保持不变。
    rm命令的一般形式为:
    rm [选项] 文件…
    如果没有使用- r选项,则rm不会删除目录。
    该命令的各选项含义如下:
    -f 忽略不存在的文件,从不给出提示。
    -r 指示rm将参数中列出的全部目录和子目录均递归地删除。
    -i 进行交互式删除。
    使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件则不会删除。
    7. 创建目录命令:mkdir
    功能:创建一个目录
    语法:mkdir [选项] dir-name
    选项的含义为:
    -m 对新建目录设置存取权限。也可以用chmod命令设置。
    -p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
    例如:mkdir abc -m 777(建立一个名为abc的目录并赋予全权)
    8. 删除空目录命令:rmdir
    功能:删除空目录。
    语法:rmdir [选项] dir-name
    选项的含义为:
    -p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
    9. 改变工作目录命令:cd
    功能:改变工作目录。
    语法:cd [directory]
    例如:
    cd (不带任何参数将直接进入当前登录用户的主目录)
    cd - (进入前一次进入的目录)
    cd ~jp (进入指定用户jp的主目录)
    10.显示当前完整路径命令:pwd
    功能:显示用户当前所处目录的完整路径。
    11.列出目录的内容命令:ls
    功能:列出目录的内容。
    语法:ls [选项] [目录或是文件]
    选项的含义如下:
    -F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
    -l 以长格式来显示文件的详细信息。这个选项最常用。每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字
    -R 递归式地显示指定目录的各个子目录中的文件。
    12.查找文件命令:find
    功能:查找目录中某特定文件。
    选项的含义如下:
    (.)表示在当前目录或子目录查找
    -print:查找并打印
    13. 建立链接文件命令:ln
    功能:建立链接文件
    语法:ls [-s] 源文件名 目标文件名
    说明:链接文件分为硬连接和软连接,硬连接相当于一个数据源有两个文件名,删除一个文件另一个文件不变,修改一个文件的内容另一个文件的内容也跟着改变。硬连接不能和另一个目录链接,也不能和其他文件系统的文件进行链接。软链接相当于快捷方式,没有上面的限制,加-s参数创建软链接。
    14. vi的使用
    (1)、编辑模式下的常用命令
    1、0:移光标到当前行的行首
    2、$:移光标到当前行的行尾
    3、H:移光标到当前屏第一行的行首
    4、M:移光标到当前屏中间行的行首
    5、L:移光标到当前屏最后一行的行首
    6、pageup、pagedown:上翻页,下翻页
    7、ctrl+g:显示状态信息
    8、X:删除一个字符
    9、dd:删除或剪切光标所在的行
    10、d0:删除光标处到行首的内容
    11、d$:删除光标处到行尾的内容
    12、u:取消上次命令
    13、. :重复操作
    14、YY:复制当前行
    15、p:粘贴
    (2)、命令状态下操作:
    1、:n 跳行
    2、:w 保存
    3、:q 退出(须先保存)
    4、:w filename 另存为
    5、:wq 保存退出
    6、:q! 不保存强制退出
    7、:a,b w filename 将a行到b行的内容另存为
    8、:.,$ w filename 将当前行到行尾的内容另存为
    9、:1,. W filename 将第一行到当前行的内容另存为
    10、:/string 在全文中查找string字符串
    11、:a,b s/string1/string2/g 将a行到b行之间的所有string1替换成string2
    12、:% s/string1/string2/g 将全文中的string1替换成string2
    13、:e filename 新建文件
    14、: r filename 打开一个文件
    15、:f filename 重命名当前文件
    16、:n1,n2 co n3 将n1和n2行的内容复制到n3行位置上
    17、:n1,n2 m n3 将n1和n2行的内容移到n3行的位置上
    18、:n1,n2 d 将n1到n2行的内容删除掉
    19、:set number 设置行号
    20、:set autoindent 设置自动缩进
    21、:!Cmd 执行shell命令
    22、:r ! Cmd 将shell命令的执行结果作为文件的内容
    23、:sh 暂时退出vi到系统下,按ctrl+d结束
    24、:X 文件保存退出前加密。
    三.文件检测命令
    15. cat命令
    功能:连接并显示一个或多个文件的信息
    选项的含义如下:
    -b:列出文件行,忽略空白行。
    -n:列出文件所有行,不忽略空白行。
    -ev:不忽略空白行,并将每行末端一个字符串添加到该行开头。
    16.less命令
    功能:在Linux中用less命令进行文件显示工作.
    例如:我们要显示man1子目录下的mwm.lx的内容,只需输入:[root@localhost man1]#less mwm.lx即可。在Linux中,我们也可用另外一个命令“more”来显示文件内容,例如:more mwm.lx。你会看到,这两个命令非常相似,实际上,less命令的功能要比more强一些,你可以自己去摸索。在Linux中,还提供了两个DOS中没有的阅读文件的命令,它们是head和tail命令,分别用来显示文件的头部和后部的部分内容。使用格式为:head(tail) [m],缺省n时,显示10行,例如:
      head /usr/man/mwm.lx 显示文件mwm.lx前10行的内容
      head 15 /usr/man/mwm.lx 显示文件mwm.lx前15行的内容
      tail 17 /usr/man/mwm.lx 显示文件mwm.lx后17行的内容
    17.head命令
    功能:可以显示指定文件前N行。(默认为10行)
    例:head 123.txt 显示123.txt文件前10行内容.
    head –5 pc.txt 显示pc.txt文件的前5行。
    18.tail命令
    功能:可以显示指定文件最后几行。(默认为10行)
    例:tail +21 ../abc.txt 显示abc.txt文件从21行到结束的内容。
    19.file命令
    功能:检测文件内容来判断文件的类型。
    例:file 123.txt :对文件名为123.txt的文件进行验证并显示其内容。
    20.diff命令
    功能:用于两个文件之间的比较,并指出二者不同
    例如:diff 123 abc 比较123和abc文件区别
    21.cmp命令
    功能:简要指要两文件是否存在差异。
    例如:cmp 123 abc 简要比较123和abc文件的区别
    四、Linux备份与压缩命令
    22.文件存档命令:tar
    功能:tar可以为文件和目录创建档案。
    语法:tar [主选项+辅选项] 文件或者目录
    使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
    主选项:
    c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
    r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
    t 列出档案文件的内容,查看已经备份了哪些文件。
    u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
    x 从档案文件中释放文件。
    辅助选项:
    b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
    f 使用档案文件或设备,这个选项通常是必选的。
    k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
    m 在还原文件时,把所有文件的修改时间设定为现在。
    M 创建多卷的档案文件,以便在几个磁盘中存放。
    v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
    w 每一步都要求确认。
    z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
    例如:tar cvf aa.tar /home/aa (将/home/aa目录打包为aa.tar)
       tar zcvf aa.gz /home/aa (将/home/aa目录直接打包为aa.gz压缩包)
    23.文件压缩命令:gzip
    gzip是对文件进行压缩和解压缩的命令,既方便又好用。
    语法:gzip [选项] 压缩(解压缩)的文件名
    各选项的含义:
    -c 将输出写到标准输出上,并保留原有文件。
    -d 将压缩文件解压。
    -l 对每个压缩文件,显示压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字
    -r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
    -t 测试,检查压缩文件是否完整。
    -v 对每一个压缩和解压的文件,显示文件名和压缩比。
    -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
    例如:gzip -l aa.gz(列出aa.gz压缩包中的内容)
    五、在Linux环境下运行DOS命令  
    Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一个MSDOS的软盘,只要把软盘放在软驱中,就可以利用mtools提供的命令来访问软盘上的文件。
    mtools的主要命令如下:
    mcd 目录名 改变MSDOS目录;
    mcopy 源文件 目标文件 在MSDOS和Unix之间复制文件;
    mdel 文件名 删除MSDOS文件;
    mdir 目录名 显示MSDOS目录;
    mformat 驱动器号 在低级格式化的软盘上创建MSDOS文件系统;
    rnlabel 驱动器号 产生MSDOS卷标;
    mmd 目录名 建立MSDOS目录;
    mrd 目录名 删除MSDOS目录;
    mren 源文件 目标文件 重新命名已存在的MSDOS文件;
    m无效 文件名 显示MSDOS文件的内容。
    提示:这些命令和对应的MSDOS命令非常相似。

    六、Linux文本处理命令
    24.sort命令
    功能:sort命令的功能是对文件中的各行进行排序。sort命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,sort命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
    Sort命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
    语法: sort [选项] 文件
    说明:sort命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“- ”,则表示排序内容来自标准输入。
    sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按ASCII字符顺序进行排序。
    改变缺省设置的选项主要有:
    - m 若给定文件已排好序,合并文件。
    - c 检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值1退出。
    - u 对排序后认为相同的行只留其中一行。 (这是一个常用参数,可能去除文件中的重复行)
    - o 输出文件 将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,sort先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
    改变缺省排序规则的选项主要有:
    - d 按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
    - f 将小写字母与大写字母同等对待。
    - I 忽略非打印字符。
    - M 作为月份比较:“JAN”<“FEB”
    - r 按逆序输出排序结果。
    +posl - pos2 指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
    - b 在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
    - t separator 指定字符separator作为字段分隔符。
    25.uniq命令
    功能:文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用cat命令将两个文件合并后,再使用sort命令进行排序,就可能出现重复行。这时可以使用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
    语法:
    uniq [选项] 文件
    说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“- ”表示,则从标准输入读取。
    该命令各选项含义如下:
    - c 显示输出中,在每行行首加上本行在文件中出现的次数。它可取代- u和- d选项。
    - d 只显示重复行。
    - u 只显示文件中不重复的各行。
    - n 前n个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从0开始编号)。
    +n 前n个字符被忽略,之前的字符被跳过(字符从0开始编号)。
    - f n 与- n相同,这里n是字段数。
    - s n 与+n相同,这里n是字符数。
    七、Linux改变文件或目录的访问权限命令
    26.chmod 命令
      chmod:用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。
    该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
      1. 文字设定法
      chmod [who] [+ | - | =] [mode] 文件名?
    选项的含义为:
      操作对象who可是下述字母中的任一个或者它们的组合:
      u 表示“用户(user)”,即文件或目录的所有者。
      g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
      o 表示“其他(others)用户”。
      a 表示“所有(all)用户”。它是系统默认值。
      操作符号可以是:
      + 添加某个权限。
      - 取消某个权限。
      = 赋予给定权限并取消其他所有权限(如果有的话)。
      设置mode所表示的权限可用下述字母的任意组合:
      r 可读。
      w 可写。
      x 可执行。
      X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
      s 在执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
      t 保存程序的文本到交换设备上。
     u 与文件属主拥有一样的权限。
      g 与和文件属主同组的用户拥有一样的权限。
      o 与其他用户拥有一样的权限。
      文件名:以空格分开的要改变权限的文件列表,支持通配符。
      在一个命令行中可给出多个权限方式,其间用逗号隔开。
    例如:chmod g+r,o+r example
    使同组和其他用户对文件example 有读权限。
    2. 数字设定法
      我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限(x),2表示可写权限(w),4表示可读权限(r),然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
      例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
      数字设定法的一般形式为:
      chmod [mode] 文件名
    例如:chmod 777 aa(给aa赋予属主、同组用户、其它用户都拥有全部权限)

    27.chown 命令
      功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
      语法:chown [选项] 用户或组 文件
    选项含义如下:
      - R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
      - v 显示chown命令所做的工作。
    例如:chown -R root:root doc (将doc文件的所属组改为root,属主用户改为root)
    八、系统状态类命令
    28.dmesg命令
    功能:显示引导时内核显示的状态信息
    #dmesg |grep -4 “eth0”显示状态信息中与eth0相关的前后4行内容
    29.uname命令
    功能:显示当前的系统信息
    #uname –a
    30.uptime命令
    功能:显示当前时间,自从上次重新引导之后系统运行的时间,服务器和多少用户链接以及系统前1、5、15分钟的负载信息。
    31.who命令
    功能:显示当前登录在系统上的用户信息。
    -r:查看系统运行等级
    -w,在登录帐号后面显示一个字符来表示用户的信息状态:
    +:允许写信息; -:不允许写信息; ?:不能找到终端设备
    32.w命令
    功能:查看其他登录的用户(who增强版)
    第一行输出内容:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载
    第二行输出内容:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
    *JCPU时间指的是和该终端(tty)连接的所有进程占用的时间
    *PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间
    33.whoami命令
    功能:显示当前用户名
    34.hostname命令
    功能:显示系统的主机名
    35.cal [月份] [年份] 命令
    功能:显示日历
    36.bc命令
    功能:计算器,使用quit退出
    37.date命令
    功能:显示或修改日期时间。
    38.free命令
    功能:查看当前内存和交换空间的使用情况
    九.网络类命令
    39.write命令
    功能:向另外一个用户发信息,以Ctrl+D作为结束,普通用户发信息受到mesg状态影响。
    语法:write <用户名>
    40.wall命令
    功能:向所有用户广播信息,普通用户受到mesg状态影响。
    语法:wall [message]
    41.mesg命令
    功能:显示或设置是否接受其他用户发来的信息。
    语法:mesg [参数]
    [参数]
    y:接受从其他用户发来的信息
    n:不接受从其他用户发来的信息
    #mesg
    显示当前是否接受其他用户发来的信息
    42.ping命令
    功能:通过检查网络中其他主机的应答信息,来确认网络的连通性。
    语法:ping [参数] 主机名(或ip地址)
    参数:
    -c count:共发出count次信息。
    -R:显示路由表的详细信息
    43.telnet命令
    功能:远程登录
    语法:telnet [<主机名>][:端口号]
    44.ifconfig命令
    功能:配置网络接口
    语法:
    ifconfig [interface] [up][down][netmask mask]
    #ifconfig
    #ifconfig eth0 192.168.0.3 netmask 255.255.255.0 up
    45.netstat命令
    功能:显示本地系统的网络连接状态
    语法:netstat [-a][-r][-c][-i]
    -a:显示所有本地系统中的网络连接
    -r:显示路由表
    -c:显示连续的网络连接状态
    -i:显示全部网络接口信息。
    46.ftp命令
    功能:文件传输
    语法:ftp [<主机名>]
    子命令:
    ?:列出所有的FTP命令;
    pwd:显示远程主机的当前目录
    lcd:切换和显示本机主机的当前目录
    ls:列出远程主机当前目录下的内容
    !dir:列出本机主机的当前目录下的内容
    cd:切换远程主机的目录
    get:下载一个文件
    mget:成批下载文件
    put:上传一个文件
    mput:成批上传文件
    prompt:使用mget和mput时是否采用交互式询问
    bye:中止一个FTP连接
    open:打开一个FTP连接
    close:关闭一个FTP连接
    binary:采用二进制模式传输
    ascii:采用ascii模式传输
    无效:查看传输模式
    47.sync命令
      sync命令是在关闭Linux系统时使用的。强制把内存中的数据写回硬盘,以免数据的丢失。
    48.shutdown命令
    shutdown 命令可以安全地关闭或重启Linux系统.
    该命令的一般格式为: shutdown [选项] [时间] [警告信息] 命令中各选项的含义为:
    - k 并不真正关机,而只是发出警告信息给所有用户。
    - r 关机后立即重新启动。
    - h 关机后不重新启动。
    - f 快速关机,重启动时跳过fsck。
    - n 快速关机,不经过init程序。
    - c 取消一个已经运行的shutdown。
    需要特别说明的是,该命令只能由超级用户使用。
    十、Linux磁盘管理命令
    49.df命令
    功能:检查文件系统的磁盘空间占用情况。
    语法:df [选项]
    选项的含义如下:
    -a 显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
    -k 以k字节为单位显示。
    -i 显示i节点信息,而不是磁盘块。
    -t 显示各指定类型的文件系统的磁盘空间使用情况。
    -x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
    -T 显示文件系统类型。
    50.du命令
    功能:统计目录(或文件)所占磁盘空间的大小。
    语法:du [选项] [Names…]
    选项含义如下:
    -s 对每个Names参数只给出占用的数据块总数。
    -a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
    -b 以字节为单位列出磁盘空间使用情况(系统缺省以k字节为单位)。
    -k 以1024字节为单位列出磁盘空间使用情况。
    -c 最后再加上一个总计(系统缺省设置)。
    -l 计算所有的文件大小,对硬链接文件,则计算多次。
    -x 跳过在不同文件系统上的目录不予统计。
    dd命令
    51.dd命令
    功能:把指定的输入文件拷贝到指定的输出文件中,并且在拷贝过程中可以进行格式转换。可以用该命令实现DOS下的diskcopy命令的作用。先用dd命令把软盘上的数据写成硬盘的一个寄存文件,再把这个寄存文件写入第二张软盘上,完成diskcopy的功能。需要注意的是,应该将硬盘上的寄存文件用rm命令删除掉。系统默认使用标准输入文件和标准输出文件。
    语法:dd [选项]
    if =输入文件(或设备名称)。
    of =输出文件(或设备名称)。
    ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
    skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
    obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。
    bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
    cbs = byte 一次转换bytes字节。
    count=blocks 只拷贝输入的blocks块。
    conv = ASCII 把EBCDIC码转换为ASCIl码。
    conv = ebcdic 把ASCIl码转换为EBCDIC码。
    conv = ibm 把ASCIl码转换为alternate EBCDIC码。
    conv = block 把变动位转换成固定字符。
    conv = ublock 把固定位转换成变动位。
    conv = ucase 把字母由小写转换为大写。
    conv = lcase 把字母由大写转换为小写。
    conv = notrunc 不截短输出文件。
    conv = swab 交换每一对输入字节。
    conv = noerror 出错时不停止处理。
    conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。
    52.fdformat 命令
    软盘是用户常用的存储介质之一。软盘在使用之前必须先作格式化操作,然后可以用tar、dd、cpio等命令存储数据,也可以在软盘上建立可安装的文件系统。
    功能:低级格式化软盘
    语法:format [-n] device
    说明:该命令的作用是对软盘进行格式化。
    -n 软盘格式化后不作检验。
    device 指定要进行格式化的设备,通常是下述设备之一:
    /dev/fd0d360
    /dev/fd0h1200
    /dev/fd0D360
    /dev/fd0H360
    /dev/fd0D720
    /dev/fd0H720
    /dev/fd0h360
    /dev/fd0h720
    /dev/fd0H1440
    十一. 进程管理
    53.ps 命令
    [选项]
    -a 显示所有用户的进程,但不包括没有控制终端的进程
    -u 显示用户名和启动时间
    -x 显示没有控制终端的进程

    PS命令输出的重要信息的含义
    PID:进程号
    PPID:父进程的进程号
    TTY:进程启动的终端
    STAT:进程当前的状态,S代表休眠,R代表运行,T代表追踪或停止,Z代表僵尸进程,W代表进程没有固定的pages,<表示高优先级的进程,N代表低优先级的进程。
    TIME:进程自从启动以来占用CPU的总时间
    COMMAND/CMD:进程的命令名
    USER:用户名
    %CPU:占用CPU的时间与总时间的百分比
    %mem:占用内存与系统总内存的百分比
    SIZE:进程代码大小
    54.kill命令
    功能:杀死一个进程
    格式:kill -9 进程号
    55.renice命令
    功能:改变一个正在运行进程的优先级
    格式:renice –n pid
    -n:进程的优先级,大于0是降低优先级,小于0是提高优先级,优先级的范围是从19到-20
    56.nohup命令
    功能:当用户退出登录后,进程仍然能够在后台继续运行.
    语法:nohup myprogram &
    57.top命令
    功能:以动态的方式显示进程状态
    Top命令的显示栏说明:
    PID:进程号
    User:进程的所有者
    Pri:进程运行的优先级
    Ni:nice值,表示进程的优先级
    VIRT:进程占用的虚拟内存的总量
    RES:进程占用的非swap内存的总量
    SHR:和其他进程共享内存的总量。
    S:进程的状态
    TIME+:进程的累积运行时间

    Top中的子命令
    l,t,m:调整显示的摘要信息,l是平均负载,t是cpu状态,m是内存信息
    f:用来添加、删除显示栏位
    u:列出某个用户的进程
    n:设置显示总进程数的最大值
    k,r:k用来杀死某个进程,r是renice
    q:退出TOP
    58.进程的挂起和恢复
    按ctrl+z可以暂停正在运行的进程,
    执行jobs可以显示当前终端下有哪些程序在后台运行以及哪些进程被挂起了。
    执行fg可以在前台恢复一个被挂起的进程。
    执行bg可以在后台恢复一个被挂成的进程。
    59.at命令
    功能:指定在某一时刻执行命令
    格式:at [选项] 时间
    选项:
    -l:列出已经排定的任务
    -d n 删除序号为n的任务
    -v:显示命令将被执行的时间

    时间表示法:
    HH:MM 当天中的某小时、某分钟,如果此时刻已经过去了,则推迟到下一天的这一时刻。
    Midnight:午夜
    noon:中午
    MM/DD/YY:某月、某日、某年
    now+计时:从现在起某时刻后,如now+3days表示从现在起,三天以后
    60.batch命令
    功能:任务会在系统负载较小的时候运行。
    61.应用程序corn
    对于要在每天或每周都要定期执行的任务,则可以使用corn来排定。
    格式:crontab –e
    可以调动VI来编辑计划任务表。如:
    00 03 * * * rm –fr /ftp/incoming/temp/*
    分钟 小时 日 月 星期 命令
    (00-59)(00-23)(01-31)(01-12)(01-07)
    #crontab –l 查看用户的计划表
    #crontab –r 删除用户的计划表
    62.linux自动安排系统维护任务
    /etc/crontab
    /etc/cron.daily
    /etc/cron.monthy
    /etc/cron.weekly
    /etc/cron.hourly

    十二、Linux其它命令
    63.su命令
    这个命令非常重要。它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其他用户的口令。如要离开当前用户的身份,可以打exit。
    例:su – oracle :转换到oracle用户身份
    64.echo命令
    功能是在显示器上显示一段文字,一般起到一个提示的作用。
    该命令的一般格式为: echo [ -n ] 字符串
    其中选项n表示输出文字后不换行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

    65.clear命令
    clear命令的功能是清除屏幕上的信息,清屏后,提示符移动到屏幕左上角
    66.man 命令
    功能:在Linux中用man命令获取帮助信息,
    例:man ls 相当于help dir
      ls --help 相当于dir/
    67.umask 命令
    作用:umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入profile文件,就可控制该用户后续所建文件的存取许可。它告诉系统在创建文件时不给谁存取许可。使用权限是所有用户。
    格式: umask [-p] [-S] [mode]
    参数:
    -S:确定当前的umask设置。
    -p:修改umask 设置。
    [mode]:修改数值。
    说明: 传统Unix的umask值是022,这样就可以防止同属于该组的其它用户及别的组的用户修改该用户的文件。既然每个用户都拥有并属于一个自己的私有组,那么这种“组保护模式”就不在需要了。严密的权限设定构成了Linux安全的基础,在权限上犯错误是致命的。需要注意的是,umask命令用来设置进程所创建的文件的读写权限,最保险的值是0077,即关闭创建文件的进程以外的所有进程的读写权限,表示为-rw-------。在~/.bash_profile中,加上一行命令umask 0077可以保证每次启动Shell后, 进程的umask权限都可以被正确设定。
    5.应用实例
    umask -S
    u=rwx,g=rx,o=rx
    umask -p 177
    umask -S
    u=rw,g=,o=
    上述5行命令,首先显示当前状态,然后把umask值改为177,结果只有文件所有者具有读写文件的权限,其它用户不能访问该文件。这显然是一种非常安全的设置。
    68.chgrp命令
    作用:
    chgrp表示修改一个或多个文件或目录所属的组。使用权限是超级用户。
    格式:
    chgrp [选项]... 组 文件...

    chgrp [选项]... --reference=参考文件 文件...
    将每个<文件>的所属组设定为<组>。
    参数:
    -c, --changes :像 --verbose,但只在有更改时才显示结果。
    --dereference:会影响符号链接所指示的对象,而非符号链接本身。
    -h, --no-dereference:会影响符号链接本身,而非符号链接所指示的目的地(当系统支持更改符号链接的所有者,此选项才有效)。
    -f, --silent, --quiet:去除大部分的错误信息。
    --reference=参考文件:使用<参考文件>的所属组,而非指定的<组>。
    -R, --recursive:递归处理所有的文件及子目录。
    -v, --verbose:处理任何文件都会显示信息。
    应用说明: 该命令改变指定指定文件所属的用户组。其中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
    5.应用实例
    改变/opt/local /book/及其子目录下的所有文件的属组为book,命令如下:
    $ chgrp - R book /opt/local /book
    69.chattr 命令
    1.作用
    修改ext2和ext3文件系统属性(attribute),使用权限超级用户。
    2.格式
    chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
    3.主要参数
    -R:递归处理所有的文件及子目录。
    -V:详细显示修改内容,并打印输出。
    -:失效属性。
    +:激活属性。
    = :指定属性。
    A:Atime,告诉系统不要修改对这个文件的最后访问时间。
    S:Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
    a:Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
    i:Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
    D:检查压缩文件中的错误。
    d:No dump,在进行文件系统备份时,dump程序将忽略这个文件。
    C:Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
    s:Secure 删除,让系统在删除这个文件时,使用0填充文件所在的区域。
    u:Un删除,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。
    4.说明
    chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,如果Linux内核版本低于2.2,那么许多功能不能实现。同样-D检查压缩文件中的错误的功能,需要2.5.19以上内核才能支持。另外,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。

    5.应用实例:
    1.恢复/root目录,即子目录的所有文件
    # chattr -R +u/root
    2.用chattr命令防止系统中某个关键文件被修改
    在Linux下,有些配置文件(passwd ,fatab)是不允许任何人修改的,为了防止被误删除或修改,可以设定该文件的“不可修改位(immutable)”,命令如下:
    # chattr +i /etc/fstab
    70.sudo 命令
    1.作用
    sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令,权限是所有用户。
    2.格式
    sudo [-bhHpV] [-s ] [-u <用户>] [指令]
    sudo [-klv]
    3.主要参数
    -b:在后台执行命令。
    -h:显示帮助。
    -H:将HOME环境变量设为新身份的HOME环境变量。
    -k:结束密码的有效期,即下次将需要输入密码。
    -l:列出当前用户可以使用的命令。
    -p:改变询问密码的提示符号。
    -s :执行指定的Shell。
    -u <用户>:以指定的用户为新身份,不使用时默认为root。
    -v:延长密码有效期5分钟。
    4.说明
    sudo命令的配置在/etc/sudoers文件中。当用户使用sudo时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是非常适合的。
    71.who 命令
    1.作用
    who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。 使用权限为所有用户。

    2.格式
    who - [husfV] [user]
    3.主要参数 :
    -h:不要显示标题列。
    -u:不要显示使用者的动作/工作。
    -s:使用简短的格式来显示。
    -f:不要显示使用者的上线位置。
    -V:显示程序版本。
    4.说明
    该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。
    72.wc命令
    功能:统计文件的行数、字符数和单词数。
    语法:wc [-lwc] 文件名
    -l: 只显示行数,-w:只显示单词数,-c:只显示字符总数。
    73.whatis命令
    功能:可以用一行内容显示对命令行后输入的关键词的说明。
    语法:whatis 关键词
    用法:#whatis find whereis
    74.Whereis命令
    功能:确定指定文件的源程序/二进制程序和手册部分的位置。
    用法:#whereis ls
    75.which命令
    功能:显示可执行命令的路径和它的别名。
    用法:#which ls
    76.locate命令
    功能:可以查找具体文件或命令的路径,可以查找具体的字符串或子串
    用法:locate 文件名或关键字
    77.grep命令
    功能:在文件中搜寻匹配的行并进行输出
    语法:grep [参数]<要找的字串><原文件>
    -num:输出匹配行前后各num行的内容
    -A num:输出匹配行后num行的内容
    -B num:输出匹配行前num行的内容
    -i:忽略大小写的区别
    -v:只显示出那些不包括某字串的行和文件,和默认的相反
    78.shell命令
    一、shell简介
    二、shell功能
    一、shell简介
    (一)、定义:shell是用户与操作系统内核之间的接口,具有命令解释器和编程语言的双重功能。
    (二)、shell中的命令分为内部命令和外部命令,内部命令包含在shell自身之中的,如cd,exit等,查看内部命令的方法可用help命令;而外部命令是存在于文件系统某个目录下的具体的可执行程序,如cp等,查看外部命令的路径可用which。
    (三)、命令解释过程
    二、shell功能
    (一)、命令行解释
    1、交互模式
    2、后台运行:如#fsck / &
    (二)、通配符
    *:表示任一串字符
    ?:表示任一个字符
    […]:匹配方括号内的任意字符
    [!...]或[^…]:匹配除方括号内的任意字符
    [a-zA-Z]:匹配首字符是字母的所有文件

    (三)、重定向
    1、>:输出重定向 如:#ls >1.txt
    2、>>:追加重定向
    如:#cat /etc/inittab >>1.txt
    3、<:输入重定向 如#wc 4、<如#wc it is a nice day
    !
    5、2>:错误重定向
    6、&>:同时实现输出重定向和错误重定向
    (四)、管道操作符 |
    功能:把一个命令的输出内容作为另外一个命令的输入内容。
    #ls |more:分屏显示
    #dmesg |grep eth0
    (五)、命令替换符` `
    功能:把一个命令的输出内容作为另外一个命令的参数。
    #cd `pwd`
    #tar –cvf zsan.tar `find / -user “zsan”`
    #tar –cvf conf.tar `ls /etc *.conf`
    (六)、命令执行顺序
    1、;按顺序执行命令 如#date;cal
    2、&&逻辑与的关系,只有前面的命令执行成功后面的命令才会被执行。
    如:#mail zsan@sje.cn <123.txt &&rm –fr 123.txt
    3、||逻辑或的关系,只有前面的命令执行失败后面的命令才会被执行。
    如:#write zsan <123.txt ||mail zsan@sje.cn <123.txt
    4、( )组合命令行中的命令,改变执行顺序
    如:#date;cal|wc与#(date;cal)|wc
    (七)、自动补全:在bash下输入命令时不必把命令输全,bash就能判断出用户所要输入的命令,可通过tab键完成自动补全功能。
    (八)、命令别名
    功能:可以使工作变得轻松的工具
    语法:alias [<别名>=“<原文件名>”]
    #alias 显示所有的别名
    #alias md=“mkdir” 建立别名
    #unalias md 取消别名
    (九)、命令历史
    功能:可以记录一定数目的以前在shell中输入的命令以避免重复劳动
    1、查看所有的历史命令:#history
    2、查看某条历史命令:#history n
    3、引用历史命令:#!<命令编号>

    十三、Debian命令
    79.apt命令
    APT(the Advanced Packaging Tool)是Debian软件包管理系统的高级界面,由几个名字以“apt-”打头的程序组成。apt-get、apt-cache、apt-cdrom ,apt-config是处理软件包的命令行工具,它们也是其它用户前台程序的后端,如dselect和aptitude。
    apt-get 更新 从 /etc/apt/source.list 中源的更新软件包列表
    apt-cache search search-string 描述如 search-string 的软件包
    apt-cache policy package-name 显示软件包的版本和优先级
    apt-cache show package-name 显示文件的描述信息
    apt-cache showpkg package-name 显示软件包的依赖关系
    apt-get install package-name 从源安装软件包及其所有依赖包
    apt-get upgrade 将当前安装的软件包更新到最新
    我们看到有些包被阻止更新(kept back)
    apt-get dist-upgrade
    如 apt-get upgrade, 会自动解决冲突
    apt-get remove package-names 删除软件包, 及其所有依赖它的
    apt-get --purge remove 彻底删除这些包及其配置文件
    apt-get --purge remove gnome-panel nautilus+
    在删除软件包时,如果你在软件包名字后面紧跟一个“+”,那么该软件包就会被安装而不是删除。
    apt-cache depends package-names 列出指定包的所有依赖包
    apt-cache rdepends package-names列出依赖于给定包的所有软件包
    apt-file upgrade 从源更新内容列表
    apt-file search file-name 查找包含文件的软件包
    apt-file search package-name 列出软件包的内容
    auto-apt
    如果需要可以自动安装软件包, 可以替代 apt-file, 需要安装 auto-apt.
    aptitude APT 的控制台接口, 需要安装 aptitude
    synaptic APT的GUI接口, 需要安装synaptic
    apt-get clean
    删除保存在缓存目录下(/var/cache/apt/archives)的被下载的软件包。
    将删除/var/cache/apt/archives目录和/var/cache/apt/archives/partial目录下的所有文件,除了被锁定的文件。再次安装某个软件包时,APT将重新下载它。
    apt-get autoclean 仅删除那些不需要再次下载的文件。
    在dselect中选好了软件包后,运行:
    apt-get -u dselect-upgrade
    比较同apt-get dist-upgrade时的情形
    可以看到在前例中许多软件包被安装是其它软件包“推荐”或“建议”的结果。另外一些软件包被安装或删除通过dselect工具作出的决定。由此可见dselect与APT结合起来将是一个功能强大的工具。
    apt-get --reinstall install gdm 软件包的修复
    apt-get check 从默认服务器下载软件包数据库
    apt-get upgrade package_name升级指定的软件包,并升级其依赖的软件包apt-cache showpkg package_name显示软件包的一些常规信息apt-cache stats显示相关的统计信息
    apt-cache dump 显示缓存中的每个软件包简要描述信息
    apt-cache unmet 显示不符合一致性的依赖关系。
    apt-cache show 显示指定软件包的记录信息,类似于rpm -qi
    apt-cache search 查找软件包
    apt-cache depends 显示软件包的依赖性关系。
    apt-cache pkgnames 列出所有的软件包
    apt-config apt-config dump 显示目前的配置信息。
    apt-get install nessus-server 自动下载安装依赖包
    apt-get source package_name 下载软件包的source rpm
    80.dpkg命令
    它是操作软件包文件的主要工具;
    dpkg由几个原始的辅助程序演化而来。
    ·dpkg-deb:操作.deb文件。dpkg-deb(1)
    ·dpkg-ftp:一个旧的软件包获取命令。dpkg-ftp(1)
    ·dpkg-mountable:一个旧的软件包获取命令。dpkg-mountable(1)
    ·dpkg-split:将大软件包分割成小包。dpkg-split(1)
    dpkg -l [names] 列出软件包
    dpkg -I pkg.deb 显示软件包相关信息
    dpkg -c pkg.deb 列出软件包的内容
    dpkg -S filename 显示哪个包包含这个文件
    dpkg -i pkg.deb 安装软件包
    deborphan 显示没有被依赖(孤儿)的软件包, 需要安装deborphan
    debsums 审计安装的软件报, 需要安装debsums
    dpkg-divert [option] file 重写一个软件包的版本
    dpkg --compare-versions v1 gt v2 比较版本, 用 echo $? 检查
    dpkg-query -W --showformat=format 查询已安装软件包, 格式 例如'$ $ $ '.
    dpkg --get-selections 将选择的软件包写入一个文件
    dpkg --set-selection 从文件读取软件包选择


    补上目录

     

    Linux常用命令 1
    一、进入与退出系统 3
    1. 进入Linux系统:root 3
    2. 修改口令: passwd 3
    3. 退出系统: exit或logout 3
    二、Linux文件管理命令 3
    4. 文件拷贝命令:cp 3
    5. 移动文件命令:mv 3
    6. 删除文件或目录命令:rm 4
    7. 创建目录命令:mkdir 4
    8. 删除空目录命令:rmdir 4
    9. 改变工作目录命令:cd 4
    10.显示当前完整路径命令:pwd 4
    11.列出目录的内容命令:ls 4
    12.查找文件命令:find 5
    13. 建立链接文件命令:ln 5
    14. vi的使用 5
    三.文件检测命令 6
    15. cat命令 6
    16.less命令 6
    17.head命令 6
    18.tail命令 6
    19.file命令 6
    20.diff命令 6
    21.cmp命令 7
    四、Linux备份与压缩命令 7
    22.文件存档命令:tar 7
    23.文件压缩命令:gzip 7
    五、在Linux环境下运行DOS命令 8
    mtools的主要命令如下: 8
    六、Linux文本处理命令 8
    24.sort命令 8
    25.uniq命令 9
    七、Linux改变文件或目录的访问权限命令 9
    26.chmod 命令 9
    27.chown 命令 10
    八、系统状态类命令 10
    28.dmesg命令 10
    29.uname命令 10
    30.uptime命令 10
    31.who命令 10
    32.w命令 11
    33.whoami命令 11
    34.hostname命令 11
    35.cal [月份] [年份] 命令 11
    36.bc命令 11
    37.date命令 11
    38.free命令 11
    九.网络类命令 11
    39.write命令 11
    40.wall命令 11
    41.mesg命令 11
    42.ping命令 11
    43.telnet命令 12
    44.ifconfig命令 12
    45.netstat命令 12
    46.ftp命令 12
    47.sync命令 12
    48.shutdown命令 12
    十、Linux磁盘管理命令 13
    49.df命令 13
    50.du命令 13
    51.dd命令 13
    52.fdformat 命令 14
    十一. 进程管理 14
    53.ps 命令 14
    54.kill命令 15
    55.renice命令 15
    56.nohup命令 15
    57.top命令 15
    60.batch命令 16
    61.应用程序corn 16
    62.linux自动安排系统维护任务 16
    十二、Linux其它命令 16
    63.su命令 16
    64.echo命令 16
    65.clear命令 16
    66.man 命令 17
    67.umask 命令 17
    68.chgrp命令 17
    69.chattr 命令 18
    70.sudo 命令 18
    71.who 命令 19
    72.wc命令 19
    73.whatis命令 20
    74.Whereis命令 20
    75.which命令 20
    77.grep命令 20
    78.shell命令 20
    十三、Debian命令 21
    79.apt命令 21
    80.dpkg命令 23

  • 关于测试用例(三)

    phoenixDT 发布于 2007-04-03 11:59:51

    Difference Between Use Case & Test Case

     

     

    S. No.

    Use Cases

    Test Cases

     

     

     

    1

    Use case is one complete flow of that module or functionality .

    Test case consist of input value with expected out put value       

    2

    Use case is given by the client

    Test case is a document to test whether the application meet customer expectations.

    3

     

     

    Use Case testing is done by thinking differently from the test case. The main Objective of testing is to see "How to Break the software"

    Test cases are written accroding to the requirements taken from the documents and that requirements are given by the client.

    4

    All use cases are not covered in Test cases but all test cases are covered in Use case.

     

    5

    The specification of tests that are conducted from the end-user perspective.

     

    Use cases tend to focus on operating software as an end-user would conduct their day-to-day activities.

     

    A use case is a technique for capturing functional requirements of systems

    Test Case is a commonly used term for a specific test. This is usually the smallest unit of testing. A Test Case will consist of information such as requirements testing, test steps, verification steps, prerequisites, outputs, test environment, etc.

     

    A set of inputs, execution preconditions, and expected outcomes developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement

    6

    Example:

     

    Use case: After entering all required data login should successful

    Example of test cases to get desired use case:

     

    1. Provide wrong user name but right
        password

    2. Provide only name without password

    3. Provide only password without name

    4. Don't provide anything and directly try to
        login

    5. Provide name and password but don't
        hit enter

    6. Provide login name and password and
        hit enter : Login

     

     

    上面是我参加 the Google Groups "Software Testing (QC) & Software Quality Assurance (QA)" group 收到的一封邮件,个人感觉挺有参考价值的,所以粘过来给大家参考一下,希望能对大家有帮助。


     

  • 测试工具大全(各类测试工具简介)

    leaf840404 发布于 2007-03-13 18:16:53

     
     

    企业级自动化测试工具WinRunner

     

    提名理由:Mercury Interactive公司的WinRunner是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。

    工业标准级负载测试工具Loadrunner

     

    提名理由:LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

    全球测试管理系统testdirector

     

    提名理由:TestDirector 是业界第一个基于Web的测试管理系统,它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能,TestDirector极大地加速了测试过程。

    功能测试工具Rational Robot

     

    提名理由:IBM Rational Robot 是业界最顶尖的功能测试工具,它甚至可以在测试人员学习高级脚本技术之前帮助其进行成功的测试。它集成在测试人员的桌面 IBM Rational TestManager 上,在这里测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。这种测试和管理的双重功能是自动化测试的理想开始。

    单元测试工具xUnit系列

     

    提名理由:目前的最流行的单元测试工具是xUnit系列框架,常用的根据语言不同分为JUnit(java),CppUnit(C++),DUnit (Delphi ),NUnit(.net),PhpUnit(Php )等等。该测试框架的第一个和最杰出的应用就是由Erich Gamma (《设计模式》的作者)和Kent Beck(XP(Extreme Programming)的创始人 )提供的开放源代码的JUnit。

    功能测试工具SilkTest

     

    提名理由:Borland SilkTest 2006属于软件功能测试工具,是Borland公司所提出软件质量管理解决方案的套件之一。这个工具采用精灵设定与自动化执行测试,无论是程序设计新手或资深的专家都能快速建立功能测试,并分析功能错误。 

    性能测试工具WAS

     

    提名理由:Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的Client端计算机仿真大量用户上线对网站服务所可能造成的影响。

    自动化白盒测试工具Jtest

     

    提名理由:Jtest是parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。parasoft同时出品的还有C++ test,是一款C/C++白盒测试工具。

    功能和性能测试的工具JMeter

     

    提名理由:JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现。

    性能测试和分析工具WEBLODE

     

    提名理由:webload是RadView公司推出的一个性能测试和分析工具,它让web应用程序开发者自动执行压力测试;webload通过模拟真实用户的操作,生成压力负载来测试web的性能。

     测试工具大全

    Author: Vince

    工具类别 工具名称 生产厂商 相关网站
    通用功能自动化测试工具 Winrunner Mercury
    Quicktest pro Mercury
    Xrunner Mercury
    QARun Compuware
    TestPartner Compuware
    WebKing Parasoft http://www.parasoft.com
    Robot IBM Rational http://www.ibm.com/cn
    Visual Test IBM Rational http://www.ibm.com/cn
    Functional Tester IBM Rational http://www.ibm.com/cn
    SilkTest Segue
    SilkTest International Segue
    e-Tester Empirix
    WebFT Radview
    TestComplete AutomatedQA
    QA Wizard Seapine
    Software EggPlant RedStone
    Test Edition Microsoft Visual Studio
    PureTest Minq
    Autotester Autotester
    Testbench400 Original Software
    TestExpert VEReCOMM
    TestRunner Qronus
    TTCN suite Telelogic http://www.telelogic.com.cn
    QC/Replay Centerline
    Web AutoTester
    eValid Software Research
    WebART OCLC
    MaxQ 开源
    WebInject 开源
    Marathon 开源
    性能测试/监控工具  LoadRunner Mercury
    SiteScope Mercury
    Topaz Mercury
    QaLoad Compuware
    PerformaSure/benchmark Quest
    Silkperformer Segue
    Silkperformer Lite Segue
    SilkCentralTM Performance Manager Segue
    e-Load Empirix
    Robot IBM Rational http://www.ibm.com/cn
    Performance Tester IBM Rational http://www.ibm.com/cn
    WebLoad RadView
    Web applicaton stress tool  Microsoft
    Application center test Microsoft
    PureLoad Minq
    Athene APR Metron
    ForeCast Facilita
    Impact/Impact for CBT Cyrano
    Berkeley Laboratory sniffer Lawrence
    Jmeter 开源
    openSTA 开源
    Siege 开源
    StressMark 开源
    DBMonster 开源
    白盒测试/代码分析工具  VcTester ezTester http://www.eztester.com
    Jtest Parasoft http://www.parasoft.com
    C++test Parasoft http://www.parasoft.com
    SOA test Parasoft http://www.parasoft.com
    .test Parasoft http://www.parasoft.com
    Codewizard Parasoft http://www.parasoft.com
    Insure++ Parasoft http://www.parasoft.com
    DataRecon Parasoft http://www.parasoft.com
    Numega devpartner studio Compuware
    DevPartnerJavaEdition Compuware
    BoundsChecker Compuware
    SmartCheck Compuware
    DBPartner Compuware
    Bean-test Empirix
    Aqtime AutomatedQA
    QESatJava AutomatedQA
    Visual Unit Unitware
    PC-lint Gimpel Software
    Macabe Macabe
    Optimizeit Suite Borland
    JProbe Suite Quest Software
    Application assurance suite Quest Software
    Sql optimizer Quest Software
    Jprofiler ej-technologies
    workbench Cyrano
    Logiscope TeleLogic http://www.telelogic.com.cn
    rulecheck TeleLogic http://www.telelogic.com.cn
    SilkPerformer Component Test Edition Segue
    Purifyplus IBM rational http://www.ibm.com/cn
    Rational Test Realtime IBM rational http://www.ibm.com/cn
    junit 开源
    cactus 开源
    Hansel 开源
    TestNG 开源
    StrutsTestCase 开源
    JFCUnit 开源
    Httpunit 开源
    Dunit 开源
    cppunit 开源 http://sourceforge.net/projects/cppunit
    Nunit 开源
    Xunit 开源
    JTR 开源
    MallocDebug Linux平台工具
    Valgrind Linux平台工具
    Kcachegrind Linux平台工具
    dmalloc Linux平台工具
    ElectricFence Linux平台工具
    LeakTracer Linux平台工具
    memprof Linux平台工具
    ccmalloc Linux平台工具
    mprof Linux平台工具
    yamd Linux平台工具
    njamd Linux平台工具
    mpatrol Linux平台工具
    嵌入式测试工具 VcTester ezTester http://www.eztester.com
    codetest Metrowerks
    Cantata/cantana++ IPL
    IceMaster Reflex Technology
    System test Reflex Technology
    scorecast DDC-I
    Testquest Testquest
    UniText ATTOL
    vectorcast Vector software
    testrunner Qronus
    Logiscope Telelogic http://www.telelogic.com.cn
    测试管理工具 TestDirector(QualityCenter) Mercury
    QADirector Compuware
    certify Worksoft
    Product manager Aimware
    SilkCentral Test Manager Segue
    Doors Telelogic http://www.telelogic.com.cn
    e-manager Empirix
    testmanager IBM Rational http://www.ibm.com/cn
    TestView Manager RadView
    Professional T-Plan
    缺陷管理工具 TestDirector(QualityCenter) Mercury
    ClearQuest IBM Rational http://www.ibm.com/cn
    TrackRecord Compuware
    TestTrack pro Seapine
    TrueTrack McCabe
    Devtrack Techexcel
    Notes IBM Lotus
    SilkCentral Issue Manager Segue
    PVCS Tracker Merant
    AR System Remedy
    URTrack LealSoft
    Butterfly Hansky
    Bugzilla 开源
    Mantis 开源
    JIRA 开源
    BugFree 开源
    配置管理工具 ClearCase IBM Rational http://www.ibm.com/cn
    PVCS Version Manager Merant
    VCS Diamond
    StarTeam Borland
    Perforce Perforce
    TRUEchange McCabe
    SYNERGY CM  Telelogic http://www.telelogic.com.cn
    VSS Microsoft
    Firefly Hansky
    CVS Subversion
    SCCS RCS
    CCC/Harvest Computer Associates

  • 硬盘分区的小技巧

    yidianxing 发布于 2007-03-17 15:21:53

    大家分区的时侯都会输入数字,比如你想得到一个2G的分区你也许会输入2000M或者2048M其实你输入的这些数字所分出来的区在Windows下面都不会被认成整数的2G,而是1.9?G,想要得到Windows下的整数G分区,你必须知道一个公式,通过这个公式算出的值就是被Windows认成整数G的值。
    整数G计算公式:(X-1)*4+1024*X=Y
        (说明:以上“ * ” 表示 “ × ” ,下同)
      其中X就是你想要得到的整数分区的数值,单位是G,Y是你分区时应该输入的数字,单位是M,例如我想得到Windows下的3G整数空间,那么我分区时就应该输入(3-1)*4+1024*3=3080,那么我们应该在分区时输入3080作为分区的大小,同理欲分出10G的空间则应该是(10-1)*4+1024*10=10276,输入10276将会得到10G的整数空间,其他大小大家可以自行计算!
    例:
    (10-1)*4+1024*10=10276 10G
    (5-1)*4+1024*5=5136 5G
    (15-1)*4+1024*15=15416 15G
    (20-1)*4+1024*20=20556 20G
  • 学习loadrunner之一_事务

    Erica 发布于 2007-03-14 00:20:05

    Loadrunner是一款负载测试工具,它有三个核心组件分别是Virtual User GeneratorControllerAnalysisVirtual User Generator 可以通过录制脚本准确的记录下来用户的每一步操作并且可以进行集合点设置、事务设置、参数化等操作从而为在Controller中执行特定的场景做准备。Controller顾名思义,它可以控制脚本的执行,通过把脚本放置在一个特定的场景中,模拟一批真实用户的操作过程,这些模拟的真实用户就叫做虚拟用户。通过这些虚拟用户可以对系统进行负载测试。Analysis应该是测试人员极为关注的一个组件,通过Controller执行完某一个场景之后,Analysis可以自动生成测试结果并通过图形的形式显示出来,测试人员只有借助这些图表才能准确分析出系统的瓶颈并且确定性能是否达到要求。

    下面介绍一下如何进行集合点、检查点以及参数化的设置:

    对于集合点、检查点的设置有两种方法,一种是在录制完脚本以后,手工在脚本中添加相关的关键字例如lr_start_transaction等,这种方法对脚本语言的理解能力要求较高。另一种是直接在录制的过程中添加集合点、检查点,这样lr就会自动把集合点、检查点的关键字添加到脚本中。

    事务:就是用户某一步或者某几步操作的集合。当我们需要通过某一步或是某几步操作从而衡量服务器的性能的时候,这时我们就把这些操作设置成一个事务,当事务开始执行的时候lr就开始计时当事务运行结束计时停止,执行事务的时间会在在最后的结果中显示出来。

    实例:登录sina网站,把点击“天气”设置成一个事务,衡量服务器处理处理该事务的性能。

    1,点击红色的录制按钮,输入URL开始录制。弹出sina的首页,点击设置事物的开始位置,这时弹出事务开始对话框要求输入事务的名称,一般来讲我们都会把事务名称命名为容理解的名字,此处我们命名为“天气”

    点击OK完成事务的开始点设置。

    2,在sina页面上点击“天气”的连接,出现天气页面

    3,点击设置事务的结束点,这时弹出事务结束对话框

    lr根据匹配原则已经自动把事务名字一栏填入“天气”,我们只需要选择事务的状态。状态有三种LR_AUTO LR_PASS LR_FAIL LR_STOP

    LR_AUTO:事物的状态被自动设置,如果事务执行成功,状态设置为PASS,如果执行失败,状态设置为FAIL,如果由于异常中断,状态被设置成STOP.

    LR_PASS:事务如果执行成功,代码的返回状态就是PASS

    LR_FAIL:事务如果执行失败,代码的返回状态就是FAIL

    一般我们选择LR_AUTO 那么我们会有疑问什么时候我们选择PASS或者是FAIL呢?

    Lr的帮助文档中有一条例子,可以很好的帮助我们理解

    lr.start_transaction("GetStocks");
    try {

    String stocks[];
    stocks = orStockServer1.getStockList();
    if (stocks.length == 0)

                  throw new Exception("No stocks returned/available");
    lr.end_transaction("GetStocks", lr.PASS);
    }

    catch (Exception e1) {

           lr.end_transaction("GetStocks", lr.FAIL);

           lr.message(" An exception occurred : " + e1.toString() );

           }

    代码说明:这时一个得到stock list的例子,程序中设置了异常检查来确保getStockList()方法返回非零的长度。

     

    同时我也进行了如下的脚本修改

    ………………

    lr_start_transaction("天气");

        lr_think_time( 3 );

        web_add_cookie("mysinal=ai_erica; DOMAIN=weather.news.sina.com.cn");

        web_add_cookie("SINAGLOBAL=221.219.31.58.924471172571904604; DOMAIN=weather.news.sina.com.cn");

    ………………

    lr_end_transaction("天气", LR_FAIL);

    在最后我把该事物的结束状态设置为FAIL,然后运行该脚本,其实该事物的运行是没有任何错误的,完全可以运行成功,只是在最后我把事务的状态手工设置为FAIL。当脚本执行完后,查看Ececution Log看到这样一条log语句:

    Action.c(297): Notify: Transaction "天气" ended with "Fail" status (Duration: 5.1436).

    那么这样做的意义是什么呢?为什么要设置事务结束状态呢?原因就是在Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是失败的。如果语句是这样:

    Action.c(297): Notify: Transaction "天气" ended with "Pass" status (Duration: 5.1436).

    Analysis中生成结果图表的时候我们就能看到这个名为“天气”的事务执行是成功的。

    设置事务结束状态的用途就在这里。试想Lr为什么能自动生成结果图表?无非就是Analysis通过一些定义好的API获取执行脚本过程中的返回值,从而显示出事务执行的正确还是错误,或是显示出响应时间等信息,然后调用GUI使我们很直观的看到测试结果。

  • 软件测试术语(转载)

    SWeiNi 发布于 2007-03-14 17:05:55

    Unit testing(单元测试),指一段代码的基本测试,其实际大小是未定的,通常是一个函数或子程序,一般由开发者执行。

    Integration testing(集成测试),被测试系统的所有组件都集成在一起,找出被测试系统组件之间关系和接口中的错误。该测试一般在单元测试之后进行。

    Acceptance testing(验收测试),系统开发生命周期方法论的一个阶段,这时相关的用户和/或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。 

    Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。

    Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

    Black box testing(黑盒测试),指测试人员不关心程序具体如何实现的一种测试方法。根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

    White box testing(白盒测试),根据软件内部的工作原理分析来进行测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

    Automated Testing(自动化测试),使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。 

    Bug (错误),有时称作defect(缺陷)或error(错误),软件程序中存在的编程错误,可能会带来不必要的副作用,软件的功能和特性与设计规格说明书或用户需求不一致的方面。软件缺陷表现特征为:软件未达到产品说明书标明的功能;软件出现产品说明书指明不会出现的错误;软件功能超出产品说明书指明的范围;虽然产品说明书未指出但是软件应达到的目标;软件测试人员或用户认为软件难以理解,不易使用,运行速度缓慢等问题。 Bug report(错误报告),也称为“Bug record(错误记录)”,记录发现的软件错误信息的文档,通常包括错误描述、复现步骤、抓取的错误图像和注释等。

    Bug tracking system(错误跟踪系统,BTS),也称为“Defect tracking system,DTS”,管理软件测试缺陷的专用数据库系统,可以高效率地完成软件缺陷的报告、验证、修改、查询、统计、存储等任务。尤其适用于大型多语言软件的测试管理。

    Exception(异常/例外),一个引起正常程序执行挂起的事件。

    Crash(崩溃),计算机系统或组件突然并完全的丧失功能,例如软件或系统突然退出或没有任何反应(死机)。

    Build(工作版本),软件开发过程中用于内部测试的功能和性能等不完善的软件版本。工作版本既可以是系统的可操作版本,也可以是展示要在最终产品中提供的部分功能的部分系统。

    Functional testing (功能测试),也称为behavīoral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

    Load testing(负载测试),通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

    Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

    Pilot testing(引导测试),软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力。在软件外包测试中,引导测试通常是客户检查软件测试公司测试能力的一种形式,只有通过了客户特定的引导测试,软件测试公司才能接受客户真实软件项目的软件测试。

    Portability testing(可移植性测试),测试软件是否可以被成功移植到指定的硬件或软件平台上。

    Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

    Installing testing(安装测试),确保该软件在正常情况和异常情况的不同条件下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

    International testing(国际化测试),国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域中都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。

    Localizability testing(本地化能力测试),本地化能力是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。

    Localization testing(本地化测试),本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。

    Ad hoc testing (随机测试),没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

    Smoke testing(冒烟测试),冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。参考“Sanity testing(健全测试)”。

    Sanity testing(健全测试),软件主要功能成分的简单测试以保证它是否能进行基本的测试。

    User interface(用户界面,UI),广义是指使用户可以和计算机进行交互的硬件和/或软件。狭义是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

    User interface testing (用户界面测试),指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

    Static testing(静态测试),不通过执行来测试一个系统。如代码检查,文档检查和评审等。

    Regression testing(回归测试),在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,对软件的任何新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再现。

    Capture/Replay Tool (捕获/回放工具),一种测试工具,能够捕获在测试过程中传递给软件的输入,并且能够在以后的时间中,重复这个执行的过程。这类工具一般在GUI测试中用的较多。

    Debug(调试),开发人员确定引起错误的根本原因和确定可能的修复措施的过程。一般发生在子系统或单元模块编码完成时,或者根据测试错误报告指出错误以后,开发人员需要执行调试过程来解决已存在的错误。

    Deployment(部署),也称为shipment(发布),对内部IT系统而言,指它的第一个版本通过彻底的测试、形成产品、交付给付款客户的阶段。 Dynamic testing(动态测试),通过执行软件的手段来测试软件。

    Garbage characters(乱码字符),程序界面中显示的无意义的字符,例如,程序对双字节字符集的字符不支持时,这些字符不能正确显示。

    GB 18030 testing(GB 18030测试),软件支持GB 18030字符集标准能力的测试,包括GB 18030字符的输入、输出、显示、存储的支持程度。

    Priority(优先权),从商业角度出发是指错误的重要性,尤其是从客户和用户的角度出发,是指错误对于系统的可行性和可接受性的影响。与“Severity(严重性)”相对照。

    Severity(严重性),错误对被测系统的影响程度,在终端用户条件下发生的可能性,软件错误妨碍系统使用的程度。

    Quality assurance(质量保证QA),采取相关活动,以保证一个开发组织交付的产品满足性能需求和已确立的标准和过程。

    Review(评审),在产品开发过程中,把产品提交给项目成员、用户、管理者或其它相关人员评价或批准的过程。

    Screen shot(抓屏、截图),软件测试中,将软件界面中的错误(窗口、菜单、对话框等)的全部或一部分,使用专用工具存储成图像文件,以便于后续处理。

    Software life cycle(软件生命周期),开始于一个软件产品的构思,结束于该产品不再被使用的这段期间。

    Structured query language(结构化查询语句,SQL),在一个关系数据库中查询和处理数据的一种语言。

    TBD(To be determined,待定),在测试文档中标是一项进行中的尚未最终确定的工作。

    Test(测试),执行软件以验证其满足指定的需求并检测错误的过程。检测已有条件之间的不同,并评价软件项的特性软件项的分析过程。软件工程过程的一个活动,它将软件在预定的条件下运行以判断软件是否符合预期结果。

    Test case(测试用例),为特定目标而开发的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满足某个特定的需求。

    Testing coverage(测试覆盖),指测试系统覆盖被测试系统的程度,一项给定测试或一组测试对某个给定系统或构件的所有指定测试用例进行处理所达到的程度。

    Testing environment(测试环境),进行测试的环境,包括测试平台、测试基础设施、测试实验室和其他设施。

    Testing item(测试项),作为测试对象的工作版本。

    Testing plan(测试计划),描述了要进行的测试活动的范围、方法、资源和进度的文档。它确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险。

    Testing procedure(测试过程),指设置、执行给定测试用例并对测试结果进行评估的一系列详细步骤。

    Testing scrīpt(测试脚本),一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。

    Testing suite(测试包),一组测试用里的执行框架;一种组织测试用例的方法。在测试包里,测试用例可以组合起来创造出独特的测试条件。 
  • 用loadrunner监控linux资源

    xruiqi 发布于 2007-03-16 11:43:39

    loadrunner监控linux资源

    1.安装rsh,和rsh-server两个服务包。

    a.    卸载rsh

    rpm –q rsh----------查看版本号

    rpm  -e 版本号---------卸载该版本。

    B.安装

    rpm –ivh  rsh-0.17-14.i386.rpm  rsh-server-0.17-14.i386.rpm

    这两个包在我的目录下有共享。

    2 下载并安装rstatd(这个包在我的共享目录下也有)
       gunzip rpc.rstatd-4.0.1.tar.gz  

    Tar –cvf rpc.rstatd-4.0.1.tar.
      ./configure ---
    配置
       make ---
    编译
       make install ---
    安装
       rpc.rstatd ---
    启动rstatd进程

    3
     打开/etc/xinetd.conf

    里面内容是:
      # Simple configuration file for xinetd
      #
      # Some defaults, and include /etc/xinetd.d/
      defaults
      {
            instances               = 60
            log_type                = SYSLOG authpriv
            log_on_success                = HOST PID
            log_on_failure                = HOST
            cps                        = 25 30
      }
      includedir /etc/xinetd.d

    4.重启xinetd

    A:

    service xinetd reload

    B:

    /sbin/service xinetd rstart
    5
    。修改/etc/xinetd.d/下的三个conf文件  rlogin ,rsh,rexec 这三个配置文件,
    打这三个文件,将里面的disable = yes都改成 disable = no     ( disabled 用在默认的 {} 中 禁止服务)
    或是把# default: off都设置成 on  ,并把“#”去掉,这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!

    6.启动rstatd

    rpc.rstatd

    7.查看rstatd是否启动:

    rpcinfo –p

    如果能看到:  

        100001    5   udp    618  rstatd

        100001    3   udp    618  rstatd

        100001    2   udp    618  rstatd

        100001    1   udp    618  rstatd

    就说明rstatd服务已经启动。可以用LR去监视了。

     

    loadrunner中怎么监控:

    1.启动控制器。

     

     

     

     

    这样就可以监控了。

  • Loadrunner中参数的设置

    雷声之前 发布于 2007-03-15 21:08:54

    做负载或者压力测试时,很多人选择使用了Loadrunner测试工具。该工具的基本流程是先将用户的实际操作录制成脚本,然后产生数千个虚拟用户运行脚本(虚拟用户可以分布在局域网中不同的PC机上),最后生成相关的报告以及分析图。但是在录制脚本的过程中会遇到很多实际的问题,比如不同的用户有不同的使用数据,这就牵涉到参数的设置问题。本文就Loadrunner中参数的设置进行说明,希望对大家有所帮助。
    在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本。如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询、提交等等),那么你必须用参数值取代录制的数值。这个过程称为参数化脚本。
    本文主要包括如下内容:理解参数的局限性、建立参数、定义参数的属性、理解参数的类型、为局部数据类型设置参数的属性、为数据文件设置参数的属性、从已经存在的数据库中引入数据。
    除了GUI,以下的内容适合于各种类型的用户脚本。

    一、关于参数的定义
    在你录制程序运行的过程中,脚本生成器自动生成由函数组成的用户脚本。函数中参数的值就是在录制过程中输入的实际值。
    例如,你录制了一个Web应用程序的脚本。脚本生成器生成了一个声明,该声明搜索名称为“UNIX”的图书的数据库。当你用多个虚拟用户和迭代回放脚本时,也许你不想重复使用相同的值“UNIX”。那么,你就可以用参数来取代这个常量。结果就是你可以用指定的数据源的数值来取代参数值。数据源可以是一个文件,也可以是内部产生的变量。
    用参数表示用户的脚本有两个优点:可以使脚本的长度变短。可以使用不同的数值来测试你的脚本。例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
    参数化包含以下两项任务:在脚本中用参数取代常量值。设置参数的属性以及数据源。
    参数化仅可以用于一个函数中的参量。你不能用参数表示非函数参数的字符串。另外,不是所有的函数都可以参数化的。

    二、参数的创建
    可以指定名称和类型来创建参数。不存在对脚本中参数个数的限制。在Web程序的用户脚本中,你可以使用如下过程在基于文本的脚本视图中创建参数。或者,也可以在基于图标的树形视图中创建参数。
    在基于文本的脚本视图中创建一个参数:
    1
    、 将光标定位在要参数化的字符上,点击右键。打开弹出菜单。
    2
    、 在弹出菜单中,选择“Replace with a Parameter”。选择或者创建参数的对话框弹出。
    3
    、 在“Parameter name”中输入参数的名称,或者选择一个在参数列表中已经存在的参数。
    4
    、 在“Parameter type”下拉列表中选择参数类型。
    5
    、 点击“OK”,关闭该对话框。脚本生成器便会用参数中的值来取代脚本中被参数化的字符,参数用一对“{}”括住。
    注意:在参数化CORBA或者General-Java 用户脚本的时候,必须参数化整个字符串,而不是其中的部分。另外注意:除了Web或者WAP,缺省的参数括号对于任何脚本都是 “{}”。你可以在“General Options”对话框中的“Parameterization”标签(Tools>General Options)中定义参数括号种类。
    6
    、 用同样的参数替换字符的其余情况,选中参数,点击右键,弹出菜单。从弹出的菜单中,选择“Replace More Occurrences”。搜索和替换对话框弹出。“Find What”中显示了你企图替换的值。“Replace With”中显示了括号中参数的名称。选择适当的检验框来匹配整个字符或者大小写。如果要搜索规则的表达式(.!?等等),选中“Regular Expression”检验框,然后点击“Replace”或者“Replace All”
    注意:小心使用“Replace All”,尤其替换数字字符串的时候。脚本生成器将会替换字符出现的所有情况。
    7
    、 如果想用以前定义过的参数来替换常量字符串的话,选中该字符串,点击右键,然后选择“Use Existing Parameter”,子菜单“Use Existing Parameters”弹出。从子菜单“Use Existing Parameters”选择参数,或者用“Select from Parameter List”来打开参数列表对话框。
    注意:如果用以前定义过的参数来替换常量字符串的话,那么,使用“Parameter List”非常方便。同时,还可以查看和修改该参数的属性。
    8
    、 对于已经用参数替换过的地方,如果想取回原来的值,那么,就在参数上点击右键,然后选择“Restore Original value”
    Web用户脚本的树形视图中创建参数:
    1
    、将光标定位在企图参数化的地方,点击右键,从弹出的菜单中选择“Properties”。则相关的属性对话框打开。

    2
    、点击在要参数化的参量的旁边的“ABC”形状的图标。“Select or Create Parameter”对话框打开。
    3
    、在“Parameter name”中输入参数的名称,或者从列表中选择一个已经存在的参数。
    4
    、在“Parameter type”中输入参数的类型。
    5
    、点击“OK”关闭该对话框。用户脚本生成器会用参数来替换最初的字符串常量,并用一个表格形状的图标替换“ABC”形状的图标。
    6
    、要恢复参数化以前的值,点击图标,然后从弹出的菜单中选择“Undo Parameter”,则以前的值便会重现。

    三、定义参数的属性
    创建参数完成后,就可以定义其属性了。参数的属性定义就是定义在脚本执行过程中,参数使用的数据源。在Web用户脚本中,你既可以在基于文本的脚本视图中定义参数属性,也可以在基于图标的树形视图中定义参数属性。下面的过程将教你如何在基于本文的脚本视图中定义参数属性。
    在基于文本的脚本视图中定义参数属性步骤:
    1
    、 在参数上点击右键,有菜单弹出。
    2
    、 在弹出的菜单中,选择“Parameter Properties”。参数属性对话框打开,显示和当前参数类型相关的属性。
    3
    、 输入参数的属性值。
    4
    、 点击“Close”关闭参数属性对话框。
    Web用户脚本的树形视图中定义参数的属性:
    1
    、 将关标定位在参数上,然后点击右键,选择“Properties”。属性对话框打开。
    2
    、 点击要定义属性的参数旁边的表格形状按钮,点击右键,选择“Parameter Properties”。参数属性对话框打开,和参数类型相关的属性显示出来。
    3
    、 输入参数的属性。
    4
    、 点击“Close”关闭参数属性对话框。
    使用参数列表:  使用参数列表可以在任意时刻查看所有的参数,创建新的参数、删除参数,或者修改已经存在参数的属性。
    1
    、 点击参数列表按钮或者用“Vuser>Parameter List”。参数列表对话框打开。
    2
    、 要创建新的参数,点击“New”按钮。新的参数则被添加在参数树中,该参数有一个临时的名字,你可以给它重新命名,然后回车。设置参数的类型和属性,点击“OK”,关闭参数列表对话框。
    注意:不要将一个参数命名为“unique”,因为这个名称是用户脚本生成器本身的。用户脚本生成器创建新的参数,但是不会自动用该参数在脚本中替换任意选中的字符串。
    3
    、 要删除已有的参数,那么,要先从参数树中选择该参数,点击“Delete”,然后确认你的行为即可。
    4
    、 要修改已有参数,那么,要先从参数树中选择该参数,然后编辑参数的类型和属性。

     

    四、理解参数的类型  在你定义参数属性的时候,要指定参数值的数据源。你可以指定下列数据源类型的任何一种:
    Internal Data――
    虚拟用户内部产生的数据。
    Data Files ――
    存在于文件中的数据。可能是已存在的文件或者是用脚本生成器新创建的。
    User-Defined Functions――
    调用外部DLL函数生成的数据  Internal Data包括以下几种:
    1
    Date/Time  Date/Time用当前的日期/时间替换参数。要指定一个Date/Time格式,你可以从菜单列表中选择格式,或者指定你自己的格式。这个格式应该和你脚本中录制的Date/Time格式保持一致。
    2
    Group Name  Group Name 用虚拟用户组名称替换参数。在创建scenario的时候,你可以指定虚拟用户组的名称。当从用户脚本生成器运行脚本的时候,虚拟用户组名称总是None
    3
    Load Generator Name  Load Generator Name用脚本负载生成器的名称替换参数。负载生成器是虚拟用户在运行的计算机。
    4. Iteration Number
      Iteration Number用当前的迭代数目替换参数。
    5
    Random Number  Random Number用一个随机数替换参数。通过指定最大值和最小值来设置随机数的范围。
    6
    Unique Number  Unique Number用一个唯一的数字来替换参数。你可以指定一个起始数字和一个块的大小。
    7
    Vuser ID  Vuser ID用分配给虚拟用户的ID替换参数,ID是由Loadrunner的控制器在scenario运行时生成的。如果你从脚本生成器运行脚本的话,虚拟用户的ID总是-1

    五、数据文件  数据文件包含着脚本执行过程中虚拟用户访问的数据。局部和全局文件中都可以存储数据。可以指定现有的ASCII文件、用脚本生成器创建一个新的文件或者引入一个数据库。在参数有很多已知值的时候数据文件非常有用。数据文件中的数据是以表的形式存储的。一个文件中可以包含很多参数值。每一列包含一个参数的数据。列之间用分隔符隔开,比如说,用逗号。  对数据文件设置参数属性  如果使用文件作为参数的数据源,必须指定以下内容:文件的名称和位置、包含数据的列、文件格式,包括列的分隔符、更新方法。  如果参数的类型是“File”,打开参数属性(Parameter Properties)对话框,设置文件属性如下:
    1
    、 在“File path”中输入文件的位置,或者点击“Browse”指定一个已有文件的位置。缺省情况下,所有新的数据文件名都是“parameter_name.dat”,注意,已有的数据文件的后缀必须是.dat


    2
    、 点击“Edit”。记事本打开,里面第一行是参数的名称,第二行是参数的初始值。使用诸如逗号之类的分隔符将列隔开。对于每一新的表行开始一行新的数据。  注意:在没有启动记事本的情况下如果想添加列,就在参数属性对话框中点击“Add Col”,那么“Add new column”对话框就会弹出。输入新列的名称,点击“OK”。脚本生成器就会添加该列到表中,并显示该列的初始值。


    3
    、 在“Select Column”部分,指明包含当前参数数据的列。你可以指定列名或者列号。列号是包含你所需要数据的列的索引。列名显示在每列的第一行(row 0)。


    4
    、 在“Column delimiter”中输入列分隔符,你可以指定逗号、空格符等等。


    5
    、 在“First data line”中,在脚本执行的时候选择第一行数据使用。列标题是第0行。若从列标题后面的第一行开始的话,那就在“First data line”中输入1。如果没有列标题,就输入0


    6
    、 在“Select next row”中输入更新方法,以说明虚拟用户在脚本执行的过程中如何选择表中的数据。方法可以是:连续的、随机的、唯一的、或者与其它参数表的相同行。
    6.1
    、 顺序(Sequential):该方法顺序地给虚拟用户分配参数值。如果正在运行的虚拟用户访问数据表的时候,它会取到下一行中可用的数据。
    6.2
    、 随机(Random):该方法在每次迭代的时候会从数据表中取随机数
    6.3
    、 使用种子取随机顺序(Use Random Sequence with Seed):如果从Loadrunner的控制器来运行scenario,你可以指定一个种子数值用于随机顺序。每一个种子数值在测试执行的时候代表了一个随机数的顺序。无论你何时使用这个种子数值,在scenario中同样的数据顺序就被分配给虚拟用户。如果在测试执行的时候发现了一个问题并且企图使用同样的随机数序列来重复测试,那么,你就可以启动这个功能(可选项)。
    6.4
    、 唯一(Unique):Unique方法分配一个唯一的有顺序的值给每个虚拟用户的参数。
    6.5
    、与以前定义的参数取同一行(Same Line As ):该方法从和以前定义过的参数中的同样的一行分配数据。你必须指定包含有该数据的列。在下拉列表中会出现定义过的所有参数列表。注意:至少其中的一个参数必须是SequentialRandom或者Unique
    如果数据表中有三列,三个参数定义在列表中:id1name1title1,如下:。
    ID Name Title
    132 Kim Manager
    187 Cassie Engineer
    189 Jane VP
    对于参数id1,你可以指示虚拟用户使用Random方法,而为参数name1title1就可以指定方法“Same Line as id1”。所以,一旦ID“132”被使用,那么,姓名(Name“Kim”和职位(Title“Manager”同时被使用。


    7
    Updta value on数据的更新方法
    7.1
    Each iteration――每次反复都要取新值。

    7.2
    Each occurrence――只要发现该参数就要重新取值。

    7.3
    Once――在所有的反复中都使用同一个值


    8
    When out of values超出范围:(选择数据为unique时才可用到)
    8.1
    Abort Vuser――中止

    8.2
    Continue in a cyclic manner――继续循环取值

    8.3
    Continue with last value――取最后一个值


    9
    Allocate Vuser values in the Controller在控制器中分配值:(选择数据为unique时才可用到)

     

  • Java学习从入门到精通.

    harold 发布于 2007-03-14 11:01:01Top 1

    老东西了,高手们一定都看过了,不过看很多新手还是问一些相关问题就发上来了。作者是谁我忘了,是在《程序员》上看到的,在些感谢一下。
    大家觉得好就顶一下,帮助新手。

    Java学习从入门到精通

    一、 JDK (Java Development Kit)
    JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。

    1、 JDK的下载和安装
    JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html ;,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:http://java.sun.com/j2se/1.4.2/download.html。

    下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。这样JDK就安装好了。

    2、 JDK的命令工具
    JDK的最重要命令行工具:
    java: 启动JVM执行class
    javac: Java编译器
    jar: Java打包工具
    javadoc: Java文档生成器
    这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。

    二、 JDK Documentation

    Documentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。

    三、 应用服务器(App Server)

    App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:

    1、 Tomcat
    Tomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:

    Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:http://jakarta.apache.org/tomcat/ ;,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:http://www.apache.org/dist/jakarta/tomcat-4/binaries/ ;。

    下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:

    JAVA_HOME=C:\j2sdk1.4.2
    CATALINA_HOME=D:\tomcat4 (你的Tomcat安装目录)

    这样就安装好了,启动Tomcat运行CATALINA_HOME\bin\startup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http://localhost:8080来测试Tomcat是否正常启动。

    Tomcat提供了两个Web界面的管理工具,URL分别是:
    http://localhost:8080/admin/index.jsp ;
    http://localhost:8080/manager/html ;
    在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOME\conf\tomcat-users.xml这个文件,加入如下几行:

    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="robbin" password="12345678" roles="admin,manager,tomcat"/>

    这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。

    2、 BEA Weblogic
    Weblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:http://commerce.bea.com/index.jsp,Weblogic的在线文档:http://edocs.bea.com/ ;。

    3、 IBM Webshpere
    Websphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:http://www-900.ibm.com/developerWorks/cn/wsdd/ ;,Websphere的下载连接:http://www7b.software.ibm.com/wsdd/downloads/WASsupport.html ;。

    4、 Jboss
    Jboss是免费开源的App Server,可以免费的从Jboss网站下载:http://www.jboss.org/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:http://www.jdon.com/idea.html ;

    四、 Java应用的运行环境

    Java的应用可以简单分为以下几个方面:

    1、 Java的桌面应用
    桌面应用一般仅仅需要JRE的支持就足够了。

    2、 Java Web应用
    Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
    Browser层:浏览器显示用户页面
    Web层:运行Servlet/JSP
    DB层:后端数据库,向Java程序提供数据访问服务

    3、 Java企业级应用
    企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
    Browser层:浏览器显示用户页面
    Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
    Web层:运行Servlet/JSP
    EJB层:运行EJB,完成业务逻辑运算
    DB层:后端数据库,向Java程序提供数据访问服务

    4、 Java嵌入式应用
    Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。

    Java Learning Path(二)、书籍篇

    学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。

    在这里我只想补充一点看法,很多人学习Java是从《Thinking in Java》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。

    对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。

    对于Java的入门书籍,蔡学镛推荐的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java 2编程详解》或者《Java 2从入门到精通》就很不错。

    在所有的Java书籍当中,其实最最有用的,并不是O′reilly的 Java Serials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。

    对于Java Web 编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是Servlet API,所以最重要的东西就是Servlet API。当然对于初学者而言,直接通过Servlet API来学习Web编程有很大的难度,我推荐O′reilly的《Java Server Pages 》这本书来学习Web 编程。

    EJB的书籍当中,《Enterprise JavaBeans, 2nd Edition》是一本很不错的书, EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种App Server的具体实现,所以在学习EJB的同时,必须同步的学习某种App Server,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。

    但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而Ed Roman写的《Mastering EJB 2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。

    如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEA Weblogic Server》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。

    在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。

    Java Learning Path(三)过程篇

    每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

    学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

    第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

    第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

    第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
    java.lang.*;
    java.io.*;
    java.util.*;
    java.sql.*;

    这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O′reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
    首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

    对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That′all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

    第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
    java.text.*;
    java.net.*;
    javax.naming.*;
    这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。

    第六步,Java Web 编程
    Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。

    在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。

    此外Java Web编程学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及Web Application应该如何配置和部署。

    第七步,J2EE编程
    以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。

    首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。

    然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit(false),....,conn.commit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。

    在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。

    在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。

    J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。

    另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。

    Java Learning Path(四) 方法篇

    Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。

    举个例子,我们都编过Hello World

    public class HelloWorld {
    public static void main(String[] args) {
    System.out.println("Hello World");
    }
    }

    很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。

    我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。

    此外,我对于staic,public,private,Exception,try{ }catch {}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。

    其中特别值得一提的是JDK有一个非常棒的调试功能,-verbose
    java ?Cverbose
    javac ?Cverbose 以及其它很多JDK工具都有这个选项
    -verbose 可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。

    另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。

    所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。

    Java Learning Path(五)资源篇

    1、 http://java.sun.com/ ;(英文)
    Sun的Java网站,是一个应该经常去看的地方。不用多说。

    2、 http://www-900.ibm.com/developerWorks/cn/ ;
    IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!!!

    3、 http://www.java-cn.com/ ;(中文)
    JAVA中文站,目前国内资料最全、会员最多的JAVA技术网站,人气极高。有《JAVA电子书库》、《JAVA视频库》(国内唯一)、《JAVA技术文摘库》、《JAVA源代码库》、《JAVA工具库》、《招聘求职广场》等主要栏目,还有一些专家栏目。目前会员有5万多,VIP会员近1000人。无论是菜鸟还是老鸟,都能在此网站中找到自己所需要的东东!! 最强烈推荐!!!!!!

    4、 http://www.javaworld.com/ ;(英文)
    关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。

    5、 http://dev2dev.bea.com.cn/index.jsp ;
    BEA的开发者园地,BEA作为最重要的App Server厂商,有很多独到的技术,在Weblogic上做开发的朋友不容错过。

    6、 http://www.huihoo.com/ ;
    灰狐动力网站,一个专业的中间件网站,虽然不是专业的Java网站,但是在J2EE企业应用技术方面有深厚的造诣。

    7、 http://www.theserverside.com/home/ ;(英文)
    TheServerSide是一个著名的专门面向Java Server端应用的网站。

    8、 http://www.javaresearch.org/ ;
    Java研究组织,有很多优秀的Java方面的文章和教程,特别是在JDO方面的文章比较丰富。

    9、 http://www.cnjsp.org/ ;
    JSP技术网站,有相当多的Java方面的文章和资源。

    10、 http://www.jdon.com/ ;
    Jdon论坛,是一个个人性质的中文J2EE专业技术论坛,在众多的Java的中文论坛中,Jdon一个是技术含量非常高,帖子质量非常好的论坛。

    11、 http://sourceforge.net/ ;
    SourgeForge是一个开放源代码软件的大本营,其中也有非常非常丰富的Java的开放源代码的著名的软件。
  • To be your personal best! --读李开复书

    iccer 发布于 2007-02-26 18:22:49

    真正的成功有很多种:

    每个人都要寻找自己通向成功的道路!!!!

     

    衡量成功的最根本标准:

    该行为是否对社会,对他人和对自己有益,是否能让一个人在自主选择过程中,不断超越自己,并由此获得最大快乐!

     

    成功=价值观+态度+行为

     

    诚信带来财富

     

    积极主动的七大步骤:

    态度积极、乐观面对人生

    有勇气来改变可以改变的事情,有胸怀来接受不可改

    变的事情,有智慧来分辨两者的不同。

    远离被动习惯、从小事做起

    冷静辨析而不轻信他人,主动影响事情而不是受事情

    影响,有主见而不盲从,积极尝试而不退缩。

    对自己负责、自己把握命运

    积极主运抓住生命中自己可以选择、可以改变和可以

    最大化自身影响的部分,勇敢面对人生。

    多做尝试、邂逅机遇

    换工作的意义在于,一开始的决定不是终生的决定。

    有机会尝试更多,才能找到真正的兴趣所在。

    充分准备、把握机遇

    在机遇还没有来临时,就应事事用心、事事尽心,掌

    握足够信息,以便必要时做出抉择,抓住机遇。

    努力争取、创造机遇

    不知道兴趣何在?马上做出发掘兴趣的计划;不知道

    毕业后做什么?马上制定尝试新领域的计划;不知道

    欠缺什么?马上写简历,找师友打分。

    积极推销自己

    主动寻找每一个机会,让老板或老师知道自己的业

    绩、能力和功劳。同时不忘团队精神,发表见解、贡

    献主张、协助他人、鼓励大家。以事为本,以人为

    先。

     

    如何培养宽容心态?

    1、做出决定前,弄清基本事实;

    2、即使是对方的错,也要设法宽恕对方,将

    谈话或工作推进下去。

    3、不要用别人的错误惩罚自己,所以不要因

    此而让自己不快乐

     

     

    “一个人事业的成功,只有15%取决他的专业技能,另外的85%要靠人际关系和良好的沟通技巧。” --戴尔。卡耐基

     

    有效沟通=有效倾听+有效表达

     

    学习的四种境界:

    熟能生巧!

    举一反三!

    无师自通!

    融会贯通!

     

     

713/4<1234>
Open Toolbar