基于Python+Selenium的web自动化测试框架的设计与实现_第1页
基于Python+Selenium的web自动化测试框架的设计与实现_第2页
基于Python+Selenium的web自动化测试框架的设计与实现_第3页
基于Python+Selenium的web自动化测试框架的设计与实现_第4页
基于Python+Selenium的web自动化测试框架的设计与实现_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要最近这些年来,随着科技与计算机行业的发展,软件测试的重要性越来越突出,传统方式的手工测试主要根据测试用例来手动执行测试,测试用例没有覆盖到的地方则采用错误猜测的方式去弥补,这样大量的重复的劳动容易产生疲劳,很容易导致错误的产生和测试的盲点。使用自动化测试可以测试UI界面的布局和排版、大小等等,还可以进行兼容性测试、稳定性测试等。在进行工作的时候,能够有效提高软件测试的效率和灵活性,减短软件开发的周期;节约测试的花费,也可以使测试用例更加易于维护。本文主要研究的是软件测试的理论基础和相关的实现技术,阐述了软件自动化测试框架的关键点,设计并且实现了一个基于python+selenium的web自动化测试框架,并在此自动化测试框架的基础上实现了简单的自动化测试功能。关键词:web自动化测试selenium+python自动化测试框架Abstract Inrecentyears,withthedevelopmentoftechnologyandcomputerindustry,softwaretestinghasbecomingmoreandmoreprominent.Thetraditionalmanualtestingismainlybasedontestcasestomanuallyperformtests,andtheplacesnotcoveredbytestcasesaremadeupbythewayoferrorguessing,soalotofrepeatedlaborispronetofatigue,whichiseasytoleadtothegenerationandtestingoferrorsTheblindspotof.Automatictestingcanbeusedtotestthelayout,layout,size,etc.ofUIinterface,aswellascompatibilitytestandstabilitytest.Intheprocessofwork,itcaneffectivelyimprovetheefficiencyandflexibilityofsoftwaretesting,reducethecycleofsoftwaredevelopment;savethecostoftesting,butalsomakethetestcaseseasiertomaintain;.Thispapermainlystudiesthetheoreticalbasisandrelatedkeytechnologiesofsoftwaretesting,andexpoundsthekeypointsofsoftwareautomatedtestingframework,includingsoftwareautomatedtestinglifecycle,howtobuildhigh-qualityautomatedtestingprocess,etc.DesignandimplementawebautomationtestingframeworkbasedonPython+selenium,andrealizetheautomationtestingfunctionbasedonthisframework.Keywords:WebautomatedtestingSelenium+PythonAutomatedtestingframework目录第一章绪论 第一章绪论1.1课题研究背景随着互联网技术的迅猛发展,软件测试是不可或缺的一部分,也是能够保证软件质量的一种重要方式,进行软件测试,既能够确保了软件的质量,也降低了软件后期维护的成本。自动化测试能够在很大程度上杜绝人为工作出现的失误和降低工作的难度,使工作流程更加精简。不仅提高了工作的效率,还保证了质量的良好性,增加了软件的可用性和投资的效益。近年来,Firefox、Internet、Chrome等浏览器被很广泛的使用,传统的信息与数据库、财政、娱乐、教育等许多方面都开始使用和利用互联网,产生最大最长远的价值。Web具有非常强大的并发性,因为在很短的时间内,Web内的一个网页能够支持被成千上万的人去点击请求查看或者使用。但是随着用户的增加,Web应用程序日渐复杂的功能需求,Web系统中潜在的漏洞或者弊端也会越来越多。所以,对于一个网站来说,拥有一套高效的、可管理的测试框架是必不可少的。传统的测试工作主要是使用手工进行测试用例的编写并一条一条的去执行用例。这种测试方式不仅工作量大,工作效率也低。繁琐、重复枯燥的手工测试会导致测试人员工作疲劳和工作质量下降,从而影响到软件的质量。因为需求变更而不得不进行的大量的重复手工测试是最常见的。使用自动化测试可以降低需求变更的时候的测试工作的成本以及减少工作量和提高测试的效率,也能使软件各能够更加满足用户的需求。而自动化测试框架在进行自动化测试工作的时候也是极其重要的。本文将以百度和维普网站的业务为例,在详细设计自动化测试框架之后,实现基于此框架的自动化测试功能。1.2国内外发展现状与发展过程1.2.1国内发展历史软件相关的领域和行业越来越受到关注,在最近这几年也在你朝着越来越好的方向发展飞速,因为中国在这个领域起步和发展的比较晚,在这方面不如其他发达国家发展的好,但是,近年来中国在软件方面发展的越来越快,越来越好,在短视频这方面也有着领先的趋势。随着Web应用在政府、教育、教务、金融、娱乐等领域的广泛使用,人们愈发认识到Web应用的实用性和便捷性,随着软件质量要求的提高,必须要在经过严格的测试以后才能将软件正式的投入运营和使用,在计算机相关的行业里,软件测试发展的越来越快,软件测试方面的人才的需求也剧增。在国内,软件测试的发展还不是特别好,还处于一个起步阶段的状态。但是软件测试的发展前景光明,随着软件市场的发展与扩大,软件测试这个岗位越来越重要,作为开发过程中不可或缺的软件测试的需求以及网站也开始增多。1.2.2国外研究现状在国际上,软件测试是软件质量监控的一种方法,是一项非常重要并且不可或缺的工作任务,测试也是一个独立于其他工作的。在IBM、微软等大型系统软件公司,在较多重要的开发项目团里面,开发人员通常是测试人员的两倍甚至是四倍以上,比例相差非常的大。自动化测试技术也在快速的发展。许多自动化测试工具被开发出来。自动化测试系统正在朝着通越来越好、越来越智能化的方向高速稳定发展。1.3本文的主要内容和实现目标 本文主要是针对web应用,设计和实现一个能够支持UI功能测试、兼容性测试和稳定性测试的web自动化测试框架,并且能够生成自动化测试报告和自动发送测试集结果报告,提供一些比较实用的辅助功能。在进行测试工作的时候使用这个自动化测试框架,不仅能够使脚本更利于维护,而且能够使脚本的复用性得到提升。能够达到节省编写测试脚本的时间以及保证产品的质量得到目的。 以下是本文的主要研究的对象和内容: (1)在功能和非功能方面分别对web自动化测试框架进行相关的需求分析。 (2)针对本自动化测试框架,进行一个相关的整体框架的详细设计和分层的设计,本自动化测试框架的整个框架分别分成Utility、Page、Test、UI和TestSuit这五层。 (3)对webdriver基于selenium的底层接口进行二次封装,实现提高脚本的可维护和可复用性的目的。1.4论文结构 本论文的章节内容如下所示: 第一章:绪论,这一章主要是进行一个关于课题的研究背景、国内的发展历史、国外的发展现状、本文主要说明的内容和实现的目标的简单的叙述说明。 第二章:试概述,这一章主测试和自动化测试的定义、需要测试内容和为什么要进行自动化测试进行简单的介绍和说明。 第三章:Web自动化测试框架需求分析,这一章主要是在功能和非功能方面对自动化测试框架进行一个需求分析,对构建测试框架的工具进行简单的介绍说明,以及对框架的继承开发环境的简单介绍说明。 第四章:Web自动化测试框架的设计,这一章主要是框架的分层设计进行一个详细的说明,以及对设计过程中需要注意的问题进行阐述。 第五章:Web自动化测试框架的实现,这一章主要是介绍和说明了框架的结构是怎样的、框架实现的功能有哪些以及Selenium对浏览器的支持。 第六章:Web自动化测试框架的应用,这一章主要是针对本框架编写几个简单的自动化测试实例,在框架下成功运行之后,对本自动化测试框架实现的效果进行一个展示。 总结:总结主要是进行一个关于框架的实现成果与预期结果的思考以及总结,和对本框架不足的地方进行简单的说明以及对后续的发展进行说明。第二章传统软件测试概述2.1软件测试概述2.1.1软件测试的定义 如何能够提高软件的正确性、完整性以及质量使在软件测试过程中需要考虑和解决的问题。也就是说软件测试工作是去审核一种过程。或者比较测试结束之后得到的实际结果和预期结果的一种过程。软件测试是在规定的条件下去运行和操作程序,然后发现程序的错误。以此来测量待测试软件的质量,并且对这个软件程序是否能够满足软件设计的要求。软件测试工作的执行是为了发现错误,去检验程序或者产品是否能够达到用户的需和程序是否能够提高用户的使用体验。各种边界条件都是在提高软件应用程序的质量时,设计测试用例的时候应该要考虑到的。在一些比较特殊的情况下,还需要去制造极端和意外的状态。根据二八原则可以知道,百分之八十在测试过程中发现的bug一般都来自百分之二十的模块中。对于误差结果的确认过程,不可能去指定非常严格的测试计划。对于测试过程中产生的所有文档,都需要去妥善保存,以供查看。2.1.2软件测试的分类软件测试可以根据测试过程中使用的方法或者测试的对象和测试实施的地方进行分类,常用的测试方法非常的多。包括单元测试、性能测试、手工和兼容性测试等。手工测试是属于比较原始的一种测试方法,需要由人工手动的被各个测试用例输入,然后测试的结果和机器的实际反映,需要一个一个的进行测试。虽然可以进行发散思维无既定结果的测试,但是执行的效率比较慢,量大易出错。自动化测试是有前提条件的,需要在预先设定好的条件下去运行指定的系统或者程序,然后对运行得到的结果进行一个对比和评价。简单来说,自动化测试就是一个将手工测试行为转变成为机器去执行的一个过程。在自动化测试工作中,功能自动化测试占很大一部分。图2-1软件测试分类2.1.3软件测试的过程模型(1)V模型这种模型是早期的测试模型,也是比较具有代表性的,在早期的开发模型中,大家总是认为在需求分析、概要设计、详细设计和编写脚本完成之后才可以进行软件测试工作。尽管整个项目的大部分时间都被测试工作占据,还是会有一些人认为测试工作的执行只适合在软件开发完成以后再去进行,并不任务测试工作也是软件开发的最主要的一个过程。通过V模型,我们可以很清楚的知道从开发到测试的过程逻辑,并且可以很清晰的把测试的过程和软件的开发过程中各个不同的阶段相对应的关系都描述出来。V模型也不是比较比较完善的,也会具有一定的局限性,比如在V模型中,概要分析、软件概要设计、软件详细设计以和编写代码工作的完成是进行测试工作的前提,而不是把软件测试当做开发过程中一个重要的步骤。V模型主要是针对程序完成之后进行测试,对在需求分析阶段的问题不能早期发现,在以后的验收测试之前不太可能被发现。图2-2软件测试的V模型(2)W模型在W模型中,把测试的过程当成是软件开发过程的核心部分,并且指出测试的对象不是唯一或者单一的,测试应该是伴随着开发一起的,并不是开发工作完成之后才可以进行测试,而是完成一个部分的开发就可以开始进行对应部分的测试工作。同时进行测试和开发,这样就可以尽早的发现问题并提出相应的解决方案,W模型也具有一定的局限性,早期的测试并没有在W模型中被表达出来,需求、设计和编码等过程在V模型和W模型中都被当成是软件开发中的过程。必须有上一环节已经顺利完成的相关指令或者提示,才能够继续执行下一环节的工作。图2-3软件测试的W模型2.1.4软件测试相关流程和文档(1)测试流程软件测试的具体流程如下图2-4所示。图2-4软件测试的流程(2)测试文档概述在软件测试的组成部分中,测试文档是非常重要的一个部分,进行测试工作的计划、测试过程中记录的报告、测试发现问题的报告以及测试评估报告都是测试文档的主要包括的。软件的测试文档标准主要分:和规范。一般来说,编写测试文档的时候,用国际标准或者国内规范标准去作为测试文档的模板会比较好。测试工作人员建立具体项目的测试文档时,可以适当的对文档的格式进行修改,时文档更加符合项目的具体需求。(3)编写测试文档测试的对象、组织、任务计划、通过的标准、失败的标准、风险、时间分配等都是在测试计划文档里需要确定的。测试方案跟测试计划文档比较相似,但是测试方案跟测试计划文档不同的是,测试方案更加偏向去规划测试过程的技术因素。测试文档的编写过程需要非常认真和细心的去对待,因为这是一项细致繁琐而且比较复杂的工作。一份好的测试文档可以为后续的测试工作提供保障,使得测试工作的完成更加顺利。所以在编写测试文档的时候,不仅需要知道测试的内容,还需要知道如何去测试,并对整个测试工作有一个大致的规划。测试文档主要包括的内容如下图2-5所示。图2-5测试文档2.2软件自动化测试相关理论2.2.1自动化测试的定义在手工测试的基础上,并相对手工测试的概念而发展出来的自动化测试,指的是测试过程中无需人工干预,不是用手工进行软件测试,而是完全由测试人员预先设计好的计算机程序或者机器去进行测试工作。也就是说,通过执行用程序语言编制的自动化测试脚本去模拟手工测试的擦操作步骤,在执行结束以后给出自动化测试的结果。这包含了所有的测试阶段和测试过程,它不仅能支持跨平台,而且它是独立于进程的。一般来说,测试人员在测试用例和评审完成之后按照测试用例中的描述去逐步进行测试工作,最后再对比实际的结果与实际的结果。。这个是一个比较繁琐和耗时的测试过程,为了能够更加好的提高测试的效率、节省测试的花费和人力物力,就引进了自动化测试的概念以及技术。理论上,手工测试的所有流程都能够被自动化测试覆盖,但是并不是所有的项目都适合采用自动化测试去进行测试,也不是每一次都测试都进行自动化测试的。,需要考虑投资与产出的比较,一般来说,如果软件整体已经比较成熟,在比较稳定的功能模块可以尝试进行自动化测试。,不同类型的自动化测试也有不同发展。许多不一样的自动化测试工具被研发出来,使自动化测试工作可以更加顺利并且高效的展开。虽然自动化测试的好处有很多,但是也有弊端,比如在软件产品的功能不稳定的时候,需要花费很大在自动化测试脚本的维护方面,所以在自动化测试工作进行的早期阶段,测试效率不一定会比手工测试高,而且进行自动化测试时,程序无法像人工一样应对各种突发情况。因此,无论是进行自动测试还是人工测试,都需要去结合工程的实际情况。2.2.2自动化测试的对象自动化测试的主要测试对象是像回归测试、性能测试、负载测试等这些重复的工作。一般回归测试需要测试的项目都比其他测试的要多,需要花费非常多的时间。所以在没有充足的时间能够把自动化实施到整个回归测试中的时候,我们首先应该考虑实现自动延迟测试。开发自动测试的成本很高。如果只运行一次,就不太值得大家去投资和开发自动检测框架和系统。2.2.3自动化测试框架的分类自动化测试框架,根据名字的意思来说,是可以应用自动化测试脚本的框架,自动化测试框架也是一种自动化测试工具,一般提供一个或者几个自动化测试模块。不同的开发或者测试人员所编写出来的自动化测试框架都是有一定区别的,但大体上还是相似的。下面显示了几种类型的自动化测试框架。1.测试框架模块化图2-6模块化测试框架2.测试库框架图2-7测试库框架3.关键字驱动的测试框架图2-8关键字驱动的测试框架图2-9关键字驱动的测试框架流程4.数据驱动的测试框架图2-10数据驱动的测试框架

图2-11数据驱动测试框架流程2.2.4为什么要进行自动化测试随着国家计算机信息的发展,软件都是需要快速迭代,像一些重复性的工作可以通过自动化来完成,从而提高工作的效率和准确性,达到迭代的目的。图2-12自动化测试工作流2.3Web自动化测试概述2.3.1Web应用的测试内容Web应用的规模和系统的复杂度越来越大,用户对使用软件的质量要求越来越高,,为了能够保证web应用的质量,一般来说,都会对Web应用进行尽可能全面的测试,以达到上线的标准和满足用户的需求。以下是Web应用比较常见的测试内容。1.功能测试图2-13功能测试2.性能测试图2-14性能测试3.兼容性测试图2-15兼容性测试第三章Web自动化测试框架需求分析 因为web用户对软件的质量和要求越来越高,web应用的更新迭代越来越频繁,功能和业务流程也越来越复杂,所以为了能够在web产品在上线之前做好质量的保证,需要在产品上线之前对应用进行各种各样充分的测试,以及大量的回归测试。如果这些工作都是用人工去进行手工测试,这对公司来说,不只是测试工作效率低,也会浪费大量的人力和物力,支出与收获不成正比,所以现在越来越多的公司开始引进自动化测试技术。在进行自动化工作的过程中,也需要去考虑非常多的问题。在技术和使用方面,需要考虑选择什么样的软件测试工具和软件测试开发语言、测试脚本的兼容性、测试执行的策略、还需要考虑如何才能实现真正的无人干预、如何才能提高自动化测试脚本的复用性、如何才能获得可靠的测试结果等问题。对以上问题经过思考与研究之后发现,我们需要设计和研发一个web自动化测试框架把以上这些问题进行集中处理,才能够解决这些问题。3.1自动化测试框架功能需求分析3.1.1自动化框架支持的测试类型以下是对基于web应用实施的自动化测试所使用的自动化测试框架的实际需求进行的分析。图3-1支持的测试类型 (1)Web应用的兼容性测试 本框架能够支持在主流的浏览器和版本上进行web应用的兼容性测试工作,Web应用是因为其易操作和方便才被广大用户所喜爱和使用的,只需要一个连接上网络的浏览器就可以进行操作了,但是用户通常使用不同的操作系统和版本,如果web应用不能够支持在不同的浏览器或者浏览器版本上进行操作,会给用户带来很大的不便。因此对web应用需要进行兼容性测试,保证web软件应用的UI显示和功能能够正常运行。(2)Web应用的UI自动化测试UI测试也就是运行编写的脚本模拟人对浏览器进行的操作,进行UI测试的时候,是不需要去关注应用代码的内部逻辑的。本框架能够支持UI自动化测试,本框架在进行UI自动化测试的时候,能够正确的打开网址,然后自动识别页面的元素,再模拟人对页面元素进行操作,如在web页面的文本框进行文本输入,点击搜索等,然后将得到的实际结果与预期结果进行对比。(3)Web应用的稳定性测试本框架能够支持对Web应用进行稳定性测试,也就是对web应用在连续长时间的运行进行稳定性测试。通常情况下,进行稳定性测试会选择使用用户使用率高的功能模块来进行一个72小时的连续测试,然后通过计算严重问题的数量和稳定运行的平均时长去评估该web应用的稳定性测试是否可以通过。3.1.2自动化框架支持的执行策略本小节主要介绍了本自动化测试框架能够支持的执行策略以及实现的方式。图3-2框架支持的执行策略(1)自动构建测试集图3-3自动构建测试集(2)执行单条测试用例图3-4执行单条测试用例(3)批量执行测试用例图3-5批量执行测试用例(4)自动执行测试任务图3-6自动执行测试任务(5)手工执行测试任务 图3-7手工执行测试任务3.2自动化测试框架内部逻辑需求分析下面是几点是关于自动化测试框架功能需求以外的内部逻辑的需求分析介绍:(1)自动化测试的测试用例、测试数据以及页面的元素应该相互进行独立管理,这样子在运用需求进行变更的时候,可以减少测试工作的工作量以及提高测试代码的复用率和可维护性。(2)自动化测试的脚本应该采用分层的结构,因为测试脚本的开发维护工作占到了自动化测试实施期间的发部分时间,而且现在web应用更新迭代块,每次更新迭代都需要对应用进行测试和维护,测试脚本也需要进行维护,工作量非常大。本框架对自动化测试的脚本采用分层处理,可以以减少更新迭代需求变更频繁时脚本的维护成本和提高自动化测试脚本的复用性。(3)自动化测试框架的代码模块之间的耦合性要低,这样在需求变更的时候,或者在维护的时候,可以只对某一个模块做出修改,维护的工作量减少,代码模块之间互不影响。3.3测试脚本集成开发环境 本web自动化测试框架使用python3进行编写的,因为python是一种免费的开源语言,是轻量级的,环境纯净,简洁易读懂,支持跨平台,相同的代码可以在不同的操作系统上运行,功能强大,不需要其他环境的支持,可以驱动的软件多,并且可以SeleniumWebDriver也能够支持使用python语言去进行开发。 在用python语言开发web自动化开发框架的时候,使用Pycharm作为集成开发环境,因为Pycharm不仅支持Python,而且能过支持多种编程语言以及能够跨平台,是一款功能比较强大的python编辑器。3.4构建工具的选择 1、Jenkins Jenkins,是一款开源自动化的持续集成服务器,可以用它来配置自动化测试的计划、任务以及进行自动化任务执行的持续监控。 2、SeleniumWebDriver Selenium是为了各种各样不同的浏览器而被开发出来的,是一款免费的开源工具,使用起来简单灵活。它与浏览器持续集成。可以通过操作系统级别使用调用模拟用户对浏览器的操作,也就是直接使用浏览器驱动对浏览器进行操作,加快测试执行的速度。第四章Web自动化测试框架的设计4.1自动化测试框架的整体架构本Web自动化测试框架主要有服务层和执行层这两大个主要的部分组成,服务器层是以集成服务器为主所构成的,整体架构图如图4-1所示,执行层是由测试的脚本和测试代码执行的平台构成的,在测试框架设计时需要注意的这几个事项:(1)测试框架不应该跟应用程序结合在一起,是独立于应用程序的。(2)相同的测试脚本在不同的操作系统、浏览器上运行都要能够稳定运行。(3)测试的结果必须能够保证正确性,并且要在测试过程出现错误的时候能够有详细完整的日志去查看错误。(4)测试脚本和测试数据不能够放在一起管理,应该分开管理。图4-1整体架构 4.2自动化测试框架服务层设计本框架的服务器层主要完成的任务是,将用户在集成服务器上配置好的测试任务下发给执行层执行,执行结束之后把测试结果返回给用户,下图是服务器层的生命周期图。图4-2任务生命周期从上图4-2中可以看出来,本框架的测试任务的生命周期,从开始到结束,一共经历了五个环节,以下是对本框架的任务生命周期的每个环节的详细说明和介绍:(1)源码脚本的检测:图4-3源码测试脚本的检测(2)执行的触发条件:图4-4执行的触发条件(3)测试环境的准备:图4-5测试环境的准备(4)测试的运行:图4-6测试的运行(5)测试结果的分析:图4-7测试结果的分析4.3自动化测试框架执行层设计对自动化测试工作而言,只有去运行测试脚本才能够去验证测试的结果。在测试进行的时候,测试运行的时候模拟人对程序进行操作所执行的指令都是来源于测试脚本的,在脚本运行期间,对测试期间会出现的异常情况,无法进行人工干预,脚本运行期间会出现的问题也非常多,需要处理的问题也非常多。因此,执行层的设计非常的重要。以下几点是本web自动化测试框架在设计执行层需要注意的:图4-8设计执行层的注意事项通过以上几点对执行层框架设计的构思与考虑,绘制的执行层架构设计图如下图4-3所示。图4-9执行层架构设计(1)测试执行驱动:图4-10测试执行驱动(2)测试数据管理:图4-11测试数据管理(3)自定义方法库:图4-12自定义方法库(4)维护脚本的分层结构与模块化:图4-13脚本的分层与模块化(5)测试结果的处理:图4-14测试结果的处理4.4测试脚本分层架构设计测试脚本的开发和维护耗时在进行自动化测试工作中,占到自动化测试的大部分时间。如果每次编写自动化测试脚本,都按照测试用例去重新一步步编写,没有脚本架构,对于更新迭代较快的Web自动化测试来说,一旦需求有变暖更,脚本维护的工作量相当大,代码耦合性高,可读性差。针对这些问题,本框架将通过对测试脚本进行分层的架构设计来处理,下面是本框架的分层设计。图4-15框架的分层设计第五章Web自动化测试框架的实现在上面的章节,对本自动化测试框架进行了需求分析和详细设计,通过研究与学习,本web自动化测试框架的脚本编写和脚本的调试工作都已经完成。接下来将对该测试框架脚本的封层架构、执行策略、支持的测试类型以及辅助功能的具体实现进行介绍。框架的工程结构图如下图5-1自动化测试工程结构图所示。图5-1自动化测试工程结构图(1)common:存放公共元素,第三方库。如URL、读取Excel文件的方法、使用的信息等。主要用来定义公共的方法以及实现的辅助的功能。(2)data:存放测试过程中需要使用的数据和文件,如图片、csv、txt、zip文件等。(3)drivers:存放测试过程中使用到的驱动(4)logs:存放测试过程中产生的日志文件(5)page:存放封装页面的方法,初始化URL、二次封装selenium底层对浏览器操作的函数。(6)report:存放测试生成的测试报告。(7)testcase:存放具体的测试用例脚本文件。(8)UI:存放整个工程中所有测试用例需要调用的web页面元素。(9)run:运行该run.py文件可以把单条的测试用例集合起来运行,完成特定的测试任务。也可以执行单条的测试任务。5.1自动化测试脚本封层架构的实现自动化测试框架实现以后,测试脚本执行的整个过程的基本流程图如下图5-2所示。图5-2程序流程图测试脚本的架构一共分为UI、Page、Test、Utility、Testsuit这五层,下面将对架构的这五层分别进行介绍。5.1.1Utility层的实现在图5-1自动化测试框架结构图的Common文件中实现了Utility层。Utility层也就是公共元素层。它主要包括URL、测试报告发送的邮件地址,使用的信息、第三方库等。根据Web自动化测试测需求,对在该文件夹下的主要文件进行简单的介绍:(1)HTMLTestRunner.py:HTMLTestRunner.py文件是一个第三方库,是一个基于unittest的单元测试的HTML报告,使用HTMLTestRunn可以生成精美、简约、易懂不难理解的HTML测试结果报告。这个文件是使用python2的语言编写的,由于本框架使用的是Python3,所以需要对导入的HTMLTestRunner进行修改,下图是对HTMLTestRunner修改的步骤。图5-3修改的步骤(2)log.py:主要是生成测试过程中的日志文件,指定保存日志的文件的路径,将日志存入到指定的文件夹中。下图5-4是log.py文件写入并保存日志的方法。图5-4写入并保存日志的方法(3)readExcel.py:主要是封装读取excel文件中保存的测试过程中需要的数据。下图5-5是读取excel文件数据的方法。图5-5读取excel文件的方法(4)sendEmail.py:此文件主要是实现自动发送邮件的功能,在自动化测试脚本运行结束生成测试报告以后,此文件可以获取最新的测试报告,然后向文件中已获取授权码的邮箱发送自动化测试报告的html文件。下图5-6和图5-7分别是sendEmail中读取测试报告生成邮件的方法和获取最新的测试报告的方法。图5-6生成测试报告的方法图5-7获取最新的测试报告的方法 (5)url.py:主要是测试过程中使用到的URL网址。5.1.2Page层的实现Page层的实现,体现在Page文件夹中,在文件夹中设置了pyselenium.Py文件使测试脚本编写起来更加方便,也使元素的查找更加简便。把如初始化驱动、URL、pagetitle等页面公用的方法封装在文件中,,把selenium底层对浏览器操作的函数进行二次封装.(1)pageObject.py:主要是将被测页面的测试脚本与脚本中所使用到的页面元素解耦,将PageElement构造函数参数映射到webdriver定位器枚举,将被测页面的测试脚本文件放在testcase文件夹中,将测试脚本使用到的被测页面元素放置在UI文件夹中。其中的定位器如下图5-8所示:图5-8定位器(2)pyselenium.py:该文件主要是对selenium代码进行简单的二次封装,对页面操作方法进行封装。其中查找页面元素的方法封装如下图5-9所示:图5-9查找页面元素(3)webConfig.py:主要是配置测试过程中使用的浏览器。Page层中所定义的岁浏览器的操作方法执行时程序的业务基本流程图如下图5-10所示。图5-10操作方法执行流程5.1.3Test层的实现Test层的实现,是在图5-1中的test层的testcase目录,这个文件下保存的是根据测试用例编写的自动化测试脚本。测试脚本的分层思路非常重要,因为需要保证脚本的可维护和可复用性。而且在编写自动化测试脚本时候,把测试脚本划分成可以再次调用的小模块,可以降低测试脚本的维护成本。Test层调用其它层的结构图如下图5-11所示。图5-11Test层调用其他层的结构5.1.4UI层的实现Page目录中体现了UI层的实现,该文件下存放了测试用例中要用的所有Web元素,把页面中所用到的元素都定义在文件里面,把每个元素的定位封装成一个方法。这是在WebDriver提供的底层函数上进行的统一的封装。UI页面层元素进行调用时业务执行的基本操作流程如下图5-12所示:图5-12页面元素调用流程测试的元素的XPath值是直接编写到测试用例脚本当中的。测试的数据和测试的数据进行分离,测试的数据独立存储在file文件夹中,可以调高脚本的可维护性。降低测试脚本的维护成本。因为Web页面元素经常发生变化,所以选择XPath方法进行定位。一般需要通过这几个步骤来进行WebDriver自动化测试脚本的开发:(1)导入WebDriver相关模块。(2)进行WebDriver驱动对应浏览器的实例化。(3)通过浏览器句柄访问对应网页的URL。(4)通过句柄访问对应的网页的URL。(5)关闭浏览器。5.1.5Testsuit层的实现Testsuit层的实现,体现在run.py文件中。这个文件的主要工作是将不同的测试用例集合成一个特定的测试任务。通过main()方法,将所有要执行的测试用例都加载到run.py文件中去,然后通过执行HTMLTestRunner类中的run()方法来执行测试所有的自动化测试用例。下图是测试集合的组成及运行:图5-13测试集合的组成及运行5.2提供的执行策略本web自动化测试框架一共支持自动构建测试集、执行单条测试用例、批量执行测试用例、和手工执行测试任务这四种执行策略,下图分别介绍了这几种执行策略是如何实现的。图5-14执行策略的实现方式5.3自动化测试框架的实现本web自动化测试框架一共支持UI层功能测试、兼容性测试、稳定性测试这三种测试类型。以下是这几种测试类型的具体实现方式。图5-15测试的实现方式下图5-16是Selenium请求一个特定环境的时候调用的基本结构图。图5-16Selenium调用的基本结构图(3)稳定性测试在外部文件中存储待测试功能模块的测试用例以及数据,在测试中自动获取待测试功能模块的名称和相关的测试用例的编号,再把这些测试用例对应的自动化测试的脚本通过main()方法加载到TestSuit中去。最后将这些测试集定义成长时间运行,观察所测试应用的功能和系统是否能够正确使用和运行。5.4辅助功能以下是自动化测试框架支持的辅助功能的实现的介绍:(1)自动生成测试结果报告本web自动化测试框架的生成的测试结果报告是HTML格式的,报告里面有多个sheet,包含自动化测试执行概况sheet。自动化测试结果报告生成的基本流程图如下图5-17所示。图5-17测试结果报告生成流程(2)自动发送测试报告到指定邮箱在测试用例执行结束以后,本地report文件夹生成测试结果报告以后,会自动向指定的邮箱发送web自动化测试报告。5.5测试数据存储存储测试过程中需要使用到的数据的文件主要储存在file文件中,在本web自动化测试框架中,测试过程中需要是使用到的测试数据都是跟测试脚本分开存储的,运行测试的时候直接调用就可以了。这样在需求发生变更的时候,只需要去修改相应的数据就可以了,这样不仅降低了维护成本,也方便了维护。1.测试用例存储把测试用例用到的数据保存在file文件中,在运行测试的时候调用读取数据的文件就可以把需要用到的数据读取出来。把测试页面的页面元素保存在UI文件中,可以按照测试的功能模块来划分测试用例和页面元素。2.测试数据存储在进行web自动化测试的时候,需要频繁的调用测试用例的数据、页面元素的xpath值等。为了能够更加方便的维护脚本和进行数据的统一管理,把这些测试需要的数据存储在SearchPage文件中以供调用。5.6测试结果输出 report文件夹中主要存放的是自动化测试执行生成的测试报告。主要包含的是自动化测试的总用例数、测试通过的用例数、测试失败的用例数、测试的结果和测试通过率等。下图5-18和图5-19分别是自动化测试报告中的用例执行概况表格图和用例执行概况饼状图示例。图5-18用例执行概况表格 图5-19用例执行概况饼状图 5.7Selenium对浏览器的支持在开源的web自动化测试工具中,SeleniumWebDriver因为功能比较强大所以深受开发者和用户的喜欢,因为它的兼容性很强,可以兼容IE、MozillaFirefox、Chrome等浏览器,还可以在测试的页面里模拟用户对页面的操作。可以调用不同浏览器的驱动去在不同的浏览器里进行测试。在进行web自动化测试的时候,比较常用的浏览器有MozillaFirefox和Chrome浏览器。其中SeleniumWebDriver对Firefox的支持更好。但是在页面识别和操作的时候,尤其是持续集成的时候,速度会比较慢。使用HtmIUnitDriver可以提高持续集成的速度,但是它使用起来不方便,因为无法在测试执行期间看到对页面的操作,(1)FirefoxDriver优点:SeleniumWebDriver对FireFox的支持相对来说比较成熟一些。它在打开浏览器之后可以模拟用户对web页面进行操作,方便进行测试脚本的调试。Firefox对JS的支持技术相对来说也比较成熟,FireFoxWebDriver基本上可以模拟实现web页面上用JS实现的基本操作,并且同时支持多平台,如Linux、Windows和macOS操作系统。缺点:在用Firefox进行web自动化测试的时候,它是在打开浏览器之后再对web页面进行实际操作的,所以相对来说速度会比较慢一些。并且有时候会因为持续集成一直在频繁的打开关闭FirefoxWebDriver,可能会导致浏览器停止运行。函数调用:driver=WebDriver.Firefox()。5.8自动化测试脚本开发遵循的原则在自动化测试工作进行的过程当中,占据了自动化前期准备工作的很大一部分时间的主要是自动化测试脚本的开发。如果不去调用外部的公共方法和公共库,每个测试用例都手工一个个的去写成测试脚本,会造成重复的脚本代码多、工作效率低等问题。自动化测试脚本的维护也会很费时。自动化测试脚本的原则如果没有统一,去维护自动化测试脚本的成本会很大而且效率也会很低。所以,为了能够更好地把自动化脚本的开发工作以及维护工作进行下去,自动化测试团队需要遵循一套统一的测试脚本框架,下面这几点是在进行自动化测试脚本的开发工作的时候非常需要重视的基本原则。图5-20基本原则第六章web自动化测试框架的应用实例6.1百度搜索测试用例6.1.1百度搜索用例的设计对百度搜索框的校验的测试用例的设计:(1)根据文件中保存的百度的URL网址进入百度的首页(2)进入百度首页之后,在百度的搜索框中输入“广东东软学院”(3)点击百度搜索按钮,根据输入的内容进行搜索操作,并与设置的断言进行对比预期的结果:跳转到搜索框搜索的内容页面。 6.1.2测试脚本的创建在testcase这个文件夹下创建一个简单的测试用例,用python去编写,在这个python文件中编写自动化测试的脚本,在脚本中设置断言,调用执行这个脚本,运行结束以后,就能得到结果。以下是百度搜索自动化测试用例的脚本:classTestLgin(unittest.TesttCase):

deftest_search(self):

#使用pageObject模式时的web页面自动化测试代码

self.page.search=self.page.search_content

self.page.search_btn.click()

time.sleep(2)

#断言

self.assertIn(self.page.search_content_assert,self.driver.page_source)

deftest_search1(self):

#错误的断言导致测试用例failed】

self.page.search=self.page.search_content

self.page.search_btn.click()

time.sleep(2)

self.assertIn(self.page.search_content_assert_wrong,self.driver.page_source)

deftest_search2(self):

#元素值错误,导致的自动化测试用例error

self.page.wrong_search=self.page.search_content

self.page.search_btn.click()

time.sleep(2)

self.assertIn(self.page.search_content_assert,self.driver.page_source)

if__name__=='__main__':unittest.main()6.2百度登录测试用例6.2.1百度搜索用例的设计 对百度登录的测试用例的设计: (1)根据网址进入百度首页 (2)点击百度页面的登录按钮,跳转到百度的登录页面 (3)点击百度登录页面的用户名登录按钮,跳转到用户名登录页面 (4)输入正确的用户名和密码,点击登录 (5)对登录操作的结果进行是否成功登录的验证,如果登陆成功则进行登出操作6.2.2测试脚本的创建 以下是百度登录自动化测试的脚本:importunittest,timefromcommonimportpyselenium,webConfigimportddtfromcommon.readExcelimportreadExcelfrompage.searchPageimportSearchPageex=readExcel('../file/test1.csv')data=ex.getCsvData()@ddt.ddtclassbaiduTest(unittest.TestCase):@classmethoddeftearDownClass(cls):cls.driver.quit()@classmethoddefsetUpClass(cls):ex=readExcel('../file/test1.csv')data=ex.getCsvData()cls.driver=pyselenium.pyselenium(webConfig.browers)#百度登陆,并判断是否正常登陆系统@ddt.data(*data)deftestLogin(self,data):username,password=dataurl=SearchPage.urlself.driver.openUrl(url)time.sleep(3)#点击登录,进入登录页面self.driver.clinkElement(by="xpath",value="//*[@id='u']/a[2]")time.sleep(3)#点击用户名登录,进入用户登录页面self.driver.clinkElement(by='xpath',value="//*[@id='TANGRAM__PSP_3__footerULoginBtn']")#输入用户名的值self.driver.findElement(by="xpath",value="//*[@id='TANGRAM__PSP_3__userName']").send_keys(username)time.sleep(3)#输入密码的值self.driver.findElement(by="xpath",value="//*[@id='TANGRAM__PSP_3__password']").send_keys(password)print("username:"+username+",password:"+"******")self.driver.clinkElement(by="xpath",value="//*[@id='TANGRAM__PSP_3__submit']")time.sleep(3)#检查是否存在用户个人中心按钮,存在,登录成功,否则登录失败close=self.driver.findElement(by='xpath',value="//*[@id='app']/div[1]/div/div[1]/div/div[1]/div[1]/div[2]")print(close)#如果登录成功,退出登录ifclose!=None:self.assertEqual(1,1)time.sleep(3)self.driver.clinkElement(by='xpath',value="//*[@id='manageHeader']/div/div/img")time.sleep(1)self.driver.clinkElement(by='xpath',value="//*[@id='manageHeader']/div/div/div/a")else:self.assertEqual(1,0)time.sleep(3)6.3维普查看个人信息测试用例6.3.1维普查看个人信息用例的设计 对维普网站查看个人信息的测试用例的设计 (1)根据文件中保存的维普网址进入维普网站首页 (2)输入维普网站的用户名、密码,点击登录 (3)点击登录以后等待页面跳转,然后进行一个登录成功与否的判断 (4)如果登录成功,则进行查看个人信息 (5)查看完个人信息,进行登出操作6.3.1测试脚本的创建 以下是维普网站查看个人信息的自动化测试脚本:importunittest,timefrompageimportpyselenium,webConfigimportddtfromcommon.readExcelimportreadExcelfromUI.weipuimportweipuElementfromcommon.logimportLoggerlogger=Logger("baiduTest").getlog()ex=readExcel('../data/weipu.csv')data=ex.getCsvData()@ddt.ddtclassbaiduTest(unittest.TestCase):@classmethoddeftearDownClass(cls):cls.driver.quit()@classmethoddefsetUpClass(cls):ex=readExcel('../data/weipu.csv')data=ex.getCsvData()cls.driver=pyselenium.pyselenium(webConfig.browers)#新浪登陆,并判断是否正常登陆系统@ddt.data(*data)deftestLogin(self,data):username,password=dataurl=weipuElement.urlself.driver.openUrl(url)time.sleep(3)#输入用户名的值self.driver.findElement(by="name",value='username').send_keys(username)time.sleep(3)#输入密码的值self.driver.findElement(by="name",value='password').send_keys(password)print("username:"+username+",password:"+password)time.sleep(3)#点击登录self.driver.clinkElement(by="xpath",value='//*[@id="btnSumit"]')time.sleep(3)#检查是否存在角色按钮,存在,登录成功,否则登录失败close=self.driver.findElement(by='xpath',value="/html/body/div[2]/div[2]/a")print(close)#如果登录成功,退出登录ifclose!=None:self.assertEqual(1,1)("登录成功")time.sleep(1)#选择角色权限self.driver.clinkElement(by="xpath",value='/html/body/div[2]/div[2]/a')time.sleep(3)#点击个人信息(父类)self.driver.clinkElement(by="xpath",value='//*[@id="side-menu"]/li[9]/a/span[1]')time.sleep(3)#点击个人信息(子类)self.driver.clinkElement(by="xpath",value='//*[@id="side-menu"]/li[9]/ul/li/a')time.sleep(3)#点击添加/self.driver.clinkElement(by="xpath",value='//*[@id="side-menu"]/li[1]/div[1]/a/span/span[2]/b')time.sleep(5)#点击文本框self.driver.clinkElement(by="xpath",value='//*[@id="side-menu"]/li[1]/div[1]/ul/li[5]/a')else:logger.error("登录失败")self.assertEqual(1,0)time.sleep(3)6.4运行测试用例及查看测试报告(1)运行测试用例运行测试用例,只需要运行run.py文件,就可以执行所有测试用例,运行结束之后会向指定的邮箱发送测试报告文件和在本地生成测试报告结果。以下是run.py文件的代码。importunittest

importHTMLTestRunner

importtime

fromcommon.sendEmailimportSendEmail

defget_test_cases(dirpath):

#dirpath是存放测试用例的文件路径

test_cases=unittest.TestSuite()

#测试用例均使用"test_"开头命名

suites=unittest.defaultTestLoader.discover(dirpath,'test_*.py',top_level_dir=dirpath)

forsuiteinsuites:

test_cases.addTests(suite)

returntest_cases

if__name__=='__main__':

cases=get_test_cases('../testcase')

present=tiem.strftime("%Y-%m-%d%H_%M_%S")

test_result_report_address='../report'filename='../report/'+present+'report.html'ftp=open(filename,'wb')

runner=HTMLTestRunner.HTMLTestRunner(stream=ftp,title='Web自动化测试',description='详细测试结果如下:')

runner.run(cases)

fp.close()

#向指定邮箱发送测试报告的html文件

time.sleep(6)

#查找最新生成的测试报告地址

new_test_result_report_address=SendEmail().acquire_report_address(test_result_report_address)

#自动发送邮件

SendEmail().send_email(new_test_result_report_address)下图6-1是所有自动化测试脚本集成运行成功的结果所示图:图6-1脚本运行成功结果图(2)查看测试报告run.py文件运行结束以后,会在report文件夹生成测试报告以及会向指定的邮箱发送测试报告。测试报告按照测试生成的时间来命名,在report文件夹中找到对应的测试报告,用浏览器打开,就能够看到生成的HTML报告。下图6-2和图6-3分别是本地生成的HTML测试报告结果和指定邮箱接收到的测试结果报告。图6-2测试报告图图6-3邮箱接收到的测试报告第七章总结由于本人在自动化测试框架这个方面还研究不够深入,本测试框架也还有很多需要完善的地方,在以后的研究过程中还需要继续加强,认真虚心学习。1、针对自动化测试数据的存储这方面,采用的是存储在脚本的方法中,没有能够完全的脱离代码,希望以后能够使用Excel的形式更加方便的管理自动化测试数据。2、当系统中出现异常的情况的时候,不能够智能的去屏蔽或者跳过这个异常,测试过程中捕获的信息也不够充分,比较简单,且不能够对移动端app进行测试,希望后期可以将app和web应用一起全部集成到自动化测试框架中。3、没有将页面元素的XPath值与测试用例彻底的剥离开来,代码耦合度相对来说还是比较高的,在以后的学习中,希望能够将本框架继续完善。4、不能够自动识别并且填写登录的时候需要填写的验证码,希望在日后的学习中能够实现这个功能。参考文献[1]黄华林.使用Selenium进行web应用进行自动化测试的研究[J],2012[2]何正光.软件测试自动化工具的研究与开发,2016[3]金虎.自动化软件测试技术研究,2016[4]陈晓伍.PythonWeb自动化测试设计与实现,,2019[5]梁月圆.软件自动化测试方法研究及系统开发,2013[6]宋洁.软件测试技术及自动测试工具的实现,2007[7]韩旭.面向Web服务的自动化测试研究[D].陕西师范大学,2014.[8]李玮.软件自动化测试混合框架的研究与实现[D],2007.[9]冷知见.软件自动化测试方法的研究与应用[D].《武汉理工大学硕士论文》,2011[10]罗明宇.基于Selenium的安全自动测试技术的研究与实现[D],2015[11]柴旭琴.基于Selenium的Web应用性能测试系统设计与实现[D],2012[12]黄爱明.国内软件测试现状及对策研究[J],2007[13]史宁宁.一种面向Web应用系统的自动化测试框架[D].《吉林大学硕士论文》,2011致谢 天下没有不会散的宴席,四年的大学生活转眼就即将结束。虽然大学四年的生活多半是呆在学校里面,但是在写论文致谢语的这一刻,也真的标志着我与学校就此离别了,有很多的遗憾和不舍,但是不如意的事总是十有八九。未来还需要向前看,非常感谢在学习期间给过我帮助和指点的同学和老师们,在以后的学习生活中我将会加倍努力对给与我帮助的学校、老师以及同学们回报。在此特向我的导师叶老师表示衷心的谢意,是在叶老师的悉心教导是和帮助下我才能够完成这一片论文。叶老师的博学多才、见识广博、对学术问题实事求是的态度和精神为我营造了一种良好的学术氛围,在叶老师身上学习到了许许多多,也了解了许多与人打交道的原则。最后,非常感谢母校对我悉心的栽培,让我能够更加自信和勇敢的走向社会。

怎样提高电脑系统运行速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。1.加快系统启动速度WindowsXP的启动速度比Windows2000要快30%左右,但相对于Windows98仍然要慢了不少,不过,我们可以通过优化设置,来大大提高WindowsXP的启动速度。加快系统启动速度主要有以下方法:尽量减少系统在启动时加载的程序与服务;对磁盘及CPU等硬件进行优化设置;修改默认设置,减少启动等待时间等。这些方法大部分既可减少系统启动的时间,又可以节省系统资源,加快电脑运行速度。(1)MsconfigWindowsXP的启动速度在系统安装初期还比较快,但随着安装的软件不断增多,系统的启动速度会越来越慢,这是由于许多软件把自己加在了启动程序中,这样开机即需运行,大大降低了启动速度,而且也占用了大量的系统资源。对于这样一些程序,我们可以通过系统配置实用程序Msconfig将它们从启动组中排除出去。选择“开始”菜单中的“运行”命令,在“运行”对话框中键入“Msconfig”,回车后会弹出“系统配置实用程序”对话框,选择其中的“启动”选项卡(如图1),该选项卡中列出了系统启动时加载的项目及来源,仔细查看每个项目是否需要自动加载,否则清除项目前的复选框,加载的项目越少,启动的速度就越快。设置完成后需要重新启动方能生效。(2)BootvisBootvis是微软提供的一个启动优化工具,可提高WindowsXP的启动速度。用BootVis提升WindowsXP的启动速度必须按照正确的顺序进行操作,否则将不会起到提速的效果。其正确的操作方法如下:启动Bootvis,从其主窗口(如图2)中选择“工具”菜单下的“选项”命令,在“符号路径”处键入Bootvis的安装路径,如“C:\ProgramFiles\Bootvis”,单击“保存”退出。从“跟踪”菜单中选择“下次引导”命令,会弹出“重复跟踪”对话框,单击“确定”按钮,BootVis将引导WindowsXP重新启动,默认的重新启动时间是10秒。系统重新启动后,BootVis自动开始运行并记录启动进程,生成启动进程的相关BIN文件,并把这个记录文件自动命名为TRACE_BOOT_1_1。程序记录完启动进程文件后,会重新启动BootVis主界面,在“文件”菜单中选择刚刚生成的启动进程文件“TRACE_BOOT_1_1”。窗口中即会出现“CPU>使用”、“磁盘I/O”、“磁盘使用”、“驱动程序延迟”等几项具体图例供我们分析,不过最好还是让BootVis程序来自动进行分析:从“跟踪”菜单中选择“系统优化”命令,程序会再次重新启动计算机,并分析启动进程文件,从而使计算机启动得更快。(3)禁用多余的服务WindowsXP在启动时会有众多程序或服务被调入到系统的内存中,它们往往用来控制Windows系统的硬件设备、内存、文件管理或者其他重要的系统功能。但这些服务有很多对我们用途不大甚至根本没有用,它们的存在会占用内存和系统资源,所以应该将它们禁用,这样最多可以节省70MB的内存空间,系统速度自然也会有很大的提高。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“services.msc”后回车,即可打开“服务”窗口。窗口的服务列表中列出了系统提供的所有服务的名称、状态及启动类型。要修改某个服务,可从列表双击它,会弹出它的属性对话框(如图3),你可从“常规”选项卡对服务进行修改,通过单击“启动”、“停止”、“暂停”、“恢复”四个按钮来修改服务的状态,并可从“启动类型”下拉列表中修改启动类型,启动类型有“自动”、“手动”、“已禁用”三种。如果要禁止某个服务在启动自动加载,可将其启动类型改为“已禁用”。WindowsXP提供的所有服务有36个默认是自动启动的,实际上,其中只有8个是必须保留的(见下表),其他的则可根据自己的需要进行设置,每种服务的作用在软件中有提示。4)修改注册表来减少预读取,减少进度条等待时间WindowsXP在启动过程中会出现一个进度条,我们可以通过修改注册表,让进度条只跑一圈就进入登录画面。选择“开始”菜单中的“运行”命令,在“运行”对话框键入“regedit”命令后回车,即可启动注册表编辑器,在注册表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,选择其下的EnablePrefetcher键,把它的键值改为“1”即可。(5)减少开机磁盘扫描等待时间当Windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。在默认情况下,扫描每个分区前会等待10秒钟,如果每个分区都要等上10秒才能开始进行扫描,再加上扫描本身需要的时间,会耗费相当长的时间才能完成启动过程。对于这种情况我们可以设置取消磁盘扫描的等待时间,甚至禁止对某个磁盘分区进行扫描。选择“开始→运行”,在运行对话框中键入“chkntfs/t:0”,即可将磁盘扫描等待时间设置为0;如果要在计算机启动时忽略扫描某个分区,比如C盘,可以输入“chkntfs/xc:”命令;如果要恢复对C盘的扫描,可使用“chkntfs/dc:”命令,即可还原所有chkntfs默认设置,除了自动文件检查的倒计时之外。2.提高系统运行速度提升系统运行速度的思路与加快启动的速度类似:尽量优化软硬件设置,减轻系统负担。以下是一些常用的优化手段。(1)设置处理器二级缓存容量WindowsXP无法自动检测处理器的二级缓存容量,需要我们自己在注册表中手动设置,首先打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,选择其下的“SecondLevelDataCache”,根据自己所用的处理器设置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系统缓存同样也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”键值从0改为1,WindowsXP就会把除了4M之外的系统内存全部分配到文件系统缓存中,这样XP的内核能够在内存中运行,大大提高系统速度。通常来说,该优化会使系统性能得到相当的提升,但也有可能会使某些应用程序性能降低。需要注意的是必须有256M以上的内存,激活LargeSystemCache才可起到正面的作用,否则不要轻易改动它。(3)改进输入/输出性能这个优化能够提升系统进行大容量文件传输时的性能,不过这只对服务器用户才有实在意义。我们可在中新建一个DWORD(双字节值)键值,命名为IOPageLockLimit。一般情况下把数据设置8~16MB之间性能最好,要记住这个值是用字节来计算的,例如你要分配10MB的话,就是10×?1024×1024,也就是10485760。这里的优化也需要你的机器拥有大于256M的内存。(4)禁用内存页面调度在正常情况下,XP会把内存中的片断写入硬盘,我们可以阻止它这样做,让数据保留在内存中,从而提升系统性能。在注册表中找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”下的“DisablePagingExecutive”键,把它的值从0改为1即可禁止内存页面调度了。(5)关闭自动重新启动功能当WindowsXP遇到严重问题时便会突然重新开机,可从注册表将此功能取消。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\”将Aut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论