版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本科毕业设计(论文)自动化接口测试框架的设计与实现Design and implementation of an automated interfacetesting framework学院: 软件学院 专业: 软件工程 学生姓名: XXX学号 : XXXXXX指导教师: XXX北京交通大学2016 年 5 月 学士论文版权使用授权书本学士论文作者完全了解北京交通大学有关保留、使用学士论文的规定。特授权北京交通大学可以将学士论文的全部或部分内容编入有关数据库进行检索,提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。 (保密的学位论文在后适用本授权说明)学位论文作者签名
2、:指导教师签名:签字日期:年月日签字日期:年月日 北京交通大学毕业设计(论文)中要中要摘要:分层结构作为现代软件工程中大量采用的一种体系结构,层与层通过接口将其使 用和实现相分离,接口作为开发者和使用者之间的桥梁,提供相应的数据。而对接口的逻辑正确性、功能正确性、容错性及吞吐能力的测试,是保证软件质量的重要一环。应用自动化测试技术可以大幅度的降低手工测试劳动量,提高软件测试的覆盖率和提高从测试效率。尤其是在进行如回归测试这种需要大量重复性测试的测试任务时,优势极其的明显。 本论文介绍的自动化接口测试框架(或简称“框架”)所针对的 JSON 数据格式作为一种在 WEB 领域广泛应用的数据交换格式
3、,具有很好的跨平台性和扩展性,也是目前最为常用的数据交换格式。本论文介绍的框架对常见的手工接口测试的情景进行抽象,模拟接口请求的接收与发送,并对接口数据的正确性进行校验。利用本框架,测试人员只需要进行简单的测试脚本设计和测试数据设计,即可对接口进行自动化的测试,测试脚本和测试数据可以重复性使用。接口之间可以针对某一个业务逻辑进行组合性的测试。自动化测试的框架可以对执行的测试用例的通过情况、接口响应时间等信息进行统计, 并输出测试报告。图 47 幅,表 6 个,参考文献 13 篇。 关键词:软件自动化测试;接口测试;测试框架 i 北京交通大学毕业设计(论文)英要ABSTRACTABSTRACT:
4、Layered architecture is widely used in modern software engineering. Different layer communicate through interface. One function just provide one interface to return the data and hide its implementation. The interface as a bridge between developers and users. The correctness of the interface logic, f
5、unctional correctness, fault tolerance and throughput are four key points for the interface testing, which is also a very important part of software quality. The interface testing is repeated, contains large number of data and needs to check the data which returned by the interface, which is very su
6、itable to use automated testing techniques. This interface test automation framework described in this thesis is based on the actual situation in practice, aimed on solving some problems in working. The framework based on the JSON, which is an interchange data format widely used in WEB application.
7、The framework of the manual interface test scenarios abstract, analog receive and transmit interface request, and the correctness of the interface data is checked. With the present framework, testers need only a simple test script design and test data, one can design an interface for automated testi
8、ng, test scripts and test data can be repetitive use. It may be a combination of a test for a certain business logic between interfaces. Automated testing framework to test cases can be executed by, the interface response time statistics and otherinformation, and outputs the test report.KEYWORDS:Sof
9、tware automation test; interface test; test frameworkii 北京交通大学毕业设计(论文)目录目录中要IABSTRACTII目录III引言61.41.5背景及意义6国内外研究现状7研究方法7问题分析8问题解决方案81.5.1解决方案分析91.61.7预期结果及意义9论文组织结构10相关知识及技术11自动化测试技术1.3自动化测试技术介绍11自动化测试技术比较11自动化测试前提122.22.3接口测试13本框架相关技术介绍..42.3.5JAVA13JS
10、ON14Maven&SVN14XML16Log4j16自动化接口测试框架需求分析17可行性分析17.3技术可行性17经济可行性17操作可行性173.2自动化接口测试框架功能性需求...6配置功能18读取解析功能18用例管理功能19用例功能20结果统计模块21数据校验模块21iii 北京交通大学毕业设计(论文)目录.8测试报告生成及展示22日志233.3自动化接口测试框架非功能性需求..4性能需求24易用性24可移植性24可维护性24自动化接口测试框架概
11、要设计25模块划分25...74.1.8框架配置模块25读取解析模块25用例管理模块26用例模块27结果统计模块27数据校验模块28测试报告生成及展示模块29日志模块304.24.3自动化接口测试框架模块结构30包设计31自动化接口测试框架详细设计32类关系设计32模块内部设计33....7框架配置模块33读取解析模块35用例管理模块37用例模块39数据校验模块41测试报告生成展示模块42日志模块44自动化接口测试框架实现及应用46测试脚本46测试数据
12、46测试报告47测试日志47测试邮件48数据结构实现49..4用例数据结构49配置文件数据结构50用例控制文件数据格式51测试数据文件格式51自动化接口测试框架测试537iv 北京交通大学毕业设计(论文)目录.2测试脚本53测试数据54结论及展望558参考文献56致谢57附录58v 北京交通大学毕业设计(论文)正文1 引言1.1 背景及意义随着近年来软件行业的飞速发展,大量软件产品在短时间内被开发出来,由于开发周期被不断的缩短,加之同类型产品的竞争十分激烈,产品质量成为决定产品走向的一个重要影响因素,如何保
13、证软件产品的质量成为了各大公司面临的一个巨大难题。而软件测试作为保证软件质量的一个重要环节,也是软件生命周期的一个关键阶段,也愈发的受到人们的重视。而由于测试工作的特殊性,需要大量测试人员花费时间来寻找产品中可能存在的质量问题,许多公司为了保证软件产品的质量,投入大量的人力物力到软件测试这个过程中,因此急需一个可行而有效的测试解决方案来处理这些公司遇到的问题。 在目前纷繁复杂的软件测试技术中,软件自动化测试技术最为受到人们的关注,目前各大公司内部也在积极研究和发展适合自己的自动化测试环境,来弥补手工测试中的一些不足之处。一般的软件自动化测试指的就是通过自动化测试工具或者撰写自动化测试脚本等方法
14、,让计算机代替手工测试人员进行自动的软件测试过程。因为随着软件迭代式开发的盛行,回归测试在整个测试过程中所占的比重越来越来。应用自动化测试技术可以大幅度的降低手工测试劳动量,提高软件测试的覆盖率和提高从测试效率。尤其是在进行如回归测试这种需要大量重复性测试的测试任务时,优势极其的明显。 在现代的软件开发流程中,开发人员的分工日益地明确,分层软件体系结构被大量的应用。B/S 和C/S 结构被广泛的使用在软件开发领域,Browser 和Client 通过访问Server提供的外部数据接口的这种形式来进行前之间的数据交换。为了保证层与层之间的数据交流的正确性和高效性,在软件测试过程中进行对接口的测试
15、显得尤为重要。接口, 即API(Application Program Interface),也可称为应用程序编程接口,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。接口可以被称作是数据交换的桥梁,而保证接口的质量,是保证软件产品质量属性的重要一环。在目前的接口测试场景中,还是仍然以手工测试为主, 测试效率底下、重复性劳动量大、浪费测试人员大量精力和时间。因此,开发一个完善的接口自动化测试框架,来解决接口测试过程中存在的问题显得尤为重要。 本文介绍的自动化测试框架是作者在实习过程中根据实际的测试场景,进行开发和 设计的,并已部分
16、投入了实际使用,且效果较为显著。 6 北京交通大学毕业设计(论文)正文1.2 国内外研究现状软件测试技术作为软件工程产生以来就伴随而生的一项质量保证技术,经过多年的发展,已经发展的十分的先进与完善。目前自动化测试技术发展较为完善的国家是美国, 已经形成了独立的软件产业,而且一些国际知名的软件公司,如 IBM、微软等公司内部也在大力进行测试新技术的研发。 就自动化技术的发展历史来看,国际上通常把软件软件测试技术的发展分成三个阶段:(1)录制回放模式:通过测试工具对测试人员的手工操作进行录制,在执行时,结合事先准备好的测试数据对手工操作进行回放,模拟测试人员的手工测试过程。这种模式需要录制大量的测
17、试人员的手工操作过程,耗费大量的时间,而且一旦测试人员手工操作的流程发生了些许更改,需要重复进行录制,修改复杂,工作量大。(2)数据驱动模式: 将测试数据输入到配置文件中,根据对应测试脚本,来读取测试数据。实现了数据和脚本的分离,使得测试脚本的可维护性和脚本的代码重复利用率大大上升,但这种模式对与界面变化的兼容较差,界面变化是仍需要对已有的测试脚本进行维护和修改。 (3)关键字驱动模式:通过对数据驱动模式进行升级和改动,就可以得到关键字驱动模式。其核心是对测试流程进行抽象和分解,从软件产品的业务逻辑中抽象出关键字, 封装用户的各种基本操作,使得界面元素和测试数据、脚本分离。 从国内来看,由于我
18、国的软件行业发展起步较晚,与西方等国家的差距仍然存在, 但是我国的软件行业发展迅猛,速度大大超乎了人们的想象。产品的快速迭代和发展导致了软件测试过程被缩短,测试人员不得不投入大量精力来跟上软件更新的速度,来保证软件产品的质量,但同时又没有足够的时间来设计完善的测试用例来进行测试,这样就导致了一个恶性循环。因此往往软件产品的测试只是对软件的整体正确性进行了测试, 并没有深入。而且不少公司的开发和管理人员不理解测试的重要性,导致出现“轻测试”的观念。 自动化测试技术作为目前软件测试领域的热点,也有不少公司和人员开发出了自动化测试的工具和框架。如目前不少公司和测试人员在使用的 QTP 、Ration
19、al 、WinRunnerMercury 等自动化测试工具。而自动化测试的框架方面也有 selenium、PhoenixFramework、RobotFramework 等。但是这些框架适用于某一特定类型的软件系统, 主要针对的是软件的功能测试及 UI 测试,对接口测试的支持不够完善,而且其对接口 测试扩展性支持不够,无法满足不同公司产品独特的业务逻辑。 1.3 研究方法本框架对手工接口测试情景的分析抽象,参考已有自动化接口测试框架的测试方 7 北京交通大学毕业设计(论文)正文法,对手工测试场景进行了模拟,将框架的测试流程主要划分为以下几个步骤:1.编写符合自动化测试框架的测试用例脚本。2.读
20、取测试用数据(须事先设计好)。3.用例管理模块对设计好的测试用例脚本进行管理 3.针对每个单独的测试用例框架根据对应的测试数据向的相应的接口发送请求。4.接收接口返回数据并和测试数据中的预期结果进行数据正确性的检测。5.框架针对所有的测试用例进行统计,得出测试报告并展示。通过这 5 个步骤,框架对接口的逻辑正确性、功能正确性、容错能力、吞吐能力进行测试,从而对接口的质量属性进行检测,达到保证接口质量的目的。 1.4 问题分析我实习时从事的是自动化测试相关的工作,主要内容给就是编写自动化测试脚本来对公司的软件产品进行自动化测试。由于公司产品采用的是 B/S+C/S 的模式,数据服务器端和网页端加
21、移动 App 端组成,在实际工作过程中发现,在进行软件自动化测试过程中,经常需要去对接口的进行访问,并需要检测接口的正确性,接口数据正确性在测试 过程中特别重要。而在对公司内部的接口测试情况了解之后,发现了以下几个问题: 1虽然针对接口已经存在自动化的测试脚本,但是自动化测试脚本内容复杂,脚本间实现功能重复,存在许多可以整合的部分。脚本结构混乱,形式多样。由于相应的测试脚本由不同的测试人员进行编写 调试,每个人的脚本编写风格不同,各个脚本之间的形式多样。而且测试脚本和数据耦合在一起,维护时有很大困难。 测试结果汇总复杂,结果呈现不够清晰快捷。由于每个测试脚本都会产生对 应的测试结果,在进行大批
22、量的运行时,各个脚本之间的数据还需要人工对其进行汇总和统计,工作量太大。而且测试结果呈现不够直观。 231.5 问题解决方案针对 3.1 中发现的问题,提出了几种解决方案:1将现有脚本中的可能存在重复的功能进行整合打包,在写脚本提供一个独立 于测试脚本的外部库,提供重复的功能方法。设计脚本编写规范,统一脚本格式。开发一个对测试结果进行分析汇总的系统,设置相应的规则来处理测试结果。 应用现有的自动化测试工具来进行测试。这样可以不使用测试脚本而直接完 成对接口的自动化测试。应用现有的自动化测试框架,完成对接口的自动化测试。238 北京交通大学毕业设计(论文)正文4开发一个公司内部的自动化接口测试框
23、架,实现对接口的自动化测试。1.5.1 解决方案分析1 号方案: 将重复功能打包整合这一过程应当说是很方便地,只需要提取原有脚本的相似内容并规范化整合即可,而脚本编写规范也可以规范脚本的格式,达到统一的目的。开发测试结果分析汇总系统可能需要时间和人员,而且这样就将测试脚本和测试结果分割开来。 2 号方案: 经过实际的使用一些自动化测试工具,发现虽然可视化的集成测试工具能够完成基础的接口自动化测试功能,但是针对公司内部的业务逻辑支持不是很完善,功能也不足以满足测试需求。 3 号方案: 现有的一些自动化测试框架确实具有很强大的功能,也可以完成基本的接口自动化测试功能。但是由于框架需要支持多种测试需
24、求,不仅仅是接口测试,往往其结构较为复杂,开始应用时需要理解的过程,而且对于单一的接口测试来说过于庞大。再者现有自动化测试框架的可扩展性不高,如果公司的测试需求发生更改,对框架不好进行扩展和更改。 4 号方案: 该方案相比较来说最为贴合公司的应用实际,而且放眼其他的互联网公司,也不是仅仅使用现有自动化框架或者是使用自动化测试工具,基本上都是结合公司产品的业务逻辑,开发公司内部使用的自动化测试框架。而且自己开发的测试框架可以很好的针对实际发现的问题,对其进行解决。而且与 1 号方案相比,将各个部分都组合在了一起,使得测试过程更加的统一,不会分裂。 因此最终选择了 4 号方案来实现接口的自动化测试
25、。本文也是针对 4 号方案来进行 设计和实现的。 1.6 预期结果及意义预期成果是利用本自动化接口测试框架,测试人员只需要进行简单的测试脚本设计和测试数据设计,即可对接口进行自动化的测试,测试脚本和测试数据可以重复性使用。接口之间可以针对某一个业务逻辑进行组合性的测试。自动化测试的框架可以对执行的 测试用例的通过情况、接口响应时间等信息进行统计,并输出测试报告。 9 北京交通大学毕业设计(论文)正文1.7 论文组织结构第 1 章 引言主要对论文的背景及意义、国内外研究现状、研究方法、问题分析及解决方案选取,预期结果及意义等方面进行描述。第 2 章 相关知识及技术采用的技术。 第 3 章 自动化
26、接口测试框架需求分析求和非功能性需求进行分析。 第 4 章 自动化接口测试框架概要设计设计出框架结构及模块内部结构。 介绍自动化接口测试相关的知识与本框架所 对自动化接口测试框架的可行性、功能性需 对自动化接口测试框架进行总体性的设计, 第 5 章第 6 章第 7 章自动化接口测试框架详细设计 自动化接口测试框架实现与应用自动化接口测试框架测试 针对各个模块内部进行详细的设计和描述。自动化接口测试框架进行实现及应用。 对自动化接口测试框架的功能和性能进行测试,检验其质量属性。第 8 章结论及展望对本文进行总结和展望。10 北京交通大学毕业设计(论文)正文2 相关知识及技术2.1 自动化测试技术
27、2.1.1 自动化测试技术介绍自动化测试一般意义上指的是软件的自动化测试,软件的测试就是在预先设定好的条件下运行系统或应用程序,评估系统或应用程序的运行结果,来检测系统或应用程序质量属性的过程,其中预设条件包括了正常条件以及异常条件。 自动化测试一般包括两个方面,分别是测试过程的自动化和测试结果分析的自动化。测试过程的自动化指的是用预先设计好的测试脚本,取代手工逐个的对测试用例执行的过程,转而采取运行撰写好的测试脚本的方式来对系统进行测试,于具有测试过程高效快捷,测试脚本可重复使用的特点。而测试结果分析自动化指的是对测试产生的中间测试结果和数据流,不需要测试人员手工去一点点地去分析和排查,而是
28、通过自动化的方式进行归纳和汇总,提炼出测试报告及规则。 软件自动化测试就是利用计算机来模拟手工测试的步骤,执行由某种计算机程序语言编制的测试脚本或者测试程序,从而达到测试被测软件的目的。其中自动化还分为全自动化和半自动化两类。全自动测试就是在测试过程中,所有的过程都由程序自动完成, 不需要测试人员进行任何操作。而半自动化测试指的是在测试过程中,需要手动的输入 测试用例或者是测试数据,再由自动化测试程序来按照人工的要求完成自动化测试。 2.1.2 自动化测试技术比较自动化测试技术发展到现在,已经出现了多种类型的自动化测试技术,分别针对了不同的业务需求。下面大致列出了几种关键的技术 1. 基于组件
29、的自动化测试技术:针对软件开发过程中的组件进行测试,检测其正确性,确保每个独立的组件都能有效的实现自己的预期功能。是典型的黑盒测试,根据需求来对应用程序在各种不同环境下进行测试。 2. 基于关键字驱动的自动化测试技术:通过对业务逻辑的抽象提取,分离出一个个的关键字,通过这些关键字来对测试脚本进行组织和编写。这种技术可以将界面元素名和测试内部对象名进行分离,将测试描述和具体实现细节分离,脚本和数据进行分离。这“三个分离”使得相互影响降到了最低。 3. 基于数据操作的自动化测试技术:把数据作为测试动作中最基本的对象,以此为出发点,把测试动作转化为一系列的对数据的操作,来对软件进行测试。 11 北京
30、交通大学毕业设计(论文)正文4. 基于模型驱动的自动化测试技术:模型驱动测试就是通过对 SUT 的功能与系统结构进行分析,然后结合测试策略构建起全面、清晰的测试模型,最后通过测试模型自动生成测试用例驱动测试人员完成 SUT 的测试1。 5. 基于数据驱动的自动化测试技术:数据驱动自动化测试是一种数据被包含在输入测试数据文件中,并且以数据来控制自动化测试脚本执行的流程和动作的测试。输入测试数据记录是从外部文件中读入的,并且是独立于测试脚本程序开发的。数据驱动测试使用存档的测试数据来驱动自动化测试过程,这些数据通常以简单的文本文件或Excel 文件(电子表格)形式存在2。 本文介绍的框架是针对接口
31、测试和现实的测试场景来进行开发的,针对性强,对接口测试所关注的几个方面均有涵盖。经过详细的分析和思考,选定了上文总介绍的第5 种技术,即数据驱动的方式来设计开发自动化接口测试框架,原因是就接口测试而言, 基本不存在对界面内容的测试,接口测试的核心就是对接口数据进行检测,因此不需要使用开发难度高且框架庞大的关键字驱动模式来开发。本文所介绍的自动化接口测试框架所生成测试报告较之以往的框架也更为全面,并且可以发送给开发者,让其对其负责 2.1.3 自动化测试前提虽然自动化测试的有点很多,但是对于具体的软件产品是否能应自动化测试技术, 还要有所考量,应用自动化测试技术有一定的前提条件。 1) 软件需求
32、变动不频繁。 因为自动化测试的测试程序或者是测试脚本,是需要测试开发人员根据软件的需求和实现情况,来开发对应的测试脚本来对软件系统进行测试,如果软件的需求频繁的变更,测试开发人员就要不断的对测试用例和测试脚本进行更新维护,而脚本的维护本身就是一个代码开发的过程,编写、修改、调试都需要消耗大量的人力资源和时间。如果维护测试脚本花费的成本还要高于利用自动化测试技术所节省的测试成本,利用自动化测试技术便毫无意义。当然,如果项目中的某些模块的变更频率不大,不需要经常性的对相应测试脚本或程序进行维护,那么我们可以使用部分自动化来解决这个问题。对于那些经常变动的模块,可以使用手工测试来进行补充。 2) 项
33、目周期足够长。 由于自动化测试需要进行自动化框架设计,测试脚本编写调试等过程,需要大量的时间来完成,如果本身的软件项目周期较短,就无法有足够的时间完成自动化测试的内容。相比较而言,那些采用线性开发过程开发的软件,自动化测试技术就很难应用,因 为测试过程仅仅应用一次,时间也不允许。而对于那些采用不断迭代进行开发的软件产 12 北京交通大学毕业设计(论文)正文品,也是目前最为常见的软件产品,自动化测试技术都十分的适合、 3) 自动化测试脚本可重复使用。 相比手工测试,自动化测试的最突出的特点就是减少了手工测试中一些重复量大的工作,而测试脚本的重复使用率也是衡量能否应用自动化测试技术的一个关键指标。
34、如果开发之后利用率十分低,那样就无法创造很多的经济价值,甚至创造的经济价值低于其开发成本,那样就得不偿失。 除了以上三点之外,自动化测试技术还有一些手工测试技术无法触及的领域,比如在对软件的性能测试,配置测试及压力测试等方面。如果有这些方面的测试需求,即使需要投入大量的时间和人力,也只能采用自动化测试技术。 2.2 接口测试接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 接口测试一般会用于多系统间交互开发,或者拥有多个子系统的应用系统开发的测试。接口
35、测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。接口测试在淘宝的应用是一个自下而上的发展过程。 接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为搞复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大, 接口测试的效果越明显。 接口测试的目的是测试接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换,传递和控制管理过程,还包括处理的次数。外部接口测试一般是作为系统测试来看待的。 2.3 本框架相关技
36、术介绍2.3.1 JAVAJava 是一种面向对象的程序设计语言,采用类的形式对对象的数据和方法进行封装,从而使得对其的操作和修改变得十分简便。同时由于 Java 虚拟机的存在,使得 Java 具有和跨平台性,即所谓的“一次编译,到处运行”。Java 的另一个特性就是垃圾回收13 北京交通大学毕业设计(论文)正文机制,避免了内存泄漏。Java 因为支持 B/S、多线程、分布式的开发机制,被大量应用于网络开发中。除此之外 Java 还具有良好的安全性,保证了应用程序在网络环境下的抗恶意攻击能力。 在实际的工作环境中,Java 语言被广泛的应用于数据的开发过程中,为保持语言的一致性,避免语言差异导
37、致的各种问题,本文介绍的框架使用 Java 语言实现,利用 Java 的反射机制来对框架进行构建。 2.3.2 JSONJSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用 JavaScript 语法来描述数据对象,JSON 解析器和 JSON 库支持大部分常见的编程语言,可以方便地进行解析和生成。由于其与前端中大量使用的 JavaScript 技术十分契合,是目前最为常见的数据交换格式。另外 JSON 还具有良好的可读性和可扩展性。因此本框架采用 JSON 作为接口的数据格式,基于 JSON 格式来对接口框架设计开发。 Figure 1-JSON
38、格式例子2.3.3 Maven&SVNMaven 是用于构建和管理项目的工具,可以帮助用户管理构建、文件、报告、依赖、 SCMS、发布和分发。可以轻松地进行代码依赖管理,管理的二进制文件等等。 Maven 项目相比与普通项目,具有标准化,自动化,高效率和强大的扩展性的特性。使用 Maven 本身和插件也可以得到代码检验报告,单元测试覆盖率,实现持续集成 等。 14 北京交通大学毕业设计(论文)正文Figure 2-Maven 结构SVN 全名 Subversion,是一个被广泛使用的版本控制系统。 SVN 和 CVS 一样,是一个跨平台的软件,支持大多数操作系统。作为一个开源的版本控制系统,S
39、ubversion 可以管理随时间变化的数据。该数据被放置在一个仓库中,它像一个普通的文件服务器, 但是记录了文件的每一次变化。所以,你可以恢复文件到任何一个历史版本,或者浏览 文件的历史变更记录。 Subversion 是一个通用的系统,可以用来管理任何类型的文件, 包括程序的源代码。 Figure 3-SVN 操作流程15 北京交通大学毕业设计(论文)正文Figure 4-SVN 代码控制2.3.4 XMLXML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言。 本框架利用 xml 文件作为框架的配置文件,其优点主要有以下几点: 123遵循统
40、一的 W3C 标准,各平台通用,可移植性好。 XML 使用树形层次结构,数据定位较快 XML 读取解析较快捷方便,通过 DOM 提供的方法可以方便地对其进行操作。扩展性好,只要遵循一定规则,几乎可以进行无限的扩展,而且结清晰不混了,这点是 INI 配置文件不可比拟的。42.3.5 Log4jLog4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件,甚至是套接口服务器、NT 的记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别, 我们能够更加细致地控制日志的生成过程3。
41、最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 本文介绍的自动化接口测试框架也使用 log4j 进行日志管理,测试人员可以在测试时可以查看生成的日志来对接口情况进行分析,及时反馈给接口维护人员进行修改维护。 16 北京交通大学毕业设计(论文)正文3 自动化接口测试框架需求分析本章节对介绍的自动化测试框架进行分析,从自动化接口测试框架实现的可行性、自动化接口测试框架的功能性需求及非功能性需求这几方面来进行介绍与描述。 3.1 可行性分析对自动化接口测试框架设计开发的可行性进行分析比较。3.1.1 技术可行性自动化接口测试框架在提出初期对现有的测试框架进行了
42、大量的调查和分析,借鉴了部分测试框架的设计思路和实现方法,尤其是百度公司内部开发的开源 GAT 测试框架(Github 地址:/skyzhang2006/GAT_SourceCode.git)的设计思想, 结合实际工作情景来对框架进行设计和实现。同时在设计框架时得到了曾在阿里巴巴公司从事多年自动化测试工作的企业导师的指导。框架所采用的几项技术也是十分成熟和 大量使用的,所以框架的技术实现方面应该没有什么问题。 3.1.2 经济可行性本框架是在工作之余进行设计和实现的,花费时间大概在 2 个月左右,所以开发成本很低。而自动化接口测试框架在完成开发后,只需要测试人
43、员针对一个接口编写一次测试脚本,就可以实现自动化测试,解放了手工测试人员的劳动力,对公司有着很大的 效益。 3.1.3 操作可行性自动化接口测试框架完成后,自动化测试人员只需要编写很简单的测试脚本,就可以对接口进行测试,这与其他的测试框架形式大致相同,而本自动化接口测试框架的测试脚本相对于其他的测试框架而言更为简单,编写速度和效率也更高。自动化测试人员 只需要懂得基本编程知识和脚本编写技能即可。 17 北京交通大学毕业设计(论文)正文3.2 自动化接口测试框架功能性需求对模拟的测试场景进行分析,提取其中需求,得到自动化接口测试框架应实现的功 能性需求和非功能性需求。主要将自动化接口测试框架分为
44、了 8 个功能模块 3.2.1 配置功能将框架的配置存放在外部独立的文件中,在框架运行环境发生更改时,可以仅仅对配置文件中的数据更改,减少框架环境变化对自动化接口测试框架本身带来的影响。主要实现以下几点: 123对测试日志存放路径的配置。 对接口测试报告生成本地路径进行配置。 对接口测试报告邮件发送地址的设置,包括发件人、发送形式、收件人等邮 件相关内容的配置。Config.xml 用例管理模块 Figure 5-框架配置模块用例图3.2.2 读取解析功能将测试脚本和测试数据进行分离,在对测试数据进行修改和更新时不需要从新撰写脚本,提高测试脚本维护的效率,减少重复性劳动,同时在查找错误是,可以
45、更快捷的进行错误定位。主要实现以下几点: 1对测试数据文件的信息读取:测试数据文件类型为 Excel 类型,一个测试数 18读取配置文件 框架配置模块配置文件检测 配置文件应用 北京交通大学毕业设计(论文)正文据文件包括多个测试用例数据。对数据正确性和规范检测:检测数据格式,数据内容等是否符合规范。将读取解析道德数据输出给其他模块,从而生成对应用例。 23测试数据文件.xls 用例模块 Figure 6-读取解析模块用例图3.2.3 用例管理功能因为本框架是提供一个整体的运行环境,来管理遵循测试框架相关规范而撰写的脚本。由于拥有数量众多的接口测试脚本,框架需要对其对应的接口测试用例进行规范化的
46、管理,并可以对其运行状态进行记录和收集。主要包括以下几点: 1管理用例的运行状态:对不同接口测试脚本中的众多用例的运行与否进行管 理,如脚本 A 中的 a 用例和脚本 B 中的 b 用例可以同时运行,也可以分别运行或者均不运行。 用例状态记录:用例执行时,可以获得用例运行相关状态和结果,并可以将用例运行状态和结果数据输出,从而对结果和状态进行统计和记录。用例控制文件读取:将用例的控制文件同样存放在 Excel 表格中,通过对 Excel 表格的控制来对接口测试用例的状态进行控制。2319读取测试数据 测试数据正确性检测 读取解析模块测试数据输出 北京交通大学毕业设计(论文)正文用例控制文件 用
47、例模块 Figure 7-用例管理模块用例图3.2.4 用例功能因为本文介绍的自动化接口测试框架主要的对象就是用例,因此用例功能相当关 键。用例功能包括和测试用例相关的一系列方法和操作。主要包括以下几点: 1用例执行:根据测试数据成功生成测试用例对象之后,用例需要进行执行。主要就是通过发送接口请求及获得接口数据这一过程,了解接口的逻辑正确性, 功能正确性,容错率和吞吐量等特性。 用例执行状态记录:调用外部模块,记录用例执行情况。 用例执行结果输出:向其他模块输出用例的执行结果,从而展示用例执行结 果。23用例管理模块 日志模块 结果统计模块 Figure 8-用例模2块0 用例图用例执行 用例
48、执行状态记录 用例模块用例结果输出 用例控制文件读取 用例状态记录 用例管理模块用例状态执行 北京交通大学毕业设计(论文)正文3.2.5 结果统计模块结果统计功能是对各个用例的执行情况进行汇总和统计,更直观和清晰地展现本次 运行的测试情况。结果统计主要包含以下几点: 12接口时间统计:包括开始时间,结束时间等时间信息的统计。 接口数量统计:统计本次执行过程中的用例数量、测试覆盖率和通过率等信 息。接口通过情况统计:对各个单独用例的通过情况汇总展示。 汇总信息输出:将汇总的结果输出给结果展示模块,来展示给测试人员。34用例管理模块 信息展示模块 Figure 9-结果统计模块用例图3.2.6 数
49、据校验模块对接口数据的正确性进行校验,通过校验接口预期数据和实际接口返回数据的一致 性,来检测接口情况。数据校验主要分为以下几点: 1.JSON 数据校验:因为接口所针对的数据类型是 JSON,因此框架要针对 JOSN 类型的预期数据和接口返回数据进行校验比对,判断实际结果是否符合预期。校验过程记录:使用日志功能,记录校验过程中的错误信息,方便测试人员发现问题。 输出数据校验结果:向外部数据校验结果。展示接口数据的正确性。 2.3.21接口时间统计 接口数量统计 结果统计模块接口通过情况统计 信息输出 北京交通大学毕业设计(论文)正文用例模块 日志模块 Figure 10-数据校验模块用例图3
50、.2.7 测试报告生成及展示自动化接口测试框架在执行本次测试后,要向测试人员或者开发人员展示测试结 果,需要测试结果的查看方便清晰,其主要包含以下几点: 12本地测试报告展示:将测试报告存放在本地,可是实时的查看。 通过邮件形式展示:因为实际工作中,邮件交流是公司内部最为常见和快捷 的交流方式,因此将测试报告镶嵌在邮件中,更为直接和快捷。同是也可以将 相关邮件发送给接口的开发人员,告知接口的状态和可能存在的错误。 22JSON数据校验 校验结果输出 数据校验模块校验过程记录 北京交通大学毕业设计(论文)正文结果统计模块 Figure 11-测试报告生成展示模块3.2.8 日志日志功能是所有测试
51、框架必不可少的一项功能,主要是在测试用例执行过程中,可以对其状态实时记录,并保存在日志文件中,方便以后的查看。本文介绍的自动化接口测试框架也提供该功能。 用例模块 数据校验模块 Figure 12-日志模块用例图23日志模块日志记录外部接口 测试报告生成 本地测试报告展示 测试报告生成及展示模块邮件测试报告展示 北京交通大学毕业设计(论文)正文3.3 自动化接口测试框架非功能性需求主要介绍框架的非功能性需求,对框架的其他质量属性进行分析。3.3.1 性能需求对框架的性能进行描述。在处理速度方面根据每个用例脚本的复杂度分为三类。Table 1-框架性能需求在数据量方面,支持测试用例脚本的一直增加
52、,并可以对其进行管理。在数据量大 时框架应当保持稳定性和准确性。 3.3.2 易用性自动化接口测试框架完成后,其测试脚本应该编写较为简单快捷,且自动化测试框架规范只需要掌握基本的脚本编写技能即可。且在设计测试脚本内容时可以进行代码重用,提高脚本撰写效率。 3.3.3 可移植性框架应当可以在各个不同的操作系统上均可运行,且只需要更改少量的配置即可。3.3.4 可维护性将测试数据和测试脚本进行分离,在维护测试数据时可以快速的定位,维护脚本应 当是高效而快捷的。 24每个接口用例数量 对应接口脚本运行时间 1-320s 以内 3-620-60s6 个以上 视具体数量而定,但每个用例平均处理时间不应大
53、于 20s 北京交通大学毕业设计(论文)正文4 自动化接口测试框架概要设计4.1 模块划分针对自动化接口测试框架需求分析中的功能,进行模块划分,对模块内部的业务逻 辑和处理流程进行设计描述。 4.1.1 框架配置模块从配置文件中读取框架的配置信息,从而对框架执行时的日志文件路径、测试报告 路径、测试报告邮件地址等信息进行设置。 Figure 13-框架配置模块业务逻辑12配置文件读取:读取配置文件中的数据内容 配置文件检测:检测配置文件是否符合标准(文件是否存在,数据格式是否 正确等)将配置文件中的内容应用于框架。34.1.2 读取解析模块读取解析模块主要功能是从事先设计好的测试数据文件中读取相关的测试数据,将25 北京交通大学毕业设计(论文)正文测试数据应用于对应的测试脚本并生成相应的测试用例以供框架执行。Figure 14-读取解析模块业务逻辑检测测试数据文件的类型和存在性。检测测试数据格式正确性。 读取数据并生成测试用例。 1234.1.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电商平台用户行为分析合同
- 2026年婚庆策划合同协议条款
- 2026年文化版权转让合同
- 家装产品培训用
- 家具企业安全生产培训课件
- 声乐培训老师讲课课件
- 培训讲座心得体会
- 培训合同安全义务
- 文库发布:杭州介绍
- 数字电路基础 课件 第7章 脉冲单元电路
- 室内混凝土知识培训内容课件
- 职业卫生应急预案
- 2025年超声波金焊机行业研究报告及未来行业发展趋势预测
- DB14∕T 1049.2-2021 《山西省用水定额第2部分:工业用水定额》
- 医学单招面试真题及答案
- 医院窗口服务8S管理规范
- 患者突发昏迷的应急预案演练脚本
- 高速辅警管理办法
- DB32∕T 4787-2024 城镇户外广告和店招标牌设施设置技术标准
- 学校vr室管理制度
- DBJ51T193-2022四川省金属与石材幕墙工程技术标准
评论
0/150
提交评论