基于Selenium的Web自动化测试技术的研究与应用.doc
《基于Selenium的Web自动化测试技术的研究与应用.doc》由会员分享,可在线阅读,更多相关《基于Selenium的Web自动化测试技术的研究与应用.doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、广东东软学院本科生毕业设计(论文)摘要本文通过对基于Selenium自动化测试技术的研究与分析,对需要进行自动化测试的Web应用进行整体的需求分析及用例设计;之后通过Selenium与Python3相结合,使用po模型,关键字模型,数据驱动,Unittest测试框架等测试技术与思想理念,对Web应用设计高质量的自动化测试脚本代码。通过这样设计和编写的自动化测试脚本拥有较高的稳定性,高效性,健壮性和代码的简洁性,这样可以让我们自己编写的自动化测试脚本不仅仅只适用于一个系统,还可以适用于大多数相似功能的系统,这将大大降低自动化测试的成本。最后可以进行自动化测试脚本的执行与测试报告的生成,分析测试结
2、果。通过自动化测试脚本代码来执行一些人类难以执行或重复机械的用例,这样可以解放测试人员的劳动力,将他们从机械化的工作中解放出来,令他们有更多的时间与精力去发现新的bug,设计更高效的测试用例,从而提高应用整体的质量。关键词: Selenium Python3 自动化测试40AbstractIn this paper, through the research and analysis based on Selenium automated testing technology, the overall needs analysis and use case design of the Web
3、application that needs to be automated tested; afterwards, through the combination of Selenium and Python3, use the po model, keyword model, data driven, Unittest Test technologies and ideas such as test frameworks, and design high-quality automated test script codes for Web applications. Automated
4、test scripts designed and written in this way have high stability, efficiency, robustness and code simplicity, which allows us to write automated test scripts that are not only applicable to one system, but also applicable to large Most systems with similar functions will greatly reduce the cost of
5、automated testing. Finally, the execution of automated test scripts and the generation of test reports can be performed to analyze test results.Execute some use cases that are difficult for humans or repeat machinery through automating test script code, which can liberate the labor of testers and fr
6、ee them from mechanized work, so that they have more time and energy to discover new bugs, Design more efficient test cases to improve the overall quality of the application.Key words:Selenium Python3 automated test目 录第一章 绪论11.1 课题研究背景11.2 课题研究目的及意义11.3 国内外研究现状11.4 课题研究的主要内容21.5 本章小结2第2章 Selenium自动化
7、测试技术的研究32.1 Selenium的兼容性分析32.2 Selenium的易用性分析32.3 Selenium的功能性分析32.4 Selenium的经济性分析42.5 本章小结4第3章 测试环境的配置53.1 Python环境配置53.2 PyCharm环境配置63.3 Selenium环境配置73.4本章小结7第4章 Web程序的自动化设计与分析84.1 测试需求分析84.2 测试用例设计94.2.1 等价类划分法94.2.2 边界值分析法94.2.3 错误推断法104.2.4 因果图法104.2.5 场景设计法104.2.6 豆瓣网自动化测试用例设计104.3 本章小结15第5章
8、基于Selenium的自动化脚本设计165.1 测试脚本的设计165.1.1 驱动的设置及浏览器和网页的打开165.1.2 定位元素165.1.3 操作frame层中的元素175.1.4 弹窗处理175.1.5 简单的登录自动化185.2 测试脚本的优化205.2.1 元素定位操作与Web页面元素的数据分离205.2.2 操作层、业务层与元素读取层的分离225.2.3 测试用例的编写与执行245.3 测试脚本健壮性加强255.3.1 Unittest测试框架255.3.2 数据驱动275.3.3 关键字模型295.4 本章小结32第6章 测试结果分析346.1 测试报告的生成346.2 如何封
9、装及输出日志文件356.3 本章小结37第7章 总结与展望387.1 总结387.2 后续研究展望387.3 本章小结38参 考 文 献39致 谢40图表目录图 3 - 1 Python环境配置5图 3 - 2 验证Python是否安装成功6图 3 - 3 PyCharm中创建新Python项目6图 3 - 4 浏览器驱动配置7图 4 - 1 豆瓣网基础系统功能结构图8图 4 - 2 豆瓣网登录模块自动化测试用例12图 4 - 3 豆瓣网电影模块自动化测试用例14图 5 - 1 打开浏览器与网页脚本16图 5 - 2 定位元素脚本17图 5 - 3 跳转frame层脚本17图 5 - 4 跳转
10、弹出框脚本18图 5 - 5 基础自动化脚本119图 5 - 6 基本自动化脚本219图 5 - 7 存储定位元素信息的配置文件21图 5 - 8 读取配置文件的方法21图 5 - 9 定位元素类22图 5 - 10 元素读取层22图 5 - 11 元素操作层123图 5 - 12 元素操作层223图 5 - 13 业务层124图 5 - 14 业务层224图 5 - 15 测试用例层25图 5 - 16 Unittest测试框架126图 5 - 17 Unittest测试框架226图 5 - 18 Unittest测试框架326图 5 - 19 参数化数据27图 5 - 20 操作excel
11、文件128图 5 - 21 操作excel文件228图 5 - 22 优化测试用例类129图 5 - 23 优化测试用例类229图 5 - 24 关键字模型行为方法的封装130图 5 - 25 关键字模型行为方法的封装231图 5 - 26 操作关键字模型的excel文件31图 5 - 27 关键字模型调用132图 5 - 28 关键字模型调用232图 6 - 1 测试报告生成代码34图 6 - 2 测试报告结果34图 6 - 3 举例测试用例数目35图 6 - 4 用例执行结果35图 6 - 5 日志模块代码136图 6 - 6 日志模块代码236图 6 - 7 调用日志模块37图 6 -
12、8 日志输出37第一章 绪论1.1 课题研究背景随着当代技术的不断发展,以前只要开发出一个产品就可以赚钱的时代早已经不复存在了。现今,想要真正开发一个受用户喜爱,能够在同一行业上可以赢得过竞争对手的产品,最主要是需要保证产品的质量,若要保证软件的质量,那么软件测试就是必不可少的。为了能够让测试人员从繁琐重复的测试流程中解脱出来,把更多的时间和精力放在更有价值的测试中来,使产品的质量更加有保证,那么选择自动化测试技术来优化测试工作就是一个很好的选择。而基于Selenium的自动化测试技术可以很好地协助我们进行自动化测试脚本的编写,特别是对于Web应用,Selenium自动化测试技术可以更加高效简
13、洁地对其进行自动化测试脚本的编写。1.2 课题研究目的及意义我们需要在什么时候使用自动化测试?为什么要执行自动化测试?若一个项目周期长,需求比较稳定而且界面变动较少;而且需要测试人员频繁的进行回归测试,出现大量需要重复性运行的测试用例;进行手工测试比较容易出错或手工测试成本很高的时候,我们就可以尝试着进行自动化测试,使软件测试人员尽量从繁琐的、重复性的测试工作中解放出来,使其有时间去进行其他有意义的测试。Selenium自动化测试技术对于我们测试人员来说是一个好的选择,在对于Web应用的自动化测试设计时,其可以让我们将好钢用在刀刃上,减少我们自动化测试的开发成本和精力。自动化测试可以更好的利用
14、测试资源,将有限的资源投入到更有效的工作中去,为产品的质量提供了保障,使其在市场上更加有竞争力。1.3 国内外研究现状2004年,Jason Huggins开发了Selenium1;2006 年,Simon Stewart开发了一款名为WebDriver的浏览器自动化工具;2009年,Selenium1与WebDriver合并,Selenium2诞生;2016年10月13日,Selenium正式宣布Selenium3的发布。通过Selenium1、Selenium2、Selenium3的迭代,用于测试 Web 应用程序用户界面 (UI) 的框架Selenium能够在更多场景内使用。国内外越来越
15、多的测试人员使用Selenium进行自动化测试,使得我们可以在各种社区和论坛上找到我们遇到问题的解决方法,降低了学习Selenium的成本,这样促使Selenium自动化技术能够蓬勃发展,越来越强大。1.4 课题研究的主要内容本课题主要通过Selenium3和Python3相结合,通过使用po模型的思想来设计和封装Selenium脚本,通过Unittest测试框架,数据驱动,关键字模型的使用,加强脚本的健壮性与复用性,降低自动化成本。在脚本编写过程中,通过使用Assert断言来判断case执行是否通过,通过编写生成测试报告方法,封装case运行失败时自动截图的方法,编写日志模块的使用方法来提高
16、自动化测试的质量。1.5 本章小结本章主要介绍了基于Selenium自动化测试技术对Web端应用的研究与应用这个课题的背景及研究的目的和现状,通过本章说明之后本课题将要做什么,怎么做。第2章 Selenium自动化测试技术的研究2.1 Selenium的兼容性分析Selenium自动化测试技术支持多浏览器,多语言使用。Selenium支持Chrome,Firefox,IE等不同内核的浏览器,若要使用Selenium来模拟浏览器操作,仅需拥有浏览器对应的驱动即可轻松使用Selenium自动化框架,Chrome浏览器对应ChromeDriver驱动,Firefox浏览器对应FirefoxDrive
17、r驱动,IE浏览器对应InternetExplorerDriver驱动。本文使用Chrome浏览器来进行自动化测试。Selenium支持Python、Ruby、java、PHP、C#、JavaScript等主流语言,不论选择哪种语言来编写Selenium自动化脚本,均有其优点。本文使用Python语言来编写Selenium自动化脚本。22.2 Selenium的易用性分析对于不懂代码却又想做自动化的人来说,Selenium无疑是其一个很好的选择,其可以使用SeleniumIDE这个工具来进行Selenium脚本的录制。SeleniumIDE是Firefox浏览器的一个插件,依附于Firefox
18、浏览器。若我们想要使用SeleniumIDE来录制Selenium自动化脚本,则需下载和安装Firefox浏览器。SeleniumIDE可以简单地模拟人在浏览器的操作,拥有录制和回放功能。Selenium IDE 还有记录功能,可以记录用户操作,还能选择多种语言将它们导出到一个可复用的脚本中用于后续操作。2.3 Selenium的功能性分析Selenium能够真实模拟正常用户在浏览器操作Web应用的操作,这使我们编写的自动化脚本可以真实有效地模拟现实的行为来进行测试。Selenium经历了三个版本的更新,Selenium1、Selenium2和Selenium3。Selenium1应用了基于
19、Javascript 的自动化引擎,但是浏览器对于Javascript有许多安全限制,很多想要模拟的自动化行为无法实现,而且随着Web应用越来越强大,其运用了更多浏览器提供的特性,越来越多的限制使得Selenium1的局限性越来越大。为了解决浏览器对于Javascript的安全限制问题,工程师们开发了WebDriver项目,在2009年,Selenium 和 WebDriver 这两个项目合并,最终形成了Selenium2。Selenium2利用浏览器内的原生API,封装成面向对象的Selenium WebDriver API,可以直接操作在浏览器页面中的元素,甚至是操作浏览器自身。为了使编写
20、的自动化测试脚本更加稳定,Selenium3面世了。Selenium3移除了Selenium 1 中不再使用到的 Selenium RC,且官方重写了所有浏览器驱动。新增了对Edge和safari原生驱动的支持,开始支持geckodriver驱动,通过geckodriver来驱动Firefox浏览器的控制。本文使用Selenium3版本来进行自动化测试。2.4 Selenium的经济性分析Selenium是一款开源的自动化测试工具,相对于惠普的UFT,其开源的特性可以减少自动化测试所需的资金消耗,这对于想要开展自动化测试的中小型企业来说十分重要。2.5 本章小结通过对Selenium的兼容性、
21、易用性、功能性和经济性进行分析,我们可以清晰的知道我们为什么选择Selenium来进行自动化测试,在本文中,将使用Python3和Selenium3来对Web应用进行自动化测试。第3章 测试环境的配置3.1 Python环境配置我们可以在Python官网下载安装包,之后双击下载下来的文件Python-3.7.3-amd64.exe,开始安装Python,在安装界面勾选Add Python to PATH选项,最后点击close退出。在安装时自动配置的Python环境变量为在path中添加Python的安装路径,如图3-1所示图 3 - 1 Python环境配置运行cmd,在命令行中输入:Pyt
22、hon -V,若显示出Python版本则显示安装成功。如图3-2所示图 3 - 2 验证Python是否安装成功3.2 PyCharm环境配置1、在官网下载PyCharm并安装完成后,双击安装成功后在桌面显示的PyCharm图标,在弹出的窗口处选择“Do not import settings”,之后点击ok进入下一步2、勾选“I confirm that I have read and accept the terms of this User Agreement”后点击“continue”3、点击“Send Usage Statistics”或“Dont send”均可,此处询问自己愿不愿
23、将信息发送JetBrains来提升他们产品的质量自己愿不愿将信息发送JetBrains来提升他们产品的质量4、之后跳转到皮肤选择页面,可按自己喜好选择Darcula或Light5、点击左下角的skip remaining and set defaults(跳过其余和设置默认值)进入激活界面,选择第二个License server。此时PyCharm安装配置完成。6、PyCharm配置完成后,新建一个Python项目,如图3-3所示图 3 - 3 PyCharm中创建新Python项目3.3 Selenium环境配置我们可以通过pip下载Selenium,之后只需要通过使用from Seleni
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Selenium Web 自动化 测试 技术 研究 应用
限制150内