版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着互联网行业的快速发展,敏捷开发快速迭代的性质。传统软件测试的技术和方式并不完全适用于如今的Web系统的测试,对于企业引进自动化测试是非常必要的。目前,市场上已经有许多自动化测试工具和框架。如何构建一套适合自我测试的工具或框架,满足实际需求的自动化测试框架是每个研究自动化测试或自动化测试的工作者需要考虑和解决的问题。本文主要是利用软件测试知识、自动化测试相关教程和自动化测试框架理论,在结合对当前市场上流行的自动化测试工具的分析结果,使用高效、简洁、灵活的Python语言去实现一款基于Selenium+Python的自动化测试框架,该框架的测试对象主要是功能测试。在使用该测试框架过程中,需要提高测试脚本的维护性、复用性和扩展性,有利于实现减少测试成本的消耗、提高测试执行的效率和保证软件产品的质量。关键词:自动化测试测试框架Selenium框架Python脚本
AbstractWithWiththeagiledevelopmentoftheInternetindustry.Nowadays,traditionalsoftwaretestingtechniquesandmethodsarenotfullyapplicabletoWebsystemtesting,soitisverynecessaryforenterprisestointroduceautomatedtesting.Atpresent,therearealotofautomatedtestingtoolsandshellframeinthemarket.Howtobuildasetofself-testmeansorshellframetomeetthe
physicaldemandsofautomatedtestingframeworkisaproblemthateveryresearcherofautomatedtestingor
testautomationneedstoconsiderandsolve.This
paper
mainly
uses
the
knowledge
of
software
testing,
related
courses
of
automatic
testing
and
the
theory
of
automatic
testing
framework.
Combining
with
the
analysis
results
of
the
popular
automatic
testing
tools
in
the
current
market,
it
uses
the
efficient,
concise
and
flexible
Python
language
to
realize
an
automatic
testing
framework
based
on
selenium
+
python.
The
testing
object
of
this
framework
is
mainly
function
testing.Inusingthetestframeworkatthisprocess,weneedtoimprovethemaintainability,reusabilityandaugmentabilityoftestscripts,whichisinstrumentalinreducingtheconsumptionoftestcosts,improvingtheefficiencyoftestexecutionandensuringthequalityofsoftwareproducts.Keywords:AutomaticTestFrameworkSeleniumFrameworkPythonScript目录第一章绪论 第一章绪论1.1研究背景及意义随着软件行业的发展,公司是越来越重视测试部门的发展,这就使得测试工作者更加的需要实力,所有对于自动化测试这一领域是一定需要涉及的,不光如此,自动化测试其本身也是很有价值的。引入自动测试可以在不同程度上提高整个项目的测试效率,与手工测试一起保证软件产品的高质量。身处这个互联网行业发展迅速的时代,对测试人员来说,随着技术的不断更新,是需要不断提升个人的核心竞争力,以期待符合企业用人需求和对自动化、性能、接口测试的硬性要求,以及对编码、数据库、服务器等综合应用需求。总的来说,于这个时代软件、互联网行业的工作者来说,特别是测试工作者,对于自动化测试的学习和运用是一个提升能力的途径。现如今可以辅助进行自动化测试的工具有很多,有商业化的,有开源性质的。其中Selenium就属于开源的,可以很好的用于学习。自动化测试在一个版本周期比较长且主要功能业务改变的可能性不大的项目中是非常有存在意义的。在这样的项目中,首先,枯燥、重复的手工操作可以进行脚本化,用于避免人为因素影响测试的进展及质量,可以解放部分时间。其次,对于一些软件,比如其功能比较全面、整体框架比较稳定,进行新版本发布时,这些软件的整体页面及其整体功能变化不大。类似这样的软件迭代就比较适合用自动化测试框架进行测试,可以提高软件的可信度。再次,它可以更好地利用资源,如工作日的晚上和每周的周末,可以用自动化测试来代替人工测试,使公司的资源可以被充分利用起来。最后,在版本快速迭代的过程中,自动化测试的目的是为了保证产品的质量,而不是发现更多的Bug,多数的Bug还是需要手工测试才会暴露出来。本毕业论文主要是利用软件测试知识、自动化测试相关教程和自动化测试框架理论,在结合对当前市场上流行的自动化测试工具的分析结果,使用高效、简洁、灵活的Python语言去实现一款基于Selenium+Python的自动化测试框架,框架以功能测试为主。在使用该测试框架过程中,需要提高测试脚本的维护性、复用性和扩展性,有利于实现减少测试成本的消耗、提高测试效率和执行速度和保证其测试的产品的质量。1.2国内外研究现状本文研究基于Selenium+Python的自动化测试框架,在此也段落分别介绍Selenium、Python以及自动化测试的现今的发展及其历史起源。Selenium是ThoughtWorks测试团队开发的。最初,它只是一个名为JavaScriptrunner的简单测试工具,由JasonHuggins在2004年编写。在后来的一系列发展中,逐渐成为了现在这样的一个开源、免费、独立的自动化测试工具。出色的多语言开发特性、跨平台、跨浏览器的工作兼容性使得Selenium获得了许多研发团队的青睐[1]。1991年,出现python编译器。自从Python编译器出现以来,Python已经有了核心数据类型,如类、函数、异常处理机制、表、字典和基于模块的扩展系统。Python的发展主要由Guido和他的团队以及社区进行推动的。在Python2.0版本之后,Python的开发方法是完全开源的。到现在,Python已经拥有了一个稳定的框架。Python是一种编程语言,它围绕对象组织代码,支持多种编程模式,并自动回收内存。Python的标准库(BatteryIncluded)非常强大和稳定。正因为如此,Python已经开始扩展第三方包。Python一直是一种美丽、清晰、简单的语言,因而被广泛使用。第一代自动化测试通过硬件记录键盘输入,然后回放。其测试脚本的维护是非常非常不容易的。第二代自动化测试已经从硬件转换为通过软件录制/播放生成自动化的测试脚本,同时增加了检查点功能对软件进行自动化测试是否正确进行验证,自动化测试的整体范围比前身的范围要扩大了很多[2]。第三代开始逐渐被称为测试框架,其功能是将脚本进行抽象化,使理解不了测试脚本源代码、完全不会编写测试脚本的人也会使用该工具来完成测试。第四代MercuryBusinessProcessTesting:关注的是业务需求。1.3研究目标与内容本文利用所学的软件测试基础知识、自动化测试相关教程和自动化测试框架理论,在综合分析当前市场流行的自动化测试工具,实现一个基于Selenium+Python的自动化测试框架,该框架侧重于功能测试。在使用过程中,有必要提高测试脚本的可维护性、可重用性和可扩展性,从而降低自动化测试的成本,提高自动化测试的测试执行效率,以到达保证软件的整体质量的目的。本篇论文的主要研究内容如下:(1)研究和分析软件测试的基础知识、自动化测试的相关技术和自动化测试框架技术。本文分析了当前市场上流行的自动化测试工具,介绍了Selenium自动化测试系列工具及其特点,分析了Selenium自动化测试的工作原理和实现机制。(2)结合测试理论与实际测试需求,分析并定义基于Selenium+Python的自动化测试框架的功能和非功能需求。(3)根据分析出来的需求点,设计和实现基于Selenium+Python的易于维护、易于扩展、可复用的自动化测试框架,以实现Web应用程序功能的自动化测试。(4)应用与实践。以校友邦为测试对象,设计一些测试用例,通过实现的框架进行脚本执行,并对自动化测试生成的测试结果报告进行分析。1.4本文结构本毕业论文章节结构及相应章节内容展示:第一章绪论:对本毕业论文的研究背景及意义、国内外自动化测试相关研究现状以及论文的整体结构进行阐述。第二章自动化测试相关技术研究:对自动化测试的理论、过程、框架和工具进行相关研究。第三章自动化测试框架需求分析:对测试框架的功能和非功能需求这两方面进行分析和叙述。第四章自动化测试框架设计:对基于Selenium+Python的自动化测试框架的总体架构进行设计,然后对框架涉及的所有功能和需要用到的测试输入数据进行设计。第五章自动化测试框架实现:实现基于Selenium+Python的自动化测试框架,包括开发环境的搭建以及各个功能和数据的具体实现。第六章应用实践:介绍基于Selenium+Python的自动化测试框架在真实项目中的运用,以及对测试结果报告进行简要分析。第七章总结与展望:对实现的测试框架其成果进行总结,以及对未来的展望。1.5本章小结本章是对自动化测试的研究背景和意义进行一个简要的概述说明,对本课题的研究内容和自动化测试在国内外的现状进行一个总的综述。同时对本课题进行一个纲要介绍。
第二章自动化测试技术研究2.1软件自动化测试概念研究2.1.1自动化测试定义自动化测试(AutomatedTest)是把机器执行测试代替手工测试的一种过程,即通过执行编写的自动化程序脚本来模拟手工测试的过程[2]。根据需要,自动化测试可以包括所有的测试阶段,支持跨平台,并且与进程没有关系。通常情况下,进行软件测试,都是先进行理解需求,在进行需求评审,评审通过后,开始编写自动化测试的整体测试计划、和用于自动化测试的测试用例编写,然后在通过自动化测试用例评审会议,评审会议通过后,测试人员才会正式的进行测试,前面的步骤只是介入测试和对正式执行测试的一些准备工作。当进入执行测试阶段时,测试人员需要根据测试用例对被测系统进行测试,测试完成后,将分析测试结果并将其与预期结果进行比较,如果测试用例与预期相同,则判断为通过,需要将其按照正常的Bug提交流程提交到项目管理工具中,方便于项目开发人员进行Bug的修复。在这个样的手工测试过程中是一个耗时耗力的工作,如此操作虽然对测试的质量有很高的保证,但它同时对人力、物力以及一些资源造成了浪费。因此,为了节省各种资源(包括人力、物力、时间、硬件),提高测试执行效率和测试的质量,以及不脱轨于国家计算机信息化的发展,紧跟软件的迭代速度,自动化测试注入软件行业是一个必然事件。自动化测试现在运用得比较多的三个地方是单元测试、接口测试,界面测试。单元自动化测试是软件的数据处理层,是系统中可检测和验证的最小模块,在很大程度上,它将依赖于一些自动化测试的基本框架,例如JUnit,TestNG,Python的Unittest等;接口自动化测试是各种软件的另一个基本业务逻辑层,它直接用于全面检查和验证各种软件模块的初始化参数和返回数据,以及与系统和服务之间的数据交换。常用的接口测试工具包括Postman(非常简单,操作简单,免费享受)、JMeter(开源社区,基本功能非常强大,免费享受)、LoadRunner(付费购买)等;UI自动化测试是对各种软件应用程序界面层进行测试。测试中的其他大部分工作都相对集中在这里,因为用户基本都是与这一层进行交互,常见的测试工具有Robotframework、Selenium、Appium等等工具。2.1.2自动化测试过程在当下,进行一个项目的开发,测试与开发是并行的,都会同时介入项目,只是侧重点不一致。自动化测试也是测试,从本质上来进与手工测试没什么不同,都是用于软件测试质量保证,只不过自动化技术的测试是利用自动化测试技术相关工具和代码自动构造输入,并自动检查结果的连续输出是否可以满足期望,手动测试要求执行测试的人员自己执行所有测试。利用自动化技术进行自动化测试需要制定最终测试计划,深入分析测试的实际需求,并对用户需求进行评审,然后设计用于测试人员手动进行测试的测试用例,在其中挑选出一些手工测试用例转换为自动化测试用例,完成用例评审,根据需求,选取相应的工具进行搭建自动化测试的框架,框架搭建完毕就可以开始编写自动化测试过程中需要的脚本,在使用的测试脚本都编写完成并成功调试通过后,进行脚本执行然后生成自动化测试结果分析报告,并根据最终测试正式报告对最终测试的最终结果进行分析,并完整记录测试中的核心问题,追踪Bug,进行回归测试、执行测试脚本,根据实际情况结束测试,如图2-1。这基本就是一个完整的自动化测试完成流程。当然,用于执行自动化的自动化测试脚本是需要持续改进和优化的,这样做的目的是希望提高自动化测试脚本的可维护性、复用性和扩展性,有利于实现减少测试成本的消耗、提高测试执行的效率和保证软件质量的目的。图2-SEQ图\*ARABIC1自动化测试基本流程(1)测试计划制定测试之前,制定一个总体方案(测试计划),在整个计划中必须写清楚测试的对象和目的、自动化测试的具体测试内容和具体会用到的测试方法、测试进度的详细计划和安排、测试所需的人力物力准备等。一个好的测试计划可以很好的指导整个测试过程。(2)对进行自动化测试进行需求分析当被测系统满足其整体需求的变化不会很频繁,项目周期持续时间长、有生命力,最终的测试数据是全面的,并且用于自动化测试的测试用例和脚本的可重用性和可移植性非常强,并且被测试系统开发具有标准化和可测试性。当公司本身具有自动化设备最终测试的相关前提条件和高质量资源时,此时就可以分析自动化测试的内容以及更多需求。在此过程中,有必要定义自动测试的覆盖范围,测试用例和测试要使用的数据,并将其整理成文档,方便后续使用。(3)设计用于自动化测试的用例深入分析需求,然后设计可用的用例,设计用例需要注意其设计的测试用例是否覆盖了分析出来的所有的需求点,如若无误,则可以将其整理为测试用例文档。当然,并不是所有设计出来的用例都适合用于自动化测试的事实,有必要从详细设计的用例中选择适合于自动化测试的用例,并将其转化为自动化测试用例脚本。在条件允许的情况下,建议把一些参数信息(如:登录、注册界面的用户、密码等数据)独立出来,形成一份测试数据,写入Excel,并将其放到实现的自动化测试框架中去。(4)测试框架的搭建及测试脚本编写自动化测试框架类似与软件架构,是需要明确在使用此框架使需要用到哪些文件、哪些结构,以及调用这些文件或结构的过程。在编写脚本的过程中,将公共类进行封装,分别进行调用。如果有需要,可以对一些数据进行参数化。在脚本编写完毕后,是需要其编写的脚本进行反复不断的调试,避免框架本身的问题造成测试结果的失误,对于调试,一定要调试到脚本运行正常不会出错为止。在脚本的编写以及对其进行命名时都需要注意其是否要符合规范,以方便进行统一的管理和维护。(5)运行脚本,即执行测试在此过程中会生成日志,也会有相应的问题记录截图和测试报告生成。需要分析其结果,以便定位失败用例和发现缺陷。在此过程中发现的Bug需要提交到相应的缺陷管理工具中,方便对Bug的跟踪。待开发人员修复完成后,需要进行回归测试,如若通过则关闭,否则将会继续修改。2.1.3自动化测试框架分类应对于不同测试需求以及测试条件的测试框架也明显不同,不过大多数框架都是由基础模块、执行模块、管理模块和统计模块中的一个或多个组合而成[3,4,9]。下面具体介绍几个常见的测试框架类型。(1)模块化测试框架。其优点是将测试脚本按照应用程序的功能模块进行封装。当需要修改某个模块的时候,不会影响其他模块,提高脚本的独立性和可维护性。各个模块可以进行组装或者被其他框架引用,提高脚本的复用性和拓展性。(2)关键字驱动框架。自身存在一个底层的关键字处理逻辑,用户通过输入合法的关键字就可以驱动测试任务的执行,是后期维护工作最小的自动化测试框架。但此框架很难进行调试,因为它使用标准的外部数据源(如Excel数据表)读取信息脚本中的关键字。(3)测试库框架。测试库驱动是实现脚本和测试数据有内在逻辑的分离[5],这种分离与模块化框架的分离不同,它是按预设在工程中的许多个性方法并引用这些方法以完成测试任务的框架。优点是脚本复用率高、后期维护量小。(4)数据驱动框架。数据驱动框架的基本思想是将最终测试数据与最终测试脚本分离,将数据文件放在外部的储存空间中,需要时再引入即可。其优点是数据与脚本是分离的其可维护性提高。(5)混合测试框架。理论上,上述的框架都可以单独运行测试,但在现实的中问题多是复杂而多样的,单个测试框架完成测试很难覆盖全面,所以将以上四种测试框架实行按需组合形成混合框架,是比较完美的解决措施。混合测试框架虽然其维护工作量大于单个框架,但其实用性也是最高的。2.2软件自动化测试框架研究2.2.1主流自动化测试框架研究Robot框架是基于Python语言结构的开源项目。它是关键字驱动的,有许多的测试库。使用SeleniumWebDriver时,它支持系统中Web应用程序的自动化测试;当使用Appnium时,它支持移动应用测试(如Android),另外也支持数据库测试。以及拥有许多的API外部设备接口,支持基本功能扩展。Tellurium是用于web应用程序的自动化测试框架。它是在Selenium的基础上搭建成立的,但它与Selenium还是存在很多的不同,例如,selenium有两种模式:录制模式和回放模式,而Tellurium不是录制和回放模式,而是侧重于网页模块。QTP是用于系统自动化测试。QTP非常适合需要重复测试的测试模块。它最常用于回归测试和版本升级为其他版本的最终测试。QTP测试之前,需要还考虑怎样去测试需要测试的软件,比如测试要用的数据、函数和需要哪些操作都需要提前考虑清楚。PhoenixAutotest是基于用Python+Java编写的自动化测试框架。它涵盖了WebUI自动化测试所需的大多数基本功能封装。2.2.2自动化测试框架设计原则研究(1)最终测试框架和被测试项目需要相互独立。大部分企业只有开发一个测试框架的精力,而被测试的项目则是多种多样的,这样就只能要求测试框架有能力去测试这些项目中的共同部分,而其他部分采用人工检测[5]。(2)编写测试框架脚本时,应遵守开发代码所要求的可靠性、可扩展性、可维护性、健壮性等原则,特别注意的是尽量使各个部分都相对独立方便后期修改和维护。(3)测试脚本语言与框架编程语言相适应原则。脚本测试语言需要由测试项目的具体特征确定,这样才能避免测试项目迁移的导致大量需重写的麻烦。2.3软件自动化测试工具研究2.3.1自动化测试工具分类研究随着电子科技的不断进步人们对软件自动化检测的需求越来越大,各类自动化测试工具应运而生,尽管功能与种类繁多但根据测试方法的不同可分为黑盒自动化测试工具、白盒自动化测试工具和测试管理工具[6]。自动化测试的工具,大多数基本来自于MercuryInteractive(MI)、Segue、IBM/Rational、Compuware和Empirix等公司,其中占主流的自动化测试软件来至于MI公司。常见的用于黑盒测试的自动化测试工具,如表2-1所示。表2-1用于黑盒测试的自动化工具工具支持语言简介RobotframeworkPython/Java开源软件,支持关键字驱动,可以实现验收测试以及驱动开发和在短时间内完成关键字以及测试用例的编写,对测试自动化人员的编程能力要求较高。WinRunnerJava其主要功能是用于检验被测系统或软件程序是否如期运行。LoadRunnerJava该工具主要是通过模拟实际用户在系统使用过程中的操作行为和对实时性能进行监测,从而查找和发现问题出现位置和方式,并预测系统行为进行系统性能优化。QuickTestProfessionalVB该工具适合功能、回归测试,可以根据录播进行自动捕获、验证和重放用户的交互行为,有助于提高自动化开发效率Selenium支持多种语言开源软件,可扩展性强,比较灵活,支持各种语言,可以集成到很多的开发工具中。几种用于白盒测试的自动化测试工具,如表2-2所示。表2-2用于白盒测试的自动化工具工具支持语言简介Jtest代码分析和动态类、组件测试C++Test代码分析和动态测试SmartCheckVB函数调用次数,所占比例统计以及稳定性跟踪CodeReviewVB自动源代码分析工具常见的用于管理测试过程的管理工具,如表2-3所示。表2-3用于管理测试过程的管理工具工具公司简介TeamManagerRational对测试的需求、测试的计划、测试的用例和测试的实施过程进行管理、同时可以对缺陷进行跟踪处理。TrackRecordCompuwareTestDirectorMercuryInteractiveWebLoadRadview用于性能测试TestBytes针对数据库测试本课题研究的自动化测试框架主要是自动化功能测试即黑盒测试的,使用Selenium用于自动化测试,其优点有,完全开源、免费,具有很强的可扩展性,相对的灵活性,支持多种语言编程和改写,可以集成到多数开发工具中去。2.3.2Selenium工具研究Selenium是一款应用广泛的免费开源自动化测试工具并且能够使用多种语言进行编写,其主要由IDE、Grid、RC三大基本组件构成[7]。其中RC是Selenium的核心组成部分,是可以为测试脚本访问应用的代理服务器,具体原理如图2-2所示。不过在最新的Selenium3.0中WebDriver已经能够代替其工作;IDE是对脚本进行初步构建,可以通过录制来进行简单的脚本生成、并可以对生成的脚本代码执行简单的脚本编辑和灵活的操作步骤来回放其他功能;Grid测试辅助工具,可以可分布式执行测试。图2-2Selenium-RC的原理2.3.3SeleniumWebDriver工具研究SeleniumWedDriver是Selenium中重要的组件,该工具新发掘了一些全新的功能,比如更具组织性的API,在一定程度摆脱了是Selenium1的局限性,是Selenium升级完善象征和代表,拥有更为简洁的编程接口[8]。WebDriver的优点:WebDriver使用HtmlUnit时,无需打开浏览器就可以进行测试;基于浏览器的内部接口实现自动化测试,模拟真实用户使用情况;提供合理简洁的面向对象API,提高了自动化测试脚本的编写效率[9]。在使用过程中不需要进行单独启动SeleniumServer。它可以支持不同类型的浏览器及不同版本的浏览器,具有非常好的兼容性。图2-3Selenium工作基本原理2.4Python语言特点介绍Python是一种开源的自由语言,它代表了简单性的思想。python和大多数主流高级编程语言(例如C和Java)都是面向对象的,而且python在编程时,不用去考虑底层细节,用python写的代码程序不需要编译就可以直接运行;python有很强大的标准库,比如文档生成、电子邮件等,Python的另一个优点是使用强制缩进使代码可读。2.5本章小结这一章主要对自动化测试的相关技术进行了概述,首先是对软件自动化的相关知识进行普及,之后对自动化测试框架和其设计原则进行了阐述说明,最后对自动化测试工具的大体分类进行了描述,并介绍了有关于本选题要设计的Selenum工具的相关知识和Python语言的特点。
第三章自动化测试框架需求分析3.1测试框架功能需求分析该框架的功能需求点包括以下七点:自动执行编写的测试用例,不需要人为干预;执行测试用例需要用到的数据设计为独立于框架以外,方便对测试数据的修改;执行测试用例的过程中需要有日志和截图进行记录脚本执行轨迹和结果,便于对错误进行定位;各个页面的测试脚本相互独立,不可以去影响其他页面的用例执行;测试执行完毕需要将生成的测试报告发给指定的人员。如图3-1所示。图3-1测试框架功能需求分析3.1.1测试用例管理模块测试需求分析在现行自动化技术测试的基本框架中,测试用例是脚本编写的主要部分。另外,由于其产品的不断迭代,测试用例将会同步更新或添加。因此,在设计测试用例的脚本时,必须考虑对上一阶段和下一阶段的良好维护。对于自动化测试的测试案例,可以考虑以下几点来进行编写:(1)通常,需要选择需要重复执行并且执行过程耗时的测试用例。(2)对于一些逻辑性更强、更复杂、更难实现的测试用例,我们可以选择不用自动化测试来实现它们。而是手动测试可能更快、更方便。(3)对于页面的各公共控件的边缘用例也可以暂时不用自动化测试去实现。3.1.2测试业务模块需求分析Web自动化测试是需要打开浏览器的,为了使测试框架便于维护,不去大面积的修改代码,这个小部分需要封装浏览器模块的功能,力求实现浏览器在打开和关闭同一状态后的通用方法,使后面每条测试脚本就可以直接调用打开和关闭浏览器方法,脚本只需要专注具体的测试业务逻辑的实现即可。在测试过程中会用到很多如截图方法、元素定位方法、元素通用操作方法以及警示框处理方法等公共的测试方法。因此,在测试框架的构建中常常需要封装一些常用的公共方法,只要是软件页面的一些常用操作都可以选择写在该页面基类中,这个页面基类相对于一个公共的函数库,存放着常用的公共方法,后面有需要的地方直接调用即可。本文内容研究中的测试大框架需要封装8个定位元素的方法和一种截图方法,常用的鼠标点击方法,处理警告框的方法,Web浏览器的前进和后退方法,一种隐式等待时间的方法、关闭当前窗口和切换到新窗口的方法、输入框和选择框的方法等一些常用的功能函数或者方法。3.1.3数据模块需求分析Selenium作为一个可以跟随编写者意愿自主配置的自动化测试框架,开始自动化测试的第一个步骤就是根据特定自动化测试需求对各种输入数据进行配置,这是一个设计框架能够基本运行的前提,也是其后续测试脚本运行的重要基础。输入数据一般可分为测试框架的基本操作所需的综合数据和基于框架的测试所需的最终数据两大类。框架完整的能够处理这些用户输入数据,并在此基础上,可以触发启动整个框架并运行它进行完整的测试。因此,配置最终测试数据是整个框架的基本功能。3.1.4日志模块需求分析当这个框架开始运行时,它将能够输出日志。所有的日志都是检查程序整体运行并发现错误的最重要手段。对于系统的自动测试,需要知道自动执行这个测试的过程、执行情况和执行错误的处理情况,以便测试人员要能够快速地定位到脚本具体失败的位置,排查出失败的原因是脚本Bug还是应用的Bug。所以需要在程序的关键位置或者步骤节点下设置日志输出。因此,在自动化测试框架中还需要提前封装一个日志类的功能模块,便于输出日志。3.1.5测试报告模块需求分析当所有的测试用例都执行完毕之后,会自动生成自动化测试结果报告,并自动地将正式测试结果报告发送给相关人员,测试用例的执行结果以表格的形式在自动化测试报告中展示,在报告中可以对测试结果到达一目了然的效果。3.2测试框架非功能需求分析根据框架的特点和实现自动测试结果的目的,测试框架的潜在非功能需求如下:(1)有效性确保系统的自动化测试能够正常、连续和有效地通过,在测试过程中能准确有效的找出被测系统的真实缺陷,尽量避免非正常错误。(2)稳定性稳定性是一个软件的必要因素,框架是否稳定将决定其是否可以正常使用,并到达自动化测试的最终目的。(3)可扩展性自动测试框架设计原则上应与待测系统分离,使其用途更广泛。但是在现实情况中,对于要测试的不同系统,在自动测试实现过程中必须有特定内容,因此为了满足不同项目的不同测试需求,可扩展性在自动化技术测试的基本框架中是必不可少的。(4)可维护性一般来说,用自动化测试框架进行测试主要都是将其运用需要进行回归测试的软件中。因为一个系统基本都不会只有一期项目,而是会通过一期、二期甚至更多期项目来不断增加和完善其系统功能,一个测试脚本是需要进行多次运行的,而随着自动化测试脚本的不断增加,新版本的回归测试量会渐增,这使得自动化测试框架的负载不断变大,因此框架必须是可维护的,才能保持长期的可用性[9]。3.3本章小结从实现自动化测试基本框架的短期目标出发,结合Selenium测试工具的突出特点,分析了实现框架需要定义的功能需求和非功能需求,并对这个框架的需求有一个整体的梳理。该框架应支持数据配置,测试环境的准备以及测试集的动态性构建,最终测试的执行,测试结果报告的自动生成以及对测试执行脚本类库的支持。
第四章自动化测试框架设计4.1测试框架的整体架构通过具体的分析这个框架的实际需求,对整个框架进行一个具体的设计,对实现每个需求点都做一个对应的设计,为后期的测试框架实现提供一个完整清晰的思路逻辑。设计的框架结构中对每个需要实现的需求点都提供了进一步的实现步骤。具体的自动化测试框架其整体架构设计,如图4-1所示。图4-1测试框架的整体结构4.2测试业务模块设计4.2.1公共类封装在公共类中封装通用的操作方法,比如封装8个定位元素的方法和一种截图方法,常用的鼠标点击方法,处理警告框的方法,Web浏览器的前进和后退方法,一种隐式等待时间的方法、关闭当前窗口和切换到新窗口的方法、输入框和选择框的方法等一些常用的功能函数或者方法。如图4-2所示。图4-2公共类封装定义一个浏览器操作驱动库,用于读取配置文件信息,快速打开指定测试URL地址,以及自动开启、关闭浏览器。4.2.2各个页面类封装新建page_obj文件夹,将每个页面的多个元素放在一个目录中。方便日常管理。可以一一对应创建Python程序包,不同的页面对应一个不同的程序包,例如登录页面上的登录程序包和主页上的主页程序包,每个界面类中通常会包括数据读取和页面元素操作及业务操作。4.2.3用例管理模块设计此模块设计一个独立的目录,所有的测试用例均写到在该目录下面,运行时,该模块会引用测试框架中的其他模块,来具体实现用例执行。如公共类封装模块、页面类封装模块、数据模块和测试报告模块等。如图4-3所示。图4-3Testcase结构4.3数据模块设计测试用例的每个实现都包括执行脚本和输入数据。为了在不修改脚本的情况下执行测试用例,需要把测试的最终数据与测试脚本分离。测试数据存储在专用文件中以供使用。执行测试时,通过函数数据进行数据读取。此举使得自动化测试脚本变得比较容易维护和重用。4.4日志模块设计4.4.1截图执行测试用例脚本的过程中,对于脚本的运行,其速度是非常快的,当同一时间测试大量用例时,某个测试用例执行失败后,测试将会直接跳过执行失败的测试用例,然后继续执行运行命令中下一条需要执行的测试用例,所以没有特定人员的监控情况下要精确的定位问题出现在什么地方是很难的,要查找问题源头是非常麻烦的。所以需要在测试框架中设计log日志来记录执行过程,通过log日志就可以很方便的定位出问题所在的地方。4.4.2自定义日志服务和日志输出日志服务可以记录测试过程中的执行情况、测试失败情况和个人日志信息内容,更方便对测试中的最终测试进行跟踪和深入分析。日志记录服务可以根据不同的日志级别编写个人日志,记录断言的判断结果。在日志内容服务中,定义了三个级别的日志记录:Info、Warning和Error。当使用不同的日志级别时,记录中会添加Info、Warning和Error关键字自动划分日志级别。在测试过程无异常时,默认采用Info来记录日志信息;测试过程异常时采用Error来记录日志信息。日志内容控制输出:将日志内容文件和截图文件内容保存到相应路径。4.5测试报告模块设计4.5.1生成测试报告在一个完整的测试脚本执行过程中,不管是否成功都要输出一个明确的测试结果记录,以便于对测试用例的通过和未通过用例的分析。输出结果针对执行过的每一条测试用例,当脚本运行出错后,可以在后台看到用例报的什么错,进行分析和统计,可以评估出脚本质量,检验自动化测试框架实际的效果如何。本文引用html_test_runner.py文件来实现生成测试结果报告功能。4.5.2发送测试报告本框架在执行完用例后,立即将测试报告发送给选定的其他人员。借助电子邮件服务,以电子邮件的形式发送测试报告。4.6本章小结本章主要是对要实现的测试框架进行设计,在整个设计过程中,分别对每个模块的作用效果和实现方法都做了一个比较详细的介绍。到目前为止对要实现的测框架的各个模块组成和功能都有了一个比较清晰的架构和思路。
第五章自动化测试框架实现5.1开发工具测试框架的开发建立在Windows10操作系统上,Pycharm为开发平台,Python为编程语言,以Chrome作为执行测试用例的浏览器,以Selenium2为基础框架。具体如表5-1所示。表5-1开发环境及工具开发环境及工具具体产品操作系统Windows10开发平台Pycharm编程语言Python执行测试用例浏览器Chrome集成框架Selenium2驱动Chromedriver5.2测试框架方案实现测试框架是在Pycharm平台上基于Selenium+Python开发的。整个框架可以分为7个部分:配置文件、日志、测试数据、驱动、测试业务、测试报告、代码启动入口。测试框架如图5-1所示。(1)配置文件配置文件包括两个部分:config.ini中主要浏览器的参数、测试URL、邮件发送相关参数等的设置。globalparameter.py配置文件中设置了各个文件的存储路径。(2)日志此目录用于存放脚本执行过程中生成的日志。日志的封装是在测试业务模块下的公共类封装下实现。(3)测试数据此模块主要用于存放测试用例的数据。(4)浏览器驱动此模块用于存放浏览器驱动。(5)测试业务此目录下分为三个子目录:公共类封装、各个页面类封装、测试用例集。公共类封装包括以下文件:html_test_runner.py#用于生成测试结果报告;browser_engine.py#用于封装浏览器相关操作的;base_page.py#页面基类,封装所有页面公共的方法;log.py#log类封装,用于日志文件输出;send_email#发送邮件。各个页面类封装用于封装各个页面类。测试用例集用于编写测试用例脚本。(6)测试报告此模块用于存放脚本运行完毕自动生成的测试结果报告。(7)代码启动入口此模块用于整个测试框架的脚本启动。图5-1测试框架结构5.3测试业务模块实现5.3.1公共类封装base_page.py#页面基类,封装所有页面公共的方法,比如:对浏览器的前进和后退操作进行封装、对浏览器的当前窗口进行关闭的方法封装、以及对浏览器页面的元素查找设置隐式等待时间的方法封装等等。(1)浏览器的前进和后退操作、关闭浏览器打开的当前窗口、设置查找元素的隐式等待时间的代码实现如图5-2所示。图5-2页面基本操作封装(2)切换到新窗口、8大元素定位方法的封装、输入框、清除文本的代码实现如图5-3所示。图5-3页面元素定位及基本操作封装selenium框架之八大元素定位介绍,如表5-2表5-2八大元素定位定位方法语法描述idfind_element_by_id()通过id属性定位namefind_element_by_name()通过name属性定位class_namefind_element_by_class_name()通过class属性定位tagnamefind_element_by_tag_name()通过tag标签定位link_textfind_element_by_link_text()通过链接定位partial_link_textfind_element_by_partial_link_text()通过超链接定位xpathfind_element_by_xpath()通过路径定位css_selectorfind_element_by_css_selector()通过选择器定位(3)点击元素、获取URL标签、获取警示框、获取等待时间的代码实现如图5-4所示。图5-4页面基本操作和信息获取封装浏览器封装模块,主要是实现打开和关闭不同浏览器的方法,对浏览器的一些基本操作进行封装后,在需要使用这些封装的方法时,直接调用即可。在test下新建python文件,自定义BrowserEngine类,实现对浏览器基本操作模块的封装,代码如图5-5所示。图5-5浏览器封装5.3.2页面类封装各个页面的脚本分开写,在此展示登录页面元素类的封装,在page_obj目录下新建一个login_page.py文件,用于实现登陆页面元素定位和相应元素操作方法的封装,实现代码如图5-6所示。图5-6页面类封装5.3.3测试用例管理模块实现分页面实现,登录页面就写登录页面的用例,首页写首页的用例,如图5-7所示。图5-7测试用例脚本结构再此展示登录页面用例实现,代码如图5-8所示。图5-8登录页面的测试用例脚本具体实现5.4数据模块实现在页面类封装的login_page.py文件中引入第三方的Xlrd模块,用于读取Excel文件中的数据,在编写login_page.py前,需要先将相应数据写到对应的Excel表中,即测试数据和脚本相互独立,如果测试过程中数据发生了变化,只需要修改Excel中的数据即可,不修改代码。在路径data下新建Excle文件:cases.xls,sheet名为:login,登录数据示例如5-9所示。图5-9登录页面的测试用例输入数据其他模块进行读取数据操作即可。5.5日志模块实现5.5.1截图在公共类封装模块写入函数img_screenshot(),当运行过程中遇到测试用例失败的情况下调用该函数,对其进行具体,并将截图保存下来,方便最后进行测试结果分析和找出错误出现的地方。代码如图5-10所示。图5-10截图功能封装5.5.2自定义日志服务日志服务主要收集日志信息,以方便后面如果需要排查用例失败的原因及错误定位。代码实现如图5-11所示。图5-11日志类封装5.6测试报告模块实现引用html_test_runner.py文件来实现测试报告生成,实现代码如图5-12所示。图5-12调用第三方库生成测试报告5.7本章小结本章主要内容是测试框架的实现过程和实现方式,在实现测试框架的过程中,先后对公共基类、页面类进行封装,放到一个基本类下面,方便其他模块进行调用。如何就是日志和邮件发送的脚本编写,以及测试用例的脚本编写。从整个框架的设计到实现,目前只是做出来了一个比较简单的测试框架,还有很多需要优化的地方,比如页面基类中还需要补充更多的公共方法。
第六章应用实践6.1搭建测试环境安装Python、Pip、Chrome、Pycharm、Selenium等软件,导入标准库或第三方库Unittest、Smtplib、Xlrd、Logging、Webdriver、Configparser等等。6.2测试执行运行代码启动文件,执行测试用例,本文用校友邦的登录页面作为例子进行展示,如图6-1和图6-2所示。脚本会自动打开网页,并读取Data里面的数据,先清空输入框,在输入读取的数据,最后关闭浏览器,之后开始循环,直到测试用例执行完毕,才会停止运行。并产生日志和测试报告。图6-1正确用例验证登录图6-2错误用例验证登录6.3测试报告测试报告展示页面主要包括开始执行时间、执行总耗时、测试通过、失败用例数,以及用例详情。展示效果如图6-3所示。图6-3测试报告报告详情展示,如图6-4所示。图6-4测试报告详情展示通过测试报告,会发现,测试速度是很快的,8条用例只用了一小会的时间就可以完成。如果用手工进行测试的话,8条用例最少都要用几分钟以上,而且人工测试一直重复的做一件事是比较浪费资源的。所有说,用自动化测试代替一些重复的、枯燥的手工测试,是一个很有必要的事件。6.4本章小结本章主要介绍用实现的自动化测试框架在真实的测试场景中的验证,测试框架达到了预期的要求,日志和测试报告都与设计一致。同时介绍了测试框架环境部署需要用到的工具,并对测试报告进行了分析。
第七章总结与展望7.1总结本课题主要实现的是基于Selenium+Python的自动化测试框架,可以支持Web应用程序的自动化测试。通过该框架的公共类和页面基类的封装,可以根据不同的场景进行不同的脚本组装来完成不同场景的自动化测试。该框架可以支持浏览器的兼容性测试。同时该框架还支持日志输出,查看日志可以提高故障排除的效率。以及该框架支持在测试完毕后自动生成自动化测试结果报告,并可以将报告发送给配置文件中指定的人员,收到测试结果报告的人可以通过报告直观的了解到测试的执行结果。7.2后续研究展望本课题实现的框架还是很浅显初级的测试框架。因此在此框架中还可以进行多方面的扩展。可以以此框架为基础进行进一步的研究,比如在此框架的基础上进行编译,使其去执行一个完整的项目,而不是一个项目中是部分模块,看最终的执行结果是否有执行一部分模块的执行结果一样理想,如若不是,需要找出原因进行优化。此测试框架对于数据的管理是不成熟的,在整个框架中也看不出明显的功能效率,需要在后续研究中对其进行一个深入的挖掘和实现。同时,此框架的测试报告生成是引用的第三方库来实现的,期望在后续的研究中可以自己定义测试报告的模板和展示情况。7.3本章小结本章主要是对实现的测试框架及其功能进行一个总结,以及对该测试框架实现的功能进行一个简短的介绍。同时对自动化测试框架的研究在未来的优化和发展趋势做一个展望总结。参考文献[1]冯晶晶.基于Selenium的Web自动化框架的设计与实现[D].北京工业大学,2018.[2]王艳梅.基于Selenium的Web应用测试框架的开发[D],上海交通大学软件学院,2013-06[3]王光源.Web应用的自动化测试[D].山东大学,2006.[4]秦海光.基于Selenium自动化测试框架的改进与应用[D],中国科学院大学(工程管理与信息技术学院),2014.[5]邓青华.软件自动化测试分析[J].软件导刊.2011.[6]虫师.Selenium2自动化测实战-基于Python语言[M],北京,电子工业出版社,2016:12.[7]但凝云.基于Selenium的自动化框架的设计与实现[D],云南师范大学,2016.[8]王聪颖.基于Python的自动化测试框架的分析与设计,北京邮电大学,2017-05-04.[9]洪芳.基于Selenium2的WebUI自动化测试框架的设计与实现[D],西南交通大学,2017.[10]辛庆.基于Selenium的WebUI自动化测试[D],华南理工大学硕士论文,2012-12.[11]罗明宇.基于Selenium的安全自动测试技术的研究与实现[D],广东工业大学,2015.[12]马涤非.Selenium在EMGC系统自动化测试过程中的应用与研究[D],北京交通大学,2010.[13]洪芳.基于Selenium2的WebUI自动化测试框架的设计与实现[D],西南交通大学,2017.[14]董永清.基于Web的自动测试框架的设计与实现[D],北京交通大学,2012.[15]闰文蛟.Web功能自动化测试框架的研究与设计[D],西安电子科技大学,2015.[16]赵金丹.基于Selenium的Web自动化测试脚本设计研究[J],科技传播,2014(1).[17]梁向阳,高丽萍.基于Selenium的Web测试研究与应用[D],西安工业大学,2015.[18]柴旭琴.基于Selenium的Web应用性能测试系统设计与实现[D].西安建筑科技大学,2012.
致谢岁月似白驹过隙。四年的大学生活已经接近尾声,在东软四年的大学生涯学到了很多,同时也收获了不少的欢声笑语。四年来,感谢陪我一路走过来的所有人,因为有你们或多或少的参与,让我在大学这四年每天都有所收获。本人此次的毕业论文都是在论文指导老师姚庚梅的关心和耐心指导下完成的,真挚的感谢我的指导老师对我的无私指导和悉心关怀。从最初的毕业论文选题到毕业作品的实施以及论文的写作,直至毕业论文的顺利完成,我的指导老师也是我的恩师姚庚梅都一直给予我最大耐心来帮助我完成毕业作品和论文,在此谨向恩师姚庚梅老师致以最真挚的感谢和崇高的敬意。同时感谢的我企业导师宋旺发的大力支持,无论是在课题研究还是工作中,都给予了我非常的大的帮助和指导,课题研究的顺利完成,离不开导师对我的支持。感谢在毕业作品和论文编写期间给予我帮助和鼓励的同学、朋友和同事,被大家互相学习互相帮助的精神所感动。最后要特别感谢家人在精神上给予我的极大的支持和鼓励,顺利地完成大学学业,并有信心更好地对待未来的学业、生活和工作。
HYPERLINK如何选择组装电脑配件
如何选择组装的电脑配件.
第一,选择好CPU平台,就是INTER还是AMD,看你是要配什么样的电脑,高端还是低端的,两个平台都高低的产品。第二,选择主板了,主板的品牌比较多,质量,价格也不一,当你第一步却定了,那么主板也就相应的却定下来了,以INTER为例,只可以选择775接口的主板(早期有478接口的,不推荐),主板的选择主要有两种,一是集成显卡,二是不集成显卡。集成显卡的话,就可以省下显卡的钱,但是对游戏玩家不推荐。那么当然是选择不集成显卡的主板了,而且最好选择一线品牌,如华硕,技嘉等。主板里,还有个蕊片组的选择。关于蕊片组,各个品牌的主板命名有些不一样,主流是INTER965,945,915,VIA的KT890,还有NFORCE4,NFORCE5。等。比较难说清楚。最好是选择INTER的蕊片组,虽然价格会稍高一些。推荐945,技术比较成熟。第三,显卡的选择。显卡主要还是有两类品牌,GEFORCE和ATI,两个品牌有高,中,低的显卡。显卡选择要看你个人喜欢了,预算充足的话,最好是买中,高端的显卡。
第四,就是内存了,内存关系电脑的稳定性。当然是要好一点的。买一线品牌的。现在配电脑,主流是DDR667,DDR800DDR1333第五,显示器的选择,推荐液晶。如何选择硬件组装电脑这是一个老生常谈的问题了,这也是一个让高手们显示自己硬件功底的问题,同时这还是一个让很多新手为之焦头烂额的问题。该怎么配?具体配什么?怎样配才能尽量减小瓶颈?本文就将从内到外,从理论到实践,为朋友们抽丝剥茧一一道来。
一、CPU
作为一台电脑最关键的组成部分,CPU确实起着举足轻重的作用,但体现一台电脑的综合速度,并不是仅仅依靠CPU的,常常看到很多新手们在配电脑的时候,把CPU选的很好,但其他的东西诸如内存、主板、硬盘等都选的不太理想,好像这台电脑速度的快慢就体现在CPU速度的快慢上似的。甚至很多著名的品牌机厂商,都推出过类似“P4+256M内存”的这种跛脚配置。其实对于一般的家用电脑而言,一个真正会配的高手,是不会把大量的钱花在CPU上的。家用电脑,毕竟不是做密集型科学计算用的,它讲求的是多种媒体的配合工作,讲求的是能一边下载文件、一边上网浏览网页、一边听音乐、一边还能打开其他的程序,在这种情况下,提升内存的容量比提升CPU的主频对速度的影响要明显的多。现今的中国家庭用户,很多家长对于电脑一窍不通,他们只听说“奔四”代表着速度快,并不知道整机速度的快慢除了CPU以外,还有很多其他的因素影响着它。但在买电脑的时候,最后做决定并掏钱的人,往往都是这些啥都不懂的家长们,于是就出现了上面的一幕:品牌机厂商为了能有更好的销路、兼容机装机店的销售人员为了能拿到更多的奖金,开始违背良心来配置出这种高主频处理器、低容量内存的跛脚电脑。说严重点,这是属于对消费者的不负责任,是一种商业欺诈行为!同样5000元的配置,高手配出来的赛扬,比新手配出来的P4还要快很多,曾经有一家全球著名的硬件网站在2003年的时候刊登过一篇关于配置家用电脑时各硬件占用总预算百分比的文章,文中很明确的提到了CPU的价钱最好不要超过总预算的10%-15%,我们虽然不能说他肯定完全正确,但至少人家是通过很多调查后得出的结论,有借鉴的理由。反观现在的很多所谓的“低价奔四电脑”、“3999元买P4品牌机”之类的广告,我想说的就是:你花了3999元,只买了一块P4的处理器,其他的什么都没有了!
二、内存
对于配置一台电脑来说,内存是重头戏,容量、速度、类型等等每一项指标都对最终的整机综合速度起着至关重要的影响,尤其是内存的带宽和容量。对于内存带宽而言,很多人都认为400MHz、533MHz前端总线的赛扬四或P4,配单通道的DDR内存就足够了,双通道DDR内存是配合800MHz以上前端总线的P4处理器用的,其实这样就大错特错了,哪怕是最老的赛扬四,都需要双通道的DDR内存才能达到它的带宽!也就是说,你如果选择赛扬四1.8G,必须配合865以上的主板和至少双通道DDR200的内存,才能满足它的带宽要求!稍微计算一下就可以得知:赛扬四1.8G的前端总线是400MHz,它的内存带宽理论值是400MHz×64bit÷8=3.2G/s,但当它装在845系列的主板上时,由于845主板的限制,即使你插上能符合它带宽要求的DDR400内存,也只能运行在DDR266上,这时的内存所能提供的带宽是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通过BIOS里的内存调节选项往上调节一档(也只能调节一档而已),让内存运行在DDR333下,所能提供的带宽也仅仅是333MHz×64bit÷8=2.66G/s,离3.2G/s还是有一定的距离,而内存带宽的降低,能非常明显的降低整机的综合速度,运行任何程序都能明显的感觉出来!所以如果想满足赛扬1.8G处理器的内存带宽要求,你必须要为它配置865以上的主板和双通道的内存才行!P4亦是如此。很多人也许会问:那845系列的主板是配什么处理器的呢?我想回答你的就是:845系列的主板是属于“不能用”的主板,因为处理器永远比主板发展的快,当初Intel造出845系列的芯片组是为了能给当时的赛扬和P4提供一个过渡的平台,不至于让它们成为“没有主板配合”的处理器而已,也是为了能在低端市场分一杯羹,而现今865甚至9xx系列的主板横行的时候,845系列的主板确实是属于“不能用”的主板了,满足不了任何一款处理器的内存带宽,造成性能上的严重低下,试问这种主板你会选择么?即使配台2000多元的超低价电脑,也不要去选择845系列的主板,至少需要865以上的和双通道内存才行,因为内存带宽是一个非常影响系统性能的参数,倘若一味的为了省钱而配置845系列的主板,那就得不偿失了。
内存的容量方面,应每个人对电脑的使用方向不同,容量的要求也是不同的,现在配置的家用电脑,笔者建议:如果不打游戏,或者是打打扫雷、纸牌之类的游戏,平时注重于上网浏览或者是聊天、看电影之类的应用的话,内存容量不应该低于1G;如果是偶尔打打单机游戏或者是网络游戏,内存容量应该选择在2G左右,如果是经常打大型的游戏或是进行HDTV视频编辑等应用,那么4G的内存是必不可少的。
三、主板
一台电脑的稳定性和兼容性,一大部分是看主板的,一款优秀的主板不仅需要拥有上等的用料和优良的做工,还需要拥有合理的走线设计,那些没有技术实力的三、四线主板厂家生产的主板,多数是采用公版走线,而且用料非常差,稳定性不堪一击,这种类型的主板,笔者建议宁愿不买电脑也不要配这种主板,否则以后将会是个淘气的祖宗。对于家庭用户,主板方面一定不能省钱,预算够的话最好能买个一线的主板品牌,如果预算实在不足,二线的主板是底线了,不要再往下选择了,毕竟家用电脑是用来使用的,不是用来整天维修的。再谈到主板的用料,笔者常常看到很多新手在配置主板的时候,貌似老鸟似的说某某品牌的主板好,某某品牌的不好,试问你知道它好在哪里么?不好在哪里么?这个就要看主板的用料了,虽然用料好的主板并不能代表一定是高档主板,但最少能代表它的电气性能出色。举一个很简单的例子吧:有A、B两款主板,A主板的处理器供电滤波电容采用的是日系电容,B主板的处理器供电滤波电容采用的是台系电容,那么基本上可以肯定的是:如果在电源输出电压的波动范围比较大的情况下,A主板就比较能耐得住,而B主板就很容易产生电容鼓包、漏夜等情况。不要小看这小小的电容,笔者从一个开维修店的朋友那里得知,来维修主板的人,有80%的都是这几个小电容损坏,究其原因,就是电源选择的不好,导致了输出电压的不稳定,久而久之最终导致这几个小电容爆浆,并且详细叙述了主板的品牌:“一线厂家的×硕牌主板就很少出现这种情况,但同样为一线厂家的×星牌主板,经常遇到!原因就是前者的大部分主板使用的是日系电容,而后者的大部分主板为了省钱,选用的是台系电容!”厂家的广告不能信,宣传也不能信,看到一个产品的广告之后,你所能相信的唯一一点就是:地球上有这么个产品的存在!然后其他的就统统都不能信了!网上有好多所谓的“评测”文章,都是枪手写的,基本上没有任何参考余地,只能作为一篇小说来读,一款主板的真正性能,只有你自己使用了之后才能知道。厂家为了销量、商家为了利润,他们能把最最垃圾的主板宣传为最顶级的产品,笔者曾经就看到过一款四线品牌的主板厂商,在对其主流主板的广告上说“最优秀的设计、最精湛的工艺、最稳定的性能”……结果一看报价:550元/块……其他的话我也不想多说了,只想问问这家厂商:你这么垃圾的主板都用了三个“最”字,那么华硕的同芯片组主板,售价是你三倍的,应该用什么词语来描述了??中国有一句古话:一分钱一分货,说的非常正确!不要认为价格高的主板就是暴利产品,从市场经济学上说,暴利产品是不会被市场所接受的,之所以他能存活到今天,而且售价依然是这么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售价高,在此,笔者奉劝大家一句:买主板千万不要凭侥幸心理,认为自己能花很少的钱买到很好的东西,只有错买的没有错卖的,商家永远都比你精明!主板上面还是老老实实的多花点钱来买个一线产品吧,否则以后有你吃苦的时候!
四、硬盘
现在的电脑,硬盘的速度当之无愧的成为了“第一大瓶颈”,无论你是再高的高手,配电脑的时候也无法消除这个瓶颈的存在,我们只有尽量的减小…再减小……。对于家用电脑的硬盘来说,容量和速度是两个非常重要的参数,容量上而言,笔者建议:如果你的电脑只是上网浏览浏览、偶尔打打小游戏的,那么160G的硬盘是个不错的选择;如果你常常下载软件或电影,那么250G的硬盘是个不错的选择,如果你是个下载狂人,那么400G的硬盘比较适合你;如果你有DV或者是经常编辑大型的视频文件,那么400G×2比较适合你,如果你是个玩HDTV的人,那么恭喜你,400G×4也许你都不够用。对于硬盘容量上的选择,你不能考虑现在是否够用,你应该考虑未来的1年里是否够用,大概的公式是:现在需要的容量×3。也就是说,如果你现在感觉80G的硬盘差不多够用了,那么你就需要买个250G的硬盘。如果你现在感觉120G的硬盘够用了,那么就去买个400G的硬盘吧。硬盘另外的一个参数就是速度,受到内部传输率等诸多因素的限制,一块硬盘的实际传输速度是不可能达到它的接口速度的,现在的并口硬盘基本上都是ATA133了,串口硬盘也都是150了,但民用级硬盘的实际传输速度最快的也还没突破66M/s,所以跟内存相比,硬盘的速度是电脑中最大的瓶颈,那么怎么来减小这个瓶颈呢?于是人们就发明了RAID,就是磁盘阵列(当然RAID不是仅仅为了这个而发明的),用两块一模一样的硬盘来组成RAID0,速度理论上能提高1倍,虽然实际上是不可能达到1倍的,但至少能非常非常明显的感觉到了硬盘速度的提升,笔者建议:如果你买的主板是带有RAID功能的,并且你需要保存的数据不是很重要的话,那么强烈建议你在预算允许的情况下购买两块硬盘来组建RAID0,这将使你能亲身体会到飞机与火车的速度差别!但最好是串口的,如果是并口的话,因为并口走的是PCI总线,由于PCI总线上的设备比较多,所以速度不可能达到比较高的地步,但如果是串口的话,那么硬盘的速度提升将更加明显!
五、显示器
显示器方面,笔者想澄清一个观念:曾经听过非常多的人说液晶显示器保护眼睛,因为没有辐射和闪烁……包括很多业内人士都这么认为的,其实错了,液晶显示器比普通的CRT还要伤眼睛!因为伤眼睛不仅仅是辐射和闪烁,还有对比度、亮度等参数,虽然液晶显示器的辐射和闪烁比CRT要小的多,但它那要命的对比度、那要命的色泽度、还有那大于每平方米300cd的亮度,这些都会对眼睛造成很大的伤害,并且你即使将液晶显示器的亮度和对比度调节到最低,也还是非常的刺眼。德国的一家权威机构做过一项调查:液晶显示器用久了会使人的眼睛感觉到疲倦,甚至头痛等症状,而使用相同时间的CRT显示器,却基本没有这些情况出现。现在的通过TCO03认证的CRT显示器,其实外露的辐射已经相当小了,基本上对人已经没有多大的伤害了,闪烁感也可以通过调节刷新率来降低,笔者实在是搞不懂为什么很多人非要去选择液晶显示器,还非要说液晶显示器不伤眼睛??一个最差的17寸液晶显示器的价格,能买一台不错的、通过TCO03标准的19寸CRT了,显示面积也差不多大,而且CRT又比液晶更保护眼睛,液晶显示器唯一的一个优点就是占用空间小而已,其他的统统是缺点,为什么不选择CRT呢??说到TCO03标准,现在很多的号称是通过TCO03认证的显示器,其实都是贴牌的,都没有真正的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论