基于Python+Selenium的web自动化测试框架的设计与实现.doc
《基于Python+Selenium的web自动化测试框架的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Python+Selenium的web自动化测试框架的设计与实现.doc(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要最近这些年来,随着科技与计算机行业的发展,软件测试的重要性越来越突出,传统方式的手工测试主要根据测试用例来手动执行测试,测试用例没有覆盖到的地方则采用错误猜测的方式去弥补,这样大量的重复的劳动容易产生疲劳,很容易导致错误的产生和测试的盲点。使用自动化测试可以测试UI界面的布局和排版、大小等等,还可以进行兼容性测试、稳定性测试等。在进行工作的时候,能够有效提高软件测试的效率和灵活性,减短软件开发的周期;节约测试的花费,也可以使测试用例更加易于维护。本文主要研究的是软件测试的理论基础和相关的实现技术,阐述了软件自动化测试框架的关键点,设计并且实现了一个基于python+selenium的we
2、b自动化测试框架,并在此自动化测试框架的基础上实现了简单的自动化测试功能。关键词:web自动化测试 selenium+python 自动化测试框架AbstractIn recent years, with the development of technology and computer industry, software testing has becoming more and more prominent. The traditional manual testing is mainly based on test cases to manually perform tests, a
3、nd the places not covered by test cases are made up by the way of error guessing, so a lot of repeated labor is prone to fatigue, which is easy to lead to the generation and testing of errors The blind spot of.Automatic testing can be used to test the layout, layout, size, etc. of UI interface, as w
4、ell as compatibility test and stability test. In the process of work, it can effectively improve the efficiency and flexibility of software testing, reduce the cycle of software development; save the cost of testing, but also make the test cases easier to maintain;.This paper mainly studies the theo
5、retical basis and related key technologies of software testing, and expounds the key points of software automated testing framework, including software automated testing life cycle, how to build high-quality automated testing process, etc. Design and implement a web automation testing framework base
6、d on Python + selenium, and realize the automation testing function based on this framework.Keywords: Web automated testing Selenium+ Python Automated testing framework 目录第一章 绪论11.1课题研究背景11.2 国内外发展现状与发展过程11.2.1 国内发展历史11.2.2 国外研究现状21.3 本文的主要内容和实现目标21.4 论文结构2第二章 传统软件测试概述42.1软件测试概述42.1.1 软件测试的定义42.1.2
7、软件测试的分类42.1.3 软件测试的过程模型52.1.4 软件测试相关流程和文档62.2 软件自动化测试相关理论72.2.1 自动化测试的定义72.2.2 自动化测试的对象82.2.3 自动化测试框架的分类82.2.4 为什么要进行自动化测试102.3 Web自动化测试概述102.3.1 Web应用的测试内容10第三章 Web自动化测试框架需求分析123.1 自动化测试框架功能需求分析123.1.1 自动化框架支持的测试类型123.1.2自动化框架支持的执行策略133.2 自动化测试框架内部逻辑需求分析143.3 测试脚本集成开发环境153.4 构建工具的选择15第四章 Web自动化测试框架
8、的设计164.1 自动化测试框架的整体架构164.2 自动化测试框架服务层设计164.3 自动化测试框架执行层设计184.4 测试脚本分层架构设计22第五章 Web自动化测试框架的实现245.1 自动化测试脚本封层架构的实现255.1.1 Utility层的实现265.1.2 Page层的实现295.1.3 Test层的实现315.1.4 UI层的实现315.1.5 Testsuit层的实现325.2 提供的执行策略335.3 自动化测试框架的实现345.4辅助功能355.5 测试数据存储365.6 测试结果输出365.7 Selenium对浏览器的支持365.8 自动化测试脚本开发遵循的原则
9、37第六章 web自动化测试框架的应用实例396.1 百度搜索测试用例396.1.1 百度搜索用例的设计396.1.2 测试脚本的创建396.2 百度登录测试用例406.2.1 百度搜索用例的设计406.2.2 测试脚本的创建406.3维普查看个人信息测试用例426.3.1 维普查看个人信息用例的设计426.3.1 测试脚本的创建426.4 运行测试用例及查看测试报告45第七章 总结48参考文献49致谢50广东东软学院本科生毕业设计(论文)第一章 绪论1.1课题研究背景随着互联网技术的迅猛发展,软 件 开 发 过 程 中,软件测试是不可或缺的一部分 ,也是能够保证软件质量的一种重要方式,进行软
10、件测试,既能够确保了软件的质量,也降低了软件后期维护的成本。进 行 自动化测试能够在很大程度上杜绝人为工作出现的失误和降低工作的难度,使工作流程更加精简。不仅提高了工作的效率,还保证了质量的良好性,增加了软件的可用性和投资的效益。近年来,Firefox、Internet、Chrome等浏览器被很广泛的使用,传统的信息与数据库、财政、娱乐、教育等许多方面都开始使用和利用互联网,产生最大最长远的价值。Web具有非常强大的并发性,因为在很短的时间内,Web内的一个网页能够支持被成千上万的人去点击请求查看或者使用。但是随着用户的增加,Web应用程序日渐复杂的功能需求,Web系统中潜在的漏洞或者弊端也会
11、越来越多。所以,对于一个网站来说,拥有一套高效的、可管理的测试框架是必不可少的。传统的测试工作主要是使用手工进行测试用例的编写并一条一条的去执行用例。这种测试方式不仅工作量大,工作效率也低。繁琐、重复枯燥的手工测试会导致测试人员工作疲劳和工作质量下降,从而影响到软件的质量。因为需求变更而不得不进行的大量的重复手工测试是最常见的。使用自动化测试可以降低需求变更的时候的测试工作的成本以及减少工作量和提高测试的效率,也能使软件各能够更加满足用户的需求。而自动化测试框架在进行自动化测试工作的时候也是极其重要的。本文将以百度和维普网站的业务为例,在详细设计自动化测试框架之后,实现基于此框架的自动化测试功
12、能。1.2 国内外发展现状与发展过程1.2.1 国内发展历史软件相关的领域和行业越来越受到关注,在最近这几年也在你朝着越来越好的方向发展飞速,因为中国在这个领域起步和发展的比较晚,在这方面不如其他发达国家发展的好,但是,近年来中国在软件方面发展的越来越快,越来越好,在短视频这方面也有着领先的趋势。随着Web应用在政府、教育、教务、金融、娱乐等领域的广泛使用,人们愈发认识到Web应用的实用性和便捷性,随着软件质量要求的提高,必须要在经过严格的测试以后才能将软件正式的投入运营和使用,在计算机相关的行业里,软件测试发展的越来越快,软件测试方面的人才的需求也剧增。在国内,软件测试的发展还不是特别好,还
13、处于一个起步阶段的状态。但是软件测试的发展前景光明,随着软件市场的发展与扩大,软件测试这个岗位越来越重要,作为开发过程中不可或缺的软件测试的需求以及网站也开始增多。1.2.2 国外研究现状在国际上,软件测试是软件质量监控的一种方法,是一项非常重要并且不可或缺的工作任务,测试也是一个独立于其他工作的。在IBM、微软等大型系统软件公司,在较多重要的开发项目团里面,开发人员通常是测试人员的两倍甚至是四倍以上,比例相差非常的大。自动化测试技术也在快速的发展。许多自动化测试工具被开发出来。自动化测试系统正在朝着通越来越好、越来越智能化的方向高速稳定发展。1.3 本文的主要内容和实现目标本文主要是针对we
14、b应用,设计和实现一个能够支持UI功能测试、兼容性测试和稳定性测试的web自动化测试框架,并且能够生成自动化测试报告和自动发送测试集结果报告,提供一些比较实用的辅助功能。在进行测试工作的时候使用这个自动化测试框架,不仅能够使脚本更利于维护,而且能够使脚本的复用性得到提升。能够达到节省编写测试脚本的时间以及保证产品的质量得到目的。以下是本文的主要研究的对象和内容:(1)在功能和非功能方面分别对web自动化测试框架进行相关的需求分析。(2)针对本自动化测试框架,进行一个相关的整体框架的详细设计和分层的设计,本自动化测试框架的整个框架分别分成Utility、Page、Test、UI和TestSuit
15、这五层。(3)对webdriver基于selenium的底层接口进行二次封装,实现提高脚本的可维护和可复用性的目的。1.4 论文结构本论文的章节内容如下所示:第一章:绪论,这一章主要是进行一个关于课题的研究背景、国内的发展历史、国外的发展现状、本文主要说明的内容和实现的目标的简单的叙述说明。第二章:传 统 软 件 测 试概述,这一章主要 是 对 传 统 软 件 测试和自动化测试的定义、分 类 、 模 型 、 需要测试内容和为什么要进行自动化测试进行简单的介绍和说明。第三章:Web自动化测试框架需求分析,这一章主要是在功能和非功能方面对自动化测试框架进行一个需求分析,对构建测试框架的工具进行简单
16、的介绍说明,以及对框架的继承开发环境的简单介绍说明。第四章:Web自动化测试框架的设计,这一章主要是框架的分层设计进行一个详细的说明,以及对设计过程中需要注意的问题进行阐述。第五章:Web自动化测试框架的实现,这一章主要是介绍和说明了框架的结构是怎样的、框架实现的功能有哪些以及Selenium对浏览器的支持。第六章:Web自动化测试框架的应用,这一章主要是针对本框架编写几个简单的自动化测试实例,在框架下成功运行之后,对本自动化测试框架实现的效果进行一个展示。总结:总结主要是进行一个关于框架的实现成果与预期结果的思考以及总结,和对本框架不足的地方进行简单的说明以及对后续的发展进行说明。第二章 传
17、统软件测试概述2.1软件测试概述2.1.1 软件测试的定义如何能够提高软件的正确性、完整性以及质量使在软件测试过程中需要考虑和解决的问题。也就是说软件测试工作是去审核一种过程。或者比较测试结束之后得到的实际结果和预期结果的一种过程。软件测试是在规定的条件下去运行和操作程序,然后发现程序的错误。以此来测量待测试软件的质量,并且对这个软件程序是否能够满足软件设计的要求。软件测试工作的执行是为了发现错误,去检验程序或者产品是否能够达到用户的需和程序是否能够提高用户的使用体验。各种边界条件都是在提高软件应用程序的质量时,设计测试用例的时候应该要考虑到的。在一些比较特殊的情况下,还需要去制造极端和意外的
18、状态。根据二八原则可以知道, 百分之八十在测试过程中发现的bug一般都来自百分之二十的模块中。对于误差结果的确认过程,不可能去指定非常严格的测试计划。对于测试过程中产生的所有文档,都需要去妥善保存,以供查看。2.1.2 软件测试的分类软件测试可以根据测试过程中使用的方法或者测试的对象和测试实施的地方进行分类,常用的测试方法非常的多。包括单元测试、性能测试、手工和兼容性测试等。手工测试是属于比较原始的一种测试方法,需要由人工手动的被各个测试用例输入,然后测试的结果和机器的实际反映,需要一个一个的进行测试。虽然可以进行发散思维无既定结果的测试,但是执行的效率比较慢,量大易出错。自动化测试是有前提条
19、件的,需要在预先设定好的条件下去运行指定的系统或者程序,然后对运行得到的结果进行一个对比和评价。简单来说,自动化测试就是一个将手工测试行为转变成为机器去执行的一个过程。在自动化测试工作中,功能自动化测试占很大一部分。 图2-1 软件测试分类2.1.3 软件测试的过程模型(1)V模型这种模型是早期的测试模型,也是比较具有代表性的,在早期的开发模型中,大家总是认为在需求分析、概要设计、详细设计和编写脚本完成之后才可以进行软件测试工作。尽管整个项目的大部分时间都被测试工作占据,还是会有一些人认为测试工作的执行只适合在软件开发完成以后再去进行,并不任务测试工作也是软件开发的最主要的一个过程。通过V模型
20、,我们可以很清楚的知道从开发到测试的过程逻辑,并且可以很清晰的把测试的过程和软件的开发过程中各个不同的阶段相对应的关系都描述出来。V模型也不是比较比较完善的,也会具有一定的局限性,比如在V模型中,概要分析、软件概要设计、软件详细设计以和编写代码工作的完成是进行测试工作的前提,而不是把软件测试当做开发过程中一个重要的步骤。V模型主要是针对程序完成之后进行测试,对在需求分析阶段的问题不能早期发现,在以后的验收测试之前不太可能被发现。图2-2 软件测试的V模型(2)W模型在W模型中,把测试的过程当成是软件开发过程的核心部分,并且指出测试的对象不是唯一或者单一的,测试应该是伴随着开发一起的,并不是开发
21、工作完成之后才可以进行测试,而是完成一个部分的开发就可以开始进行对应部分的测试工作。同时进行测试和开发,这样就可以尽早的发现问题并提出相应的解决方案,W模型也具有一定的局限性, 早期的测试并没有在W模型中被表达出来,需求、设计和编码等过程在V模型和W模型中都被当成是软件开发中的过程。必须有上一环节已经顺利完成的相关指令或者提示,才能够继续执行下一环节的工作。 图2-3 软件测试的W模型2.1.4 软件测试相关流程和文档(1)测试流程软件测试的具体流程如下图2-4所示。图2-4 软件测试的流程(2)测试文档概述在软件测试的组成部分中,测试文档是非常重要的一个部分,进行测试工作的计划、测试过程中记
22、录的报告、测试发现问题的报告以及测试评估报告都是测试文档的主要包括的。软件的测试文档标准主要分:国 际 、国 家 和 行 业 标 准 ,企 业 和项 目 规范 。一般来说,编写测试文档的时候,用国际标准或者国内规范标准去作为测试文档的模板会比较好。测试工作人员建立具体项目的测试文档时,可以适当的对文档的格式进行修改,时文档更加符合项目的具体需求。(3)编写测试文档测试的对象、组织、任务计划、通过的标准、失败的标准、风险、时间分配等都是在测试计划文档里需要确定的。测试方案跟测试计划文档比较相似,但是测试方案跟测试计划文档不同的是,测试方案更加偏向去规划测试过程的技术因素。测试文档的编写过程需要非
23、常认真和细心的去对待,因为这是一项细致繁琐而且比较复杂的工作。一份好的测试文档可以为后续的测试工作提供保障,使得测试工作的完成更加顺利。所以在编写测试文档的时候,不仅需要知道测试的内容,还需要知道如何去测试,并对整个测试工作有一个大致的规划。测试文档主要包括的内容如下图2-5所示。图2-5 测试文档2.2 软件自动化测试相关理论2.2.1 自动化测试的定义在手工测试的基础上,并相对手工测试的概念而发展出来的自动化测试,指的是测试过程中无需人工干预,不是用手工进行软件测试,而是完全由测试人员预先设计好的计算机程序或者机器去进行测试工作。也就是说,通过执行用程序语言编制的自动化测试脚本去模拟手工测
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python Selenium web 自动化 测试 框架 设计 实现
限制150内