基于Selenium Python的自动化测试框架的设计与实现.doc
《基于Selenium Python的自动化测试框架的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Selenium Python的自动化测试框架的设计与实现.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要随着互联网行业的快速发展,敏捷开发快速迭代的性质。传统软件测试的技术和方式并不完全适用于如今的Web系统的测试,对于企业引进自动化测试是非常必要的。目前,市场上已经有许多自动化测试工具和框架。如何构建一套适合自我测试的工具或框架,满足实际需求的自动化测试框架是每个研究自动化测试或自动化测试的工作者需要考虑和解决的问题。本文主要是利用软件测试知识、自动化测试相关教程和自动化测试框架理论,在结合对当前市场上流行的自动化测试工具的分析结果,使用高效、简洁、灵活的Python语言去实现一款基于Selenium+Python的自动化测试框架,该框架的测试对象主要是功能测试。在使用该测试框架过程中,需
2、要提高测试脚本的维护性、复用性和扩展性,有利于实现减少测试成本的消耗、提高测试执行的效率和保证软件产品的质量。关键词: 自动化测试 测试框架 Selenium框架 Python脚本AbstractWith With the agile development of the Internet industry. Nowadays, traditional software testing techniques and methods are not fully applicable to Web system testing, so it is very necessary for enterp
3、rises to introduce automated testing. At present, there are a lot of automated testing tools and shell frame in the market. How to build a set of self-test means or shell frame to meet the physical demands of automated testing framework is a problem that every researcher of automated testing or test
4、 automation needs to consider and solve. Thispapermainlyusestheknowledgeofsoftwaretesting,relatedcoursesofautomatictestingandthetheoryofautomatictestingframework.Combiningwiththeanalysisresultsofthepopularautomatictestingtoolsinthecurrentmarket,itusestheefficient,conciseandflexiblePythonlanguagetore
5、alizeanautomatictestingframeworkbasedonselenium+python.Thetestingobjectofthisframeworkismainlyfunctiontesting.In using the test framework at this process, we need to improve the maintainability, reusability and augmentability of test scripts, which is instrumental in reducing the consumption of test
6、 costs, improving the efficiency of test execution and ensuring the quality of software products. Key words: Automatic Test Framework Selenium Framework Python Script目 录第一章 绪论11.1 研究背景及意义11.2 国内外研究现状11.3 研究目标与内容21.4 本文结构31.5 本章小结3第二章 自动化测试技术研究42.1 软件自动化测试概念研究42.1.1 自动化测试定义42.1.2 自动化测试过程52.1.3 自动化测试框
7、架分类62.2 软件自动化测试框架研究72.2.1 主流自动化测试框架研究72.2.2 自动化测试框架设计原则研究72.3 软件自动化测试工具研究82.3.1 自动化测试工具分类研究82.3.2 Selenium工具研究92.3.3 Selenium WebDriver工具研究92.4 Python语言特点介绍102.5 本章小结10第三章 自动化测试框架需求分析113.1 测试框架功能需求分析113.1.1 测试用例管理模块测试需求分析113.1.2 测试业务模块需求分析113.1.3 数据模块需求分析123.1.4 日志模块需求分析123.1.5 测试报告模块需求分析123.2 测试框架非
8、功能需求分析123.3 本章小结13第四章 自动化测试框架设计144.1 测试框架的整体架构144.2 测试业务模块设计144.2.1 公共类封装144.2.2 各个页面类封装154.2.3 用例管理模块设计154.3 数据模块设计164.4 日志模块设计164.4.1 截图164.4.2 自定义日志服务和日志输出164.5 测试报告模块设计174.5.1 生成测试报告174.5.2 发送测试报告174.6 本章小结17第五章 自动化测试框架实现185.1 开发工具185.2 测试框架方案实现185.3 测试业务模块实现195.3.1 公共类封装195.3.2 页面类封装235.3.3 测试用
9、例管理模块实现245.4 数据模块实现255.5 日志模块实现265.5.1 截图265.5.2 自定义日志服务265.6 测试报告模块实现285.7 本章小结28第六章 应用实践296.1 搭建测试环境296.2 测试执行296.3 测试报告306.4 本章小结31第七章 总结与展望327.1 总结327.2后续研究展望327.3 本章小结32参 考 文 献33致谢34图表目录图 2-1 自动化测试基本流程5表 2-1 用于黑盒测试的自动化工具8表 2-2 用于白盒测试的自动化工具8表 2-3 用于管理测试过程的管理工具8图 2-2 Selenium - RC的原理9图 2-3 Seleni
10、um工作基本原理10图 3-1 测试框架功能需求分析11图 4-1 测试框架的整体结构14图 4-2 公共类封装15图 4-3 Testcase结构16表 5-1 开发环境及工具18图 5-1 测试框架结构19图 5-2 页面基本操作封装20图 5-3 页面元素定位及基本操作封装21表 5-2 八大元素定位21图 5-4 页面基本操作和信息获取封装22图 5-5 浏览器封装22图 5-6 页面类封装24图 5-7 测试用例脚本结构24图 5-8 登录页面的测试用例脚本具体实现25图 5-9 登录页面的测试用例输入数据25图 5-10 截图功能封装26图 5-11 日志类封装27图 5-12 调
11、用第三方库生成测试报告28图 6-1 正确用例验证登录29图 6-2 错误用例验证登录30图 6-3 测试报告30图 6-4 测试报告详情展示31广东东软学院本科生毕业设计(论文)第一章 绪论1.1 研究背景及意义随着软件行业的发展,公司是越来越重视测试部门的发展,这就使得测试工作者更加的需要实力,所有对于自动化测试这一领域是一定需要涉及的,不光如此,自动化测试其本身也是很有价值的。引入自动测试可以在不同程度上提高整个项目的测试效率,与手工测试一起保证软件产品的高质量。身处这个互联网行业发展迅速的时代,对测试人员来说,随着技术的不断更新,是需要不断提升个人的核心竞争力,以期待符合企业用人需求和
12、对自动化、性能、接口测试的硬性要求,以及对编码、数据库、服务器等综合应用需求。总的来说,于这个时代软件、互联网行业的工作者来说,特别是测试工作者,对于自动化测试的学习和运用是一个提升能力的途径。现如今可以辅助进行自动化测试的工具有很多,有商业化的,有开源性质的。其中Selenium就属于开源的,可以很好的用于学习。自动化测试在一个版本周期比较长且主要功能业务改变的可能性不大的项目中是非常有存在意义的。在这样的项目中,首先,枯燥、重复的手工操作可以进行脚本化,用于避免人为因素影响测试的进展及质量,可以解放部分时间。其次,对于一些软件,比如其功能比较全面、整体框架比较稳定,进行新版本发布时,这些软
13、件的整体页面及其整体功能变化不大。类似这样的软件迭代就比较适合用自动化测试框架进行测试,可以提高软件的可信度。再次,它可以更好地利用资源,如工作日的晚上和每周的周末,可以用自动化测试来代替人工测试,使公司的资源可以被充分利用起来。最后,在版本快速迭代的过程中,自动化测试的目的是为了保证产品的质量,而不是发现更多的Bug,多数的Bug还是需要手工测试才会暴露出来。 本毕业论文主要是利用软件测试知识、自动化测试相关教程和自动化测试框架理论,在结合对当前市场上流行的自动化测试工具的分析结果,使用高效、简洁、灵活的Python语言去实现一款基于Selenium+Python的自动化测试框架,框架以功能
14、测试为主。在使用该测试框架过程中,需要提高测试脚本的维护性、复用性和扩展性,有利于实现减少测试成本的消耗、提高测试效率和执行速度和保证其测试的产品的质量。1.2 国内外研究现状本文研究基于Selenium+Python的自动化测试框架,在此也段落分别介绍Selenium、Python以及自动化测试的现今的发展及其历史起源。Selenium是ThoughtWorks测试团队开发的。最初,它只是一个名为JavaScript runner的简单测试工具,由Jason Huggins在2004年编写。在后来的一系列发展中,逐渐成为了现在这样的一个开源、免费、独立的自动化测试工具。出色的多语言开发特性、
15、跨平台、跨浏览器的工作兼容性使得Selenium获得了许多研发团队的青睐1。1991年,出现python编译器。自从Python编译器出现以来,Python已经有了核心数据类型,如类、函数、异常处理机制、表、字典和基于模块的扩展系统。Python的发展主要由Guido和他的团队以及社区进行推动的。在Python 2.0版本之后,Python的开发方法是完全开源的。到现在,Python已经拥有了一个稳定的框架。Python是一种编程语言,它围绕对象组织代码,支持多种编程模式,并自动回收内存。Python的标准库 (Battery Included)非常强大和稳定。正因为如此,Python已经开始
16、扩展第三方包。Python一直是一种美丽、清晰、简单的语言,因而被广泛使用。第一代自动化测试通过硬件记录键盘输入,然后回放。其测试脚本的维护是非常非常不容易的。第二代自动化测试已经从硬件转换为通过软件录制/播放生成自动化的测试脚本,同时增加了检查点功能对软件进行自动化测试是否正确进行验证,自动化测试的整体范围比前身的范围要扩大了很多2。第三代开始逐渐被称为测试框架,其功能是将脚本进行抽象化,使理解不了测试脚本源代码、完全不会编写测试脚本的人也会使用该工具来完成测试。第四代Mercury Business Process Testing:关注的是业务需求。1.3 研究目标与内容本文利用所学的软件
17、测试基础知识、自动化测试相关教程和自动化测试框架理论,在综合分析当前市场流行的自动化测试工具,实现一个基于Selenium+Python的自动化测试框架,该框架侧重于功能测试。在使用过程中,有必要提高测试脚本的可维护性、可重用性和可扩展性,从而降低自动化测试的成本,提高自动化测试的测试执行效率,以到达保证软件的整体质量的目的。本篇论文的主要研究内容如下:(1)研究和分析软件测试的基础知识、自动化测试的相关技术和自动化测试框架技术。本文分析了当前市场上流行的自动化测试工具,介绍了Selenium自动化测试系列工具及其特点,分析了Selenium自动化测试的工作原理和实现机制。(2)结合测试理论与
18、实际测试需求,分析并定义基于Selenium+Python的自动化测试框架的功能和非功能需求。(3)根据分析出来的需求点,设计和实现基于Selenium+Python的易于维护、易于扩展、可复用的自动化测试框架,以实现Web应用程序功能的自动化测试。(4)应用与实践。以校友邦为测试对象,设计一些测试用例,通过实现的框架进行脚本执行,并对自动化测试生成的测试结果报告进行分析。1.4 本文结构本毕业论文章节结构及相应章节内容展示:第一章 绪论:对本毕业论文的研究背景及意义、国内外自动化测试相关研究现状以及论文的整体结构进行阐述。第二章 自动化测试相关技术研究:对自动化测试的理论、过程、框架和工具进
19、行相关研究。第三章 自动化测试框架需求分析:对测试框架的功能和非功能需求这两方面进行分析和叙述。第四章 自动化测试框架设计:对基于Selenium+Python的自动化测试框架的总体架构进行设计,然后对框架涉及的所有功能和需要用到的测试输入数据进行设计。第五章 自动化测试框架实现:实现基于Selenium+Python的自动化测试框架,包括开发环境的搭建以及各个功能和数据的具体实现。第六章 应用实践:介绍基于Selenium+Python的自动化测试框架在真实项目中的运用,以及对测试结果报告进行简要分析。第七章 总结与展望:对实现的测试框架其成果进行总结,以及对未来的展望。1.5 本章小结本章
20、是对自动化测试的研究背景和意义进行一个简要的概述说明,对本课题的研究内容和自动化测试在国内外的现状进行一个总的综述。同时对本课题进行一个纲要介绍。第二章 自动化测试技术研究2.1 软件自动化测试概念研究2.1.1 自动化测试定义自动化测试(Automated Test)是把机器执行测试代替手工测试的一种过程,即通过执行编写的自动化程序脚本来模拟手工测试的过程2。根据需要,自动化测试可以包括所有的测试阶段,支持跨平台,并且与进程没有关系。通常情况下,进行软件测试,都是先进行理解需求,在进行需求评审,评审通过后,开始编写自动化测试的整体测试计划、和用于自动化测试的测试用例编写,然后在通过自动化测试
21、用例评审会议,评审会议通过后,测试人员才会正式的进行测试,前面的步骤只是介入测试和对正式执行测试的一些准备工作。当进入执行测试阶段时,测试人员需要根据测试用例对被测系统进行测试,测试完成后,将分析测试结果并将其与预期结果进行比较,如果测试用例与预期相同,则判断为通过,需要将其按照正常的Bug提交流程提交到项目管理工具中,方便于项目开发人员进行Bug的修复。在这个样的手工测试过程中是一个耗时耗力的工作,如此操作虽然对测试的质量有很高的保证,但它同时对人力、物力以及一些资源造成了浪费。因此,为了节省各种资源(包括人力、物力、时间、硬件),提高测试执行效率和测试的质量,以及不脱轨于国家计算机信息化的
22、发展,紧跟软件的迭代速度,自动化测试注入软件行业是一个必然事件。自动化测试现在运用得比较多的三个地方是单元测试、接口测试,界面测试。单元自动化测试是软件的数据处理层,是系统中可检测和验证的最小模块,在很大程度上,它将依赖于一些自动化测试的基本框架,例如JUnit,TestNG,Python的Unittest等;接口自动化测试是各种软件的另一个基本业务逻辑层,它直接用于全面检查和验证各种软件模块的初始化参数和返回数据,以及与系统和服务之间的数据交换。常用的接口测试工具包括Postman(非常简单,操作简单,免费享受)、JMeter(开源社区,基本功能非常强大,免费享受)、LoadRunner(付
23、费购买)等;UI自动化测试是对各种软件应用程序界面层进行测试。测试中的其他大部分工作都相对集中在这里,因为用户基本都是与这一层进行交互,常见的测试工具有Robot framework、Selenium、Appium等等工具。2.1.2 自动化测试过程在当下,进行一个项目的开发,测试与开发是并行的,都会同时介入项目,只是侧重点不一致。自动化测试也是测试,从本质上来进与手工测试没什么不同,都是用于软件测试质量保证,只不过自动化技术的测试是利用自动化测试技术相关工具和代码自动构造输入,并自动检查结果的连续输出是否可以满足期望,手动测试要求执行测试的人员自己执行所有测试。利用自动化技术进行自动化测试需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Selenium Python的自动化测试框架的设计与实现 基于 Selenium Python 自动化 测试 框架 设计 实现
限制150内