资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2017/10/12,#,北美专业培训机构,艾威(中国)培训学院,AVTECH,简介,AVTECH,总部,设在美国,NEW,JERSEY,是,北美排行第一的专业培训机构,设有,4,大分校,数十个培训点遍布北美、西欧和东亚,;,;,2000,年进入中国,以培养国际化的中高端信息人才为己任,专注于国际前沿的新技术研发与信息科技新兴行业的开拓教育,。,AVTECH,进入中国,13,年,属同行中历史最久。,AVTECH,是国内最大的国际认证考试中心,提供上千门国际认证考试。,AVTECH,的师资来自全球,在国内培训机构中独一无二的,。,学院,开设课程超过,500,门,学习培训内容,涵盖,IT,技术,及使用,IT,技术的医学、生物、财会、管理等相关行业所有高、中、低级知识和技能。其中一些技术课程来自于如下厂家,:,微软、,IBM,、,Oracle,、,Cisco,、,SAS,、,ISTQB,、,SAP,、,PMI,、,EXIN,、,IIBA,、,Open Group,、,APMG,、,ISACA,、,Vmware,、,EXIN,、,Peoplecart,、,EPI,、,BRMI,、,IAOP,、,ScrumAlliance,等,艾,威最新推荐:,ITIL,、,ITIL Expert,、,CISSP,、,PMP,、,CISA,、,COBIT,、,Prince2,、,MSP,、,SCM,、,CSD,、,CBAP,、,TOGAF,、,CRISC,、,CGEIT,、,CISM,、,PGMP,、,PFMP,、,BRMP,、,CDCP,、,SGF,、,NPDP,等认证培训,代码质量与评审,内容,质量管理的必要性,质量管理实践,看得见的改进,总结,互联网开发特点,市场竞争激烈,需求变化快,开发周期长,隐性成本,时间,/,迭代,代码质量的影响,成本,生产率,质量管理实践,代码质量,封装,内聚,耦合,冗余,可读性,可测试性,质量,角度:演化、维护,高内聚、低耦合是有限度的,目标群体:开发人员,代码质量,保,保障步骤,代码评审,持续集成,对待变化,的,的态度,不只是拥,抱,抱变化,,更,更要利用,变,变化,时间,/,迭代,质量,拒绝退化,重构的时,机,机,某周一早,上,上,你的,老,老板要求,编,编写一个,小,小程序,,从,从键盘读,入,入字符,,然,然后输出,到,到打印机,上,上,voidCopy(),intc;,while (c=Rdkbd()!=EOF),wrtPrt(c);,Copy,Char,Writer,Prt,Char,Read,Kbd,重构的时,机,机,booleanptFlag=false;,booleanpunchFlag=false;,voidcopy(),intc;,while(c=(ptFlag?Rdpt():Rdkbd()!=EOF),punchFlag?wrtPunch():wrtPrt(c);,几个月后,,,,老板来,找,找你,说,有,有时希望,Copy,程序能从,手,手写板读,入,入信息几,个,个月后,,老,老板又来,找,找你,有,时,时希望,Copy,程序可以,输,输出到,U,盘上,Read,Writer,Copy,Kbd,Pt,Char,Char,Prt,Puh,质量管理,平,平台,Sonar,Maven,Jenkins,插件体系,结,结构,看得见的,度,度量指标,A&D,重复代码,单元测试,复杂度,潜在,Bug,编码规则,注释,代码,重复代码,单元测试,复杂度,圈复杂度,度量代码,分,分支情况,Ifforwhile case catchthrow return &|?,复杂性越,高,高,测试,成,成本越高,复杂度,编码规则,检,检查,注释,架构,依赖结构,矩,矩阵(,DSM,),设计度量,指,指标,NOC,派生类的数目,DIT,继承树的深度,RFC,类的外部响应,LCOM4,方法的内聚,LCOM4,Lackofcohesionofmethods,说明类内,部,部方法和,变,变量之间,的,的关系,指标,LCOM4=0/,Bad,LCOM4=1/,高,LCOM4=2,/,低,SRP,原则,RFC,ResponseForClass,通过检查,方,方法被调,用,用的情况,来,来反映一,个,个类的复,杂,杂程度,可以简单,的,的理解为,一,一个类所,包,包含的方,法,法多寡,复杂度从,类,类的内部,描,描述,,RFC,从类的外,部,部来描述,RFC= M+ R,RFC= M+ R,M =number of methods intheclass,R =number of remotemethodsdirectly calledbymethodsof the class,R =numberof remote methods called, recursively through the entirecall tree,设计,设计,高级度量,Sonar,插件,附加维度,治理,可视化,集成,IDE,本地化,多语言,http:/docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/,插件,改进效果,改进,架构,-,模块划分,原,原则,采用,Maven,多,Project,结构,先,根,根据职能,分,分,Project,,再根据,功,功能模块,分,分,Package,REP(,重用发布,等,等价原则,),重用的粒,度,度就是发,布,布的粒度,CCP(,共同封闭,原,原则,),包中所有,类,类对于同,一,一类性质,的,的变化应,该,该是共同,封,封闭的,ADP(,无环依赖,原,原则,),在包的依,赖,赖关系图,中,中不允许,存,存在环,设计,-,变化应对,之,之道,视角,描述,关注点,概念,对象是一组责任,软件要负责什么?,规约,对象是一组可以被其他对象或对象自己调用的方法(也称行为),怎么使用软件?,实现,对象是代码和数据,以及它们之间的计算交互,软件怎样履行自己的责任?,Martin Fowler,的建议,:,对象的三,个,个视角,设计,-,变化应对,之,之道,在概念上层,次,次上交流,在实现层次,上,上执行,客户端,无,无需准确,知,知道具体,操,操作细节,,,,只需一,般,般性(概,念,念性)知,道,道即可,只要概念,不,不变,客,户,户端就可,以,以与实现,细,细节的变化隔离开来,案例:下,一,一节分享,去,去哪里听,设计,-,变化应对,之,之道,Programmingto an Interface,notanImplementation,客户对象,和,和服务对,象,象之间的职责分配,使用抽象,类,类隐藏具体的实,现,现,创建和使,用,用分离,案例:评,价,价、资料,设计,-,变化应对,之,之道,Favor objectcompositionover classinheritance,但是设计,模,模式中为,什,什么继承,无,无处不在,?,?,不要按照传统的方,式,式来使用继,承,承,用新的行为来特化现,有,有的具体,对,对象,案例:讲,师,师分类,讲师,男,女,主题,A,男,主题,B,男,主题,A,女,主题,B,女,性别,讲师,主题,女,男,主题,A,主题,B,设计,-,变化应对,之,之道,Designing for Change,在设计中,思,思考什么,应,应该变化,,,,并封装会发生变化的概念,封装不只,是,是隐藏数,据,据,也可,以,以是封装类型,变化不只,是,是算法和,行,行为,可,以,以是任何,事,事情,案例:委,托,托评价,讲师,听众,公司,A,公司,B,主办方,uses,uses,create,create,公司,C,设计,-,变化应对,之,之道,S,ingle ResponsibilityPrinciple,O,penClosed Principle,L,iskov Substitution Principle,I,nterfaceSegregationPrinciple,D,ependency InversionPrinciple,注释,能用代码,来,来阐述的,,,,尽量不,用,用注释,好的注释,应,应该解释,意,意图,而,不,不是解释,操,操作,什么也比,不,不上放置,良,良好的注,释,释来得有,用,用,什么也不,会,会比陈旧,、,、提供错,误,误信息的,注,注释更有,破,破坏性,目录(一,),),除了编码,,,,开发还,可,可以做什,么,么,编码规范,单元测试,代码评审,静态检查,持续集成,目录(二,),),补充,动态检查,缺陷管理,性能测试,WEB,前端分析,自动化测,试,试,除了编码,,,,开发还,可,可以做什,么,么,现状,项目开发,过,过程中,,由,由于开发,人,人员的经,验,验、代码,风,风格各不,相,相同,以,及,及缺乏统,一,一的标准,和,和管理流,程,程,往往,导,导致整个,项,项目的代,码,码质量较,差,差,难于,维,维护,需,要,要较大的,测,测试投入,和,和周期等,问,问题。,措施,可以采用,以,以下五个,步,步骤来保,证,证和提高,整,整个项目,的,的代码质,量,量:统一,编,编码规范,、,、代码样,式,式;静态,代,代码分析,(,(,static codereview,);单元,测,测试;持,续,续集成;,代,代码评审,和,和重构(,Review &Refactor,)。下面,将,将针对每,个,个步骤和,其,其所使用,的,的工具、,方,方法进行,详,详细描述,。,。,编码规范,规范统一,的,的编码能,提,提高项目,代,代码的可,读,读性和可,维,维护性,,编,编码规范,主,主,要应包含,以,以下几个,方,方面:,一般规则,和,和格式规,范,范。例如,代,代码缩进,、,、程序块,规,规范、每,行,行最大代,码,码长度等,。,。,命名规则,。,。例如包,名,名、类名,、,、变量、,方,方法、接,口,口、参数,等,等命名规,范,范,文档规范,。,。例如类,文,文件头声,明,明、类注,释,释、成员,变,变量和方,法,法注释等,规,规范。,编程规范,。,。例如异,常,常、并发,、,、多线程,等,等方面的,处,处理方式,。,。,其他规范,。,。例如日,志,志格式、,属,属性文件,格,格式,返,回,回值和消,息,息格式。,用,eclipse,控制代码,样,样式(一,),),一旦编码,规,规范确定,,,,就可以,利,利用,Eclipse,来控制代,码,码样式和,格,格式。,点击,Eclipse,的,Windows- Preference,菜单项,,在,在打开的,Preferences,对话框的,左,左侧栏中,找,找到,Java,节点下的,子,子项,CodeStyle,,,该项和它,的,的子项允,许,许您对,Java,代码的样,式,式进行控,制,制:,用,eclipse,控制代码,样,样式(二,),),可以在,Eclipse,提供的默,认,认代码格,式,式配置的,基,基础上建,立,立自定义,的,的格式。,在,Formatter,面板中,,点,点击,New,,输入新,的,的名字并,选,选择一个,默,默认的,配置作为,初,初始化格,式,式,如图,所,所示:,用,eclipse,控制代码,样,样式(三,),),设置风格,如,如图所示,:,:,代码静态,检,检查,_CheckStyle,CheckStyle,用来检查,代,代码格式,、,、规范、,风,风格。,检查并强,制,制执行统,一,一的代码,风,风格;,检查,Javadoc,;,检查类、,变,变量、方,法,法的命名,;,;,检查类和,方,方法的大,小,小;,检查编码,错,错误,例,如,如,magic number,;,代码常见,问,问题举例,:,:,代码中的,magic-number,和,magic-string,:,String s=“0000”+ Integer.toString(ch, 16);0000,、,16,的含义,,作,作者几周,后,后就忘记,了,了。,CheckStyle,的安装配,置,置(一),CheckStyle,插件地址,。,。,自动安装,地,地址:,http:/eclipse- -TheJavaScript CodeQualityTool,代码静态,检,检查,_FindBugs,FindBugs,是一个,java,代码的静,态,态代码分,析,析工具,,用,用来发现,那,那些潜在,的,的、常见,的,的、很难,被,被发现的,bug,。与其他,静,静态分析,工,工具不同,,,,,FindBugs,不注重样,式,式或者格,式,式,它试,图,图只寻找,真,真正的缺,陷,陷或者潜,在,在的性能,问,问题。如,NullPoint,空,指,指,针,针,检,检,查,查,、,、,没,没,有,有,合,合,理,理,管,管,理,理,资,资,源,源,等,等,。,。,Findbugs,插,件,件,地,地,址,址,。,。,自,动,动,安,安,装,装,地,地,址,址,:,:,http:/findbugs.cs.umd.edu/eclipse,下,载,载,地,地,址,址,:,:, TestCase,,如图,:,:,在,Eclipse,上执行,Junit,(三),新建测,试,试类:,在,Eclipse,上执行,Junit,(四),下一步,选,选择要,测,测试的,方,方法:,在,Eclipse,上执行,Junit,(五),完成,HelloTest,的,Abs,方法:,在,Eclipse,上执行,Junit,(六),执行测,试,试程序,,,,右键,,,,,RunAs-JUnit Test,,就可,以,以看到,JUnit,测试结,果,果:,绿色表,示,示测试,通,通过,,只,只要有,1,个测试,未,未通过,,,,就会,显,显示红,色,色并列,出,出未通,过,过测试,的,的方法,。,。,单元测,试,试,_EasyMock,模拟对,象,象技术,在实际,项,项目中,,,,开发,人,人员自,己,己的代,码,码往往,需,需要和,其,其他的,代,代码模,块,块或系,统,统进行,交,交互,,但,但在测,试,试的过,程,程中,,这,这些需,要,要被调,用,用的真,实,实对象,常,常常很,难,难被实,例,例化,,利,利用一,个,个模拟,对,对象来,模,模拟我,们,们的代,码,码所依,赖,赖的真,实,实对象,,,,来帮,助,助完成,测,测试,,提,提高测,试,试覆盖,率,率。,常见的,模,模拟技,术,术,模拟技,术,术有很,多,多种,,如,如,jMock,,,EasyMock,,,Mockito,,,PowerMock,等等,,下,下面用,EasyMock,举例说,明,明如何,模,模拟对,象,象。,EasyMock,(一),EasyMock,(二),/,校验用,户,户名和,密,密码,if(admin.equals(username)&123456.equals(password),ServletContextcontext =getServletContext();,RequestDispatcherdispatcher =context.getNamedDispatcher(dispatcher);,dispatcher.forward(request,response);,else,thrownewRuntimeException(Loginfailed.);,EasyMock,(三),为测试,doPost(),方法,,需,需要模,拟,拟,HttpServletRequest,等对象,,,,以便,脱,脱,离,J2EE,容器来,测,测试这,个,个,Servlet,。,建立,TestCase,,名为,LoginServletTest,:,publicclassLoginServletTestextends TestCase ,测试当,用,用户名,和,和口令,验,验证失,败,败的情,形,形:,publicvoidtestLoginFailed()throwsException ,/,创建,mock,对象,MockControlmc=,MockControl.createControl(HttpServletRequest.class);,HttpServletRequestrequest=(HttpServletRequest)mc.getMock();,EasyMock,(四),/,设置,mock,参数,request.getParameter(username);/,期望下,面,面的测,试,试将调,用,用此,方法,,参,参数为,username,mc.setReturnValue(admin,1);/,期望返,回,回值为,admin,,仅调,用,用,1,次,request.getParameter(password);/,期望下,面,面的测,试,试将调,用,用此方,法,参,数,数为, password,mc.setReturnValue(1234, 1);/,期望返,回,回值为,1234,,仅调,用,用,1,次,/,表示录,制,制完毕,mc.replay();,EasyMock,(五),try,servlet.doPost(request,null);,fail(Notcaughtexception!);,catch(RuntimeExceptionre),assertEquals(Loginfailed.,re.getMessage();,/verify:,mc.verify();,运行,JUnit,,测,试,试通,过,过!,表,表示,我,我们,的,的,Mock,对象,正,正确,工,工作,了,了!,单元,测,测试,_,测试,覆,覆盖,率,率分,析,析,为了,衡,衡量,单,单元,测,测试,的,的质,量,量和,覆,覆盖,的,的范,围,围,,需,需要,对,对单,元,元测,试,试的,代,代码,进,进行,测,测试,覆,覆盖,分,分析,。,。,具体,采,采用,哪,哪些,指,指标,可,可以,根,根据,项,项目,的,的实,际,际情,况,况来,定,定,,以,以避,免,免因,过,过高,的,的指,标,标增,加,加了,代,代码,开,开发,人,人员,的,的工,作,作量,而,而影,响,响了,项,项目,整,整体,的,的进,度,度。,。,。,业内,比,比较,常,常用,的,的工,具,具有,:,:,1,、,Cobertura,,对,应,应的,eclipse,插件,:,:,eCobertura,。,2,、,E,clEmma,是一,款,款基,于,于,EMMA,的,Eclipse,插件,,,,方,便在,EclipseIDE,中进,行,行测,试,试覆,盖,盖率,分,分析,。,。,插件,下,下载,地,地址,:,:,http:/update.eclemma.org/,Eclipse,测试,覆,覆盖,率,率分,析,析(,一,一),下面,说,说怎,样,样在,eclipse,上执,行,行测,试,试覆,盖,盖率,分,分析,:,:,先安,装,装插,件,件,EclEmma,然后,在,在测,试,试用,例,例写,好,好后,,,,可,以,以在,右,右键,点,点击,测试,类,类,,选,选择,CoverageAs-JUnitTest.,Eclipse,测试,覆,覆盖,率,率分,析,析(,二,二),单元,测,测试,执,执行,完,完后,,,,,Coverage,视图,中,中会,显,显示,所,所选,择,择的,测,测试,的,的覆,盖,盖率,。,。双,击,击打,开,开某,一,一具,体,体的,类,类后,,,,可,以,以看,到,到高,亮,亮显,示,示的,覆,覆盖,分,分析,结,结果,,,,如,图,图,所,所示,。,。红,色,色代,表,表测,试,试没,有,有覆,盖,盖到,该,该行,,,,黄,色,色表,示,示部,分,分覆,盖,盖,,绿,绿色,的,的行,表,表示,该,该行,在,在本,次,次测,试,试中,被,被覆,盖,盖到,。,。,Eclipse,测试,覆,覆盖,率,率分,析,析(,三,三),在,Coverage,视图,中,中可,以,以通,过,过点,击,击鼠,标,标右,键,键将,测,测试,覆,覆盖,分,分析,的,的结,果,果导,出,出成,需,需要,的,的格,式,式,,例,例如,HTML,。,单元,测,测试,-FIRST,原则,Fast,(快,速,速),Independent,(独,立,立),Repeatable,(可,重,重复,),),Self-Validating,(自,足,足验,证,证),Timely,(及,时,时),持续,集,集成,持续,集,集成,(,(,ContinuousIntegration,)是,利,利用,一,一系,列,列的,工,工具,、,、方,法,法和,规,规则,,,,做,到,到快,速,速的,构,构建,开,开发,代,代码,,,,自,动,动的,测,测试,化,化,,来,来提,高,高开,发,发代,码,码的,效,效率,和,和质,量,量,。,。,持续,集,集成,的,的提,出,出,如果,项,项目,开,开发,的,的规,模,模比,较,较小,,,,比,如,如一,个,个人,的,的项,目,目,,如,如果,它,它对,外,外部,系统,的,的依,赖,赖很,小,小,,那,那么,软,软件,集,集成,不,不是,问,问题,,,,但,是,是随,着,着软,件,件项,目,目复,杂,杂,度的,增,增加,(,(即,使,使增,加,加一,个,个人,),),,就,就会,对,对集,成,成和,确,确保,软,软件,组,组件,能,能够,在,在一,起工,作,作提,出,出了,更,更多,的,的要,求,求,-,要早,集,集成,,,,常,集,集成,。,。早,集,集成,,,,频,繁,繁的,集,集成,帮助,项,项目,在,在早,期,期发,现,现项,目,目风,险,险和,质,质量,问,问题,,,,如,果,果到,后,后期,才,才发,现,现这,些问,题,题,,解,解决,问,问题,代,代价,很,很大,,,,很,有,有可,能,能导,致,致项,目,目延,期,期或,者,者项,目,目失,败,败。,持续,集,集成,持续,集,集成,的,的常,见,见做,法,法是,:,:持,续,续集,成,成框,架,架,+,版本,管,管理,器,器,+,构建,工,工具,。,。,1,、持,续,续集,成,成框,架,架常,用,用的,有,有:,Jenkins,、,Continuum,、,CruiseControl,等。,2,、版,本,本管,理,理器,常,常用,的,的有,:,:,ClearCase,、,Wincvs,、,SVN,等。,3,、构,建,建工,具,具常,用,用的,有,有:,Ant,、,Maven,。,后面,主,主要,以,以,SVN+Jenkins+Ant,实现,方,方式,举,举例,说,说明,。,。,持续,集,集成,_,版本,管,管理,器,器,持续,集,集成,_,自动,构,构建,Ant,在构,建,建过,程,程方,面,面十,分,分优,秀,秀,,它,它是,一,一个,基,基于,任,任务,和,和依,赖,赖的,构,构建,工,工具,。,。下,载,载地,址,址:,http:/ant.apache.org/bindownload.cgi,Maven,不单,是,是构,建,建工,具,具,,也,也是,个,个项,目,目管,理,理平,台,台。,下,下载,地,地址,:,:,http:/maven.apache.org/download.html,Maven,与,Ant,对比,,,,一,些,些使,用,用上,的,的区,别,别:,1,、,Maven,是基,于,于中,央,央仓,库,库的,编,编译,,,,即,把,把编,译,译所,需,需要,的,的资,源,源放,在,在一,个,个中,央,央仓,库,库里,,,,如,jar,,,tld,等。,当,当编,译,译的,时,时候,,,,,maven,会自,动,动在,仓,仓库,中,中找,到,到相,应,应的,包,包,而,ant,需要,自,自己,定,定义,了,了。,用,用,maven,编译,的,的项,目,目在,发,发布,的,的时,候,候只,需,需要,发,发布,源,源码,,,,小,得,得很,,,,而,反,反之,,,,,ant,的发布,则,则要把,所,所有的,包,包一起,发,发布。,2,、,Maven,有大量,的,的重用,脚,脚本可,以,以利用,,,,如生,成,成网站,,,,生成,javadoc,,,sourcecode reference,,等。,而,而,ant,都需要,自,自己去,写,写。,3,、,Maven,目前不,足,足的地,方,方就是,没,没有象,ant,那样成,熟,熟的,GUI,界面。,持续集,成,成,_,持续集,成,成框架,有了自,动,动构建,后,后,我,们,们就可,以,以通过,Jenkins,每天定,时,时用,Ant,脚本或,Maven,,加上,JUnit,、,Cobertura/,EMMA,等的,ANT,脚本调,用,用,每,一,一次,的构建,都,都可以,把,把这些,检,检查工,作,作自动,的,的进行,一,一遍测,试,试。然,后,后生成,测,测试报,告进行,查,查阅。,Jenkins,(,Jenkins,的前身,),)可以,说,说在安,装,装和配,置,置上最,简,简单的,CI,产品,。,Jenkins,是基于,java,开发的,,,,但它,不,不仅限,于,于构建,基,基于,Java,的软件,,,,还能,构,构建,.net,、,Python,、,Ruby,等。,Jenkins,提供了,一,一组很,明,明确和,可,可扩展,API,的,Jenkins,组件。,这,这批组,成,成一个,大,大的类,库,库的,Jenkins,组件反,过,过来又,丰,丰富了,Jenkins,的功能,;,;它们,都,都是开,源,源的,,而,而且它,们,们可以,直,直接通,过,过,Jenkins,的控制,台,台来进,行,行安装,。,。,安装软,件,件下载,地,地址:, Review,)是,Java,项目开,发,发过程,中,中的一,个,个重要,步,步骤,,代,代码评,审,审可以,帮,帮助发,现,现静态,代,代码分,析,析过程,中,中无法,发,发现的,一,一些问,题,题,例,如,如代码,在,在逻辑,上,上或者,功,功能上,是,是否存,在,在错误,,,,代码,在,在执行,效,效率和,性,性能上,是,是否有,需,需要改,进,进的地,方,方等。,代,代码评,审,审还可,以,以帮助,新,新进入,项,项目组,的,的成员,快,快速学,习,习和了,解,解项目,,,,促进,经,经验分,享,享。代,码,码评审,主,主要包,括,括两种,形,形式,,同,同级评,审,审(,Peer Review,)和小,组,组评审,(,(,GroupReview,)。同,级,级评审,主,主要指,项,项目成,员,员间的,互,互相评,审,审,小,组,组评审,是,是指通,过,过召开,评,评审会,议,议,项,目,目成员,一,一起对,项,项目代,码,码进行,评,评审。,为了提,高,高代码,评,评审的,有,有效性,和,和效率,,,,可以,借,借助一,些,些外部,工,工具,,比,比较常,用,用的代,码,码评审,工,工具有,Jupiter,和,Code Striker,。,Jupiter,是一款,开,开源的,Eclipse,插件,,允,允许成,员,员将评,审,审意见,定,定位到,真,真实代,码,码的具,体,体行,,由,由于代,码,码评审,的,的结果,以,以,XML,文件的,形,形式保,存,存。,Jupiter,使用,Eclipse,插件下,载,载地址,:,:, -Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.port=7080,其中,7080,是,Jconsole,连接的,端,端口。,动态检,查,查,_JConsole,(二),在本机,运,运行,jdkbinjconsole.exe,,输入,远,远端机,器,器的,IP,、,JMX,端口就,可,可以连,接,接上去,了,了。如,下,下图所,示,示:,动态检,查,查,_JConsole,(三),在本机,运,运行,jdkbinjconsole.exe,,输入,远,远端机,器,器的,IP,、,JMX,端口就,可,可以连,接,接上去,了,了。如,下,下图所,示,示:,动态检,查,查,_JMX,(一),JMX,(,Java ManagementExtensions,,即,Java,管理扩,展,展)是,一,一个为,应,应用程,序,序、设,备,备、系,统,统等植,入,入管理,功,功能的,框,框架。,通,通常使,用,用,JMX,来监控,系,系统的,运,运行状,态,态或管,理,理系统,的,的某些,方,方面,,比,比如清,空,空缓存,、,、重新,加,加载配,置,置文件,等,等 。,下面举,例,例说明,怎,怎样通,过,过,JMX,监控自,己,己的程,序,序:,1,、,Hello,是一个,需,需要被,管,管理的,类,类:,动态检,查,查,_JMX,(二),2,、要管,理,理,Hello,则必须,创,创建一,个,个相应,Mbean,:,说明:,包,包含在,MBean,中方法,都,都将是,可,可以被,管,管理的,。,。,MBean,起名是有,规范的,,就,就是原类,名,名后加上,MBean,字样。,动态检查,_JMX,(三),3,、创建,Agent,类注册服,务,务,MBean,:,动态检查,_JMX,(四),4,、运行后,通,通过,JConsole,监控的情,况,况如下图,:,:,WEB,前端分析,(,(一),为什么关,注,注前端性,能,能分析?,“系统响,应,应时间”,指,指应用系,统,统从请求,发,发出开始,到,到客户端,接,接收到所,有,有,数据所消,耗,耗的时间,。,。这样,,“,“系统响,应,应时间”,加,加上“呈,现,现时间”,,,,才,是完整的,用,用户感受,到,到的响应,时,时间。,响应时间,=,网络响应,时,时间,+,应用程序,响,响应时间,+,浏览器处,理,理时间,响应时间,=,(,N1+N2+N3+N4,),+ (A1+A2+A3)+ Tb,WEB,前端分析,(,(二),为什么关,注,注前端性,能,能分析?,WEB,前端分析,(,(三),Yahoo!,的,ExceptionalPerformance,团队为改,善,善,Web,性能带来,最,最佳实践,。,。他们为,此,此进行了,一,一系列的,实,实验、开,发,发了各种,工,工具、写,了,了大量的,文,文章和博,客,客并在各,种,种会议上,参,参与探讨,。,。最佳实,践,践的核心,就,就是旨在,提,提高网站,性,性能。,Excetional Performance,团队总结,出,出了一系,列,列可以提,高,高网站速,度,度的方法,。,。可以分,为,为,7,大类,34,条。包括,内,内容、服,务,务器、,cookie,、,CSS,、,JavaScript,、图片、,移,移动应用,等,等七部分,。,。,详情请参,考,考附件:,雅虎团队,经,经验,-,网站页面,性,性能优化,的,的,34,条黄金守,则,则,.pdf,WEB,前端分析,(,(四),Yahoo!,的,ExceptionalPerformance,团队为改,善,善,Web,性能带来,最,最佳实践,。,。他们为,此,此进行了,一,一系列的,实,实验、开,发,发了各种,工,工具、写,了,了大量的,文,文章和博,客,客并在各,种,种会议上,参,参与探讨,。,。最佳实,践,践的核心,就,就是旨在,提,提高网站,性,性能。,Excetional Performance,团队总结,出,出了一系,列,列可以提,高,高网站速,度,度的方法,。,。可以分,为,为,7,大类,34,条。包括,内,内容、服,务,务器、,cookie,、,CSS,、,JavaScript,、图片、,移,移动应用,等,等七部分,。,。,详情请参,考,考附件:,雅虎团队,经,经验,-,网站页面,性,性能优化,的,的,34,条黄金守,则,则,.pdf,WEB,前端分析,(,(五),常用的前,端,端性能分,析,析工具有,:,:,Fiddler,IBMPageDetailer,(商用),FireBug,Yahoo YSlow,HTTPAnalyzer,(商用),AOLPageTest,建议采用,IBMPageDetailer,、,Yahoo YSlow,。,缺陷管理,缺陷管理,/,软件缺陷,管,管理(,Defect Management,)是在软,件,件生命周,期,期中获取,、,、管理、,沟,沟通任何,变,变更请求,的,的过程(,从,从变更的,建,建议到变,更,更的解决,),)。可以,确,确保你的,问,问题如需,求,求或者缺,陷,陷被跟踪,管,管理而不,丢,丢失。,业内在用,的,的缺陷管,理,理工具:,自动化测,试,试,_QTP,(一),QTP,是,Quicktest Professional,的简称,,是,是一种自,动,动测试工,具,具。使用,QTP,的目的是,想,想用它来,执,执行重复,的,的手动测,试,试,主要,是,是用于回,归,归测试和,测,测试同一,软,软件的新,版,版本。因,此,此你在测,试,试前要考,虑,虑好如何,对,对应用程,序,序进行测,试,试,例如,要,要测试那,些,些功能、,操,操作步骤,、,、输入数,据,据和期望,的,的输出数,据,据等。,以验证,eapmgr,登录为例,,,,简单演,示,示,QTP,的用法。,1,、测试用,例,例:,自动化测,试,试,_QTP,(二),2,、运行,QTP,,在以下,提,提示框中,勾,勾选“,Web,”,自动化测,试,试,_QTP,(三),3,、,在主界面,上,上,点击,“,“,Record,”,开始,录,录制脚本,:,:,输入测试,URL,后,点,【,确定,】,:,自动化测,试,试,_QTP,(三),在自动打,开,开的,eapmgr,登录页面,中,中,输入,用,用户名:,admin,,密码:,suntek,:,点,【,登录,】,按钮,系,统,统弹出提,示,示:,自动化测,试,试,_QTP,(三),4,、完成录,制,制,点击,【stop】,:,自动录制,的,的脚本如,下,下:,修改脚本,,,,加上提,示,示内容校,验,验:,自动化测,试,试,_QTP,(四),完整脚本,如,如下图所,示,示:,5,、执行脚,本,本,让,QTP,自动验证,结,结果:,自动化测,试,试,_QTP,(五),执行结束,,,,返回结,果,果报告:,性能测试,_LR,(一),LoadRunner,,是一种,预,预测系统,行,行为和性,能,能的负载,测,测试工具,。,。通过以,模,模拟上千,万,万用户实,施,施并发负,载,载及实时,性,性能监测,的,的方式来,确,确认和查,找,找问题,,LoadRunner,能够对整,个,个企业架,构,构进行测,试,试。通过,使,使用,LoadRunner,,企业能,最,最大限度,地,地缩短测,试,试时间,,优,优化性能,和,和加速应,用,用系统的,发,发布周期,。,。,LoadRunner,是一种适,用,用于各种,体,体系架构,的,的自动负,载,载测试工,具,具,它能,预,预测系统,行,行为并优,化,化系统性,能,能。,性能测试,_LR,(二),以对,eapmgr,登录性能,测,测试为例,,,,简单演,示,示,LR,的用法。,测试目标,:,:测试,172.16.52.67,上的,eapmgr,登录功能,,,,在,100,并发下测,试,试,5,分钟的平,均,均响应时,间,间。,1,、新建脚,本,本:,性能测试,_LR,(三),2,、录制脚,本,本,点击,【Start Record】,按钮:,输入,URL,在弹出页,面,面中填写,账,账号、密
展开阅读全文