河南开封科技传媒学院 刘洋 白德华 李冉
现阶段电子技术发展相对较快,同时软件项目也逐渐增多,该种情况下造成了进行测试脚本的工作很难实现有效地管理,在具体的应用过程中缺乏效率较高且具有便捷性的自动化的测试方案,导致在进行脚本测试的过程中往往需要重复工作以及所取得的测试效果相对较差。因此,通过展开对脚本测试的有效规范以及统一管理,同时有效引入自动化测试框架技术能够一定程度上提升测试工作效率与水平。
Python语言其语法与自然语言相接近,在具体的使用过程中能够通过相对较少的代码实现其他语言的相同功能,学习该语言相对较为容易并且容易进行开发应用。采用Python语言进行自动化测试脚本管理平台的设计与实现,能够一定程度上改善脚本测试的技术方法以及流程管理方式,实现测试效率的提升,确保软件产品的质量。
所谓的软件需求分析主要指的是经过与客户之间的有效沟通,对目标系统所提出的较为详细与具体的相关要求,进而展开对软件系统所需要处理的相关任务,同时对软件的功能以及性能方面的属性进行极为详尽的描述。对于软件需求方面的分析属于软件开发过程中较为重要的内容,同时也是开发人员展开软件开发工作的关键点以及驱动点,其与软件工程的质量以及成本的完成情况具有相对较为紧密的联系。近些年来,科研管理软件项目的测试工作大多数是采用Python语言脚本的开展的。随着软件项目的不断增加,软件的规模也在不断地扩大,因此软件的复杂程度也在不断提升,以至于测试脚本很难得到有效地管理。面对该种情况,主要由测试脚本的集中管理还有测试结果的记录与统计以及脚本测试的自动化三方面进行对自动化脚本测试的相关需求展开分析。当前,大多数科研管理软件项目的测试脚本主要是相对较为杂乱地存储在服务器内,数量以及类型相对较多,通常情况下会涉及到多个应用以及系统。因此展开集中管理脚本的Web平台的设计,从而实现对脚本的查看以及信息说明等功能,同时由测试业务或者测试类型等层面展开合理地分类,通过此种方式令脚本的管理具有相对较强的直观性以及使得管理效率得到一定程度的提升[1]。结合现阶段脚本测试的具体情况进行分析,当测试过程中发现脚本问题以后,参与测试的相关人员往往采用口头形式向开发人员进行问题的相关描述,但是在进行脚本问题的处理以后测试结果相关信息便会被忽略。因此需要对测试工作的脚本运行的实际状况信息展开有效地收集以及记录,通常情况下涉及到测试运行结果以及运行日志还有运行时间等方面的信息数据,并且对测试结果展开统计与分析。通过对测试结果的有效利用能够对软件产品的具体运行状况以及开发情况予以清晰地反映出来,进而使得软件的质量得到一定程度的提高以及促进软件的进一步开发。当前,在进行脚本的测试过程中通常情况下是采取的手工测试,测试脚本的复用性相对较低,测试库功能重复性相对较大,使得测试效率相对较低。因此,根据脚本生成技术还有自动化测试框架技术展开对测试脚本自动化测试方案的设计,从而一定程度上改变测试方法以及测试流程,以此提高测试工作的工作效率使其具有一定的智能化。
在以往的测试脚本过程中,测试数据与测试执行逻辑往往是一起的。在进行测试脚本的过程中为了有效提高测试脚本资源的利用率以及灵活城市还有可维护性,通过采用数据驱动脚本技术建立了测试驱动器-测试用例-测试计划的测试概念模型。此模型主要是利用测试驱动器使得测试控制逻辑与测试数据进行有效地分离。测试驱动器主要针对的是具体的测试脚本。此脚本主要涉及到测试的逻辑控制信息,而没有测试数据信息,所以能够利用配置驱动数据展开对驱动器脚本的重复性使用。测试用例主要针对的是实际的测试用例,其主要是结合驱动器配置相应的驱动参数生产的,所以测试用例文件仅涉及到此用例所对用的驱动器名称以及相关参数信息,不涉及到逻辑执行程序。对于测试计划来讲其主要是根据业务或者测试的类型展开划分的。测试计划在完成任务以后会生产测试报告还有发送测试结果通知。并且还能够对测试计划展开构建。采用此类型模型进行数据驱动的自动化测试框架方案的设计,在其中脚本执行工具属于框架的枢纽,对于整个测试流程具有有效的控制功能。测试用例还有测试计划主要是具有驱动参数的JSON文件,其能够驱动脚本制定工具有效地开展测试工作。在进行测试的阶段,脚本能够结合驱动参数进行对相应的驱动器脚本的加载与调用,进而取得测试结果。通过与Web端在线管理脚本的实际需求的有效结合,从而进行对自动化测试方案的设计。首先需要开发人员明确测试需求,同时结合项目需求在进行驱动器脚本的开发,完成驱动器脚本开发工作以后,参与测试的开发相关工作人员在脚本管理系统内展开此驱动器脚本数据还有驱动参数信息的添加,在具体的添加过程中,脚本管理系统则会自动生成驱动器脚本。然后,测试人员在脚本管理系统内进行驱动器以及相应配置驱动参数的选择进而进行测试用例数据的合理添加,在具体的添加过程中,脚本管理系统会自行生产测试用例描述文件。此外,测试人员能够根据测试的具体类型将若干个测试用例组织在一起同时配置通知对象还有定时器参数以此进行计划的添加。在进行计划的添加过程中,脚本管理系统则会自动生产测试计划描述文件。同时测试人员能够在脚本管理系统内进行测试用例以及测试计划的执行并且还能够进行每日计划任务的建设。在计划的执行过程中,脚本管理系统能够进行脚本执行工具的调用以此取得测试结果以及相应的报告。
结合平台的自动化测试方案进行分析,测试脚本管理平台可以归为三部分分别为测试相关数据以及脚本执行工具还有脚本管理系统。对于测试相关数据来讲其主要涉及到测试驱动器和测试用例以及测试计划与测试结果,其中测试驱动器和测试用例以及测试计划通常情况下是以文件加数据的形式存在的,而测试结果则仅仅存在数据库内。脚本执行工作其在进行测试脚本管理的过程中主要承担的是测试活动的具体执行单位,通常情况下涉及到执行测试用例与执行测试计划以及生成测试报告还有测试通知的发送。在技术架构方面自动化测试脚本管理平台主要是采用的B/S结构,而浏览器主要是利用HTTP接口实现的与服务器端的连接,数据库通常情况下所采用的框架为MySQL。
平台的测试用例还有测试计划都是采用脚本执行工具通过驱动器脚本的有效执行从而实现的,对于脚本执行工具来讲其属于自动化测试脚本管理平台中重要基础部分,同时也是极为重要的一个构件,脚本执行工具主要涉及到测试用例和执行测试计划以及生产测试报告与发送测试结果等方面的功能。脚本执行工具在具体的应用过程中能够被Python库还有终端命令进行有效地调用。采用Python库的形式进行对脚本执行工具的到聘用主要是为了可以在Python程序内实现对脚本执行工具的调用,脚本管理系统通过Python库进行脚本执行工具的调用,从而实现测试任务的具体执行。脚本执行工具的Python库通常情况下是进行测试用例以及测试计划任务的处理的。脚本执行工具的Python库能够为测试用例还有测试计划任务的执行提供两个接口,在进行该接口请求以后则会进行对测试结果对象的有效返回,其中主要封装了测试任务的用例及概况还有测试结果与报告以及执行日志等方面的相关信息内容。因为参与具体测试的相关开发人员无法通过脚本管理系统的Web界面内展开对测试脚本的开发与调试,因此其需要在本地环境下展开对脚本执行工具的有效调用。该种情况下脚本执行工具还能够通过终端命令的方式进行执行测试任务功能的实现,以此使得脚本测试开发工作人员在进行测试脚本数据的撰写以及调试还有维护等方面更为便捷有效。通过终端命令的方式进行测试任务的执行,参与具体测试的开发人员能够在终端屏幕上予以执行日志还有执行结果的直接获取。
测试脚本自动化管理平台所采用的为Python语言编程,在脚本执行工具方面其主要功能方面的实现在于结合脚本执行工具的具体设计方案,从而实现测试工作。(1)初始化配置文件,初始化脚本执行工具需要拥有全局配置,其中主要涉及到用例文件名的默认前缀还有驱动器的具体储存路径以及测试报告模板的存放等方面的信息。(2)是进行对用户请求的有效解析,了解用户是执行测试用例或者执行测试计划,同时结合解析结果调佣测试架在其进行对相应的测试目标的有效加载。测试加载器主要是结合测试目标从而把全部的测试用例实例进行有效地初始化,同时封装成一个测试套件实例进行返回。执行器主要是根据自动化单元测试框架的流程展开执行测试用例。完成用例执行以后,执行器则会将测试结果信息展开有效地梳理与统计然后再进行返回。若是执行测试计划,执行器还能够结合该部分结果信息进行对测试报告的HTML模板进行填充,以此生产测试报告的静态形式的HTML文件。完成测试计划执行以后,执行器则会调用测试同时方法类把测试报告作为邮件内容向测试结果通知对象进行发送。对于平台的脚本管理系统来讲其后台主要是采用的web.py框架,而前台部分则通常情况下是采用的jQuery+Ajax+JSON+TrimPath的混合结构。脚本管理系统的web.py配置主要涉及到URL和控制层方法类的映射关系还有Session配置与前端模板配置等方面的内容。
基于Python测试脚本自动化管理系统平台的测试工作主要是通过黑盒测试为主,以白盒测试为辅的展开测试的,此种测试方式先利用黑盒测试进行问题的查找,在找到问题以后然后借助白盒测试进行对问题的定位,然后在进行问题的及时处理[2]。对于平台的测试通常情况下涉及到对平台功能方面还有性能方面以及兼容性和稳定性方面的测试。通过对测试结果的有效分析以及对所存在的相关问题进行及时有效地处理,确保平台的性能以及功能还有兼容性和稳定性的良好,以此展开对测试脚本实现自动化管理。
近些年来我国信息技术领域发展相对较快,同时软件项目也在不断增加,因此对于脚本的测试工作也相对增多,采用手工形式进行脚本的测试已经无法充分满足实际工作要求。基于Python脚本的自动化测试属于现阶段经常应用的测试手段。因此在进行脚本自动化测试平台的设计与实现能够极大程度上提高脚本测试的效率与质量,从而更好的完成测试工作。