基于Python的软件测试自动化平台研究

2018-04-15 16:14珠海格力电器股份有限公司黄金武
电子世界 2018年14期
关键词:软件测试运算服务器

珠海格力电器股份有限公司 张 璐 黄金武

1 引言

在所有的软件开发过程中,软件测试工作均贯穿了整个研发过程,从系统编写、框架构建、系统编码以及整个体系的应用都需要有效的测试平台来检验其有效性。根据国外的研究显示,软件在测试阶段投入的成本量占总成本量的40%,而工作量则占总工作量的50%以上。传统的测试方法周期较长,并且在出错改动后难以进行回归测试。因此,必须采用自动化软件测试平台才能够提高该项工作效率,减少软件的研发周期。

2 基于Python的软件测试自动化平台的需求

2.1 数据共享

数据中心由两台高性能计算机作为数据库载体,配以大容量的磁盘阵列和磁带机,系统通过光纤存储交换机相连,采用双链路备份的方式,保证数据库的可用性与可靠性。系统涉及到整合其他业务系统的数据,其他写数据有结构化数据和非结构化数据,数据库可能有Oracle或者SQLServer等结构化数据库,也有NoSQL类型的数据库,或者分布式数据库,同时考虑到与政务大数据平台相结合,因此,本方案设计系统把采集过来的数据存储在由Hadoop搭建的分布式存储系统上,通过HBase进行结构化数据存储,通过逐步建立分布式数据分析模型,不断的丰富系统提供的服务。MapReduce是由Google提供的建立在HDFS之上的一个并行计算框架;我们需要通过MapReduce框架设计对共享数据的检索与分析,为各种业务系统提供数据。HBase是一个类似于Google BigTable的分布式NoSQL列数据库;Hive是由Facebook贡献的一个数据仓库工具提供类SQL查询方法,使得上层数据应用程序可以通过关系型数据库访问的方式查询分布式文件系统中的数据;Zookeeper是由Facebook提供的一个分布式锁设施,在整个平台中起到协调各种操作的作用。Pig是一个大数据分析平台,为用户提供多种接口,在系统中主要通过其方便的脚本编程接口为上层数据应用程序提供服务。

2.2 通信协议

现代计算机分布式存储系统应当可以实现以下功能,探测功能主要指的是系统可以对发生异常信号的地区能够准确快速的进行探测,主要有又可以分为危险行为的探测和目标识别探测,它们所应用的区域是不一样的,危险行为探测主要是进行危险报警,而目标识别主要是用于安检。响应主要是指通信系统对检测到的信号能够有所反应,主要包括报警信号以及系统的自动记录与控制等。通信系统的管理功能主要实现日常操作的智能化管理,能够对于一些程序流程,进行自动化的施行。通信系统的信息存储主要包括探测信息、管理信息以及系统日志的存储三大方面。Python软件测试数据库采用键值存储方式,它主要是通过集合的方式来进行存储的,可以进行有效的索引,它的主要特点在于在存储二进制数据的时候,可以把任何一种文本转换为二进制文件进行较快的分块存储,在存储当中可以把二进制文件放在多台服务器当中进行存放,使得其存储能力得到大幅的提升。Python软件测试数据库系统的特殊性使其数据库存在更高的安全性与保密性系统数据要求,在设计系统过程中,应该将系统连接、安全隔离与过滤信息等安全措施考虑进来,从而为系统安全提供保证。不能出现修改数据,系统可以提供全面系统的用户权限管理体制,对于系统授权用户合法访问提供保证,预防出现非授权访问,将应用开发软件、数据库管理系统与旧产品、同类其他产品兼容。Python软件测试数据库可以利用两种方式来进行二进制文件的存储,第一种是系统进行主动的分片存储,第二是用户采用自定义的方式进行存储,分片存储主要是把二进制文件分成多个部分,每个部分通过一条记录来放入数据库当中实现负载均衡,用户自定义就是用户对于数据块的大小进行分配,可以对于数据的存储位置进行管控,应用程序实现多个分块服务器间的通信与调整。

3 基于Python的软件测试自动化平台的设计方案

3.1 数据处理

在安卓软件测试环境下,数据规模和复杂度的增加往往非常迅速,对系统的扩展性能要求较高。实现存储系统的高可扩展性首先要解决两个方面的重要问题,包含元数据的分配和数据的透明迁移。因此数据中心配备包括支撑以上功能的硬件基础设施、大型外部设备、数据库管理商用软件、数据处理专业商用软件、数据管理应用软件、数据服务应用软件、数据交换系统,以及相应的专业人员。数据中心硬件配置一般包括:服务器(业务应用服务器、数据库服务器、交换服务器);存储系统(SAN光纤交换机、磁盘阵列、NAS文件存贮);交换机(核心交换机、服务器群子网交换机、部门接入子网交换机);大型外设;全冗余的硬件设备及链路。数据中心软件配置包括:网管软件;应用服务器软件;数据库管理系统;GIS软件;数据备份软件;目录服务及元数据发布软件;LDAP服务器;安全管理软件;消息中间件;云虚拟机管理软件等。整个数据中心网络可以建立在云计算平台之上,所有的应用系统服务器均由虚拟化服务器提供,这样的好处在于可以按需配置服务器资源,保障服务器资源的充分利用和灵活调度。

负载均衡进行服务器并行运算虽可提供大量并行并发运算单元,但部署在负载均衡上的智能运算需将数据库中的数据集加载至智能服务器上运算,对数据库负担重,且使数据库与智能模块间频繁交互信息,且加载了大量冗余数据,增加了网络负担。具体来说其应用如下:(1)在数据库底层进行高效的数据运算。(2)将过程化的游标运算改为使用XML变量、表变量、存储过程并行运算。(3)WEBSERVICE服务器负载均衡只作为不同用户并发运算及传输输入输出参数的服务器,数据库服务器采用负载均衡提供并行并发运算。将前台系统应用请求的智能模块XML入参,经负载均衡判断送入哪台WEBSERVICE服务器(判断哪台WEBSERVICE服务器空闲),WEBSERVICE服务器接收到XML入参后判断调用哪个类接口,类接口将XML入参或初步简单解析过的XML入参判断要调用哪台数据库服务器,数据库服务器存储过程接收到XML入参后在内存表中调用数据高速并行运算(大量采用函数作为并行运算单元)。XML作为数据库入参。内存表技术。数据库函数运算。欲保护点:将过程化游标算法转化为函数并列算法。将webservice逻辑过程化算法转化为数据库并行存储过程+函数算法。

以下模型计算机智能决策过程约需100步左右。原有算法需要将相关信息作为入参输入,后根据入参筛选出符合分数的方案,再用游标根据信息逐一判断卡位,算出决策方向,最后匹配其他参数。约需20分钟,系统才能出结果。便如12306网站这么简单的算法也要排队一样。系统将过程化需大量交互至webservice逻辑层的运算推至最底层,用大量并行运算方法,短期内得出结果,约需0.3~0.6秒。

3.2 工作流设计

基于Python的软件测试自动化平台的工作流一般包括5种,分别为重启、编译、执行、结果、输出。其中,重启工作流是测试过程中所带动的第1个工作流,该测试的执行流程为:(1)进入临时文件;(2)重启临时文件(如果选择“否”操作则该工作流直接结束,如果选择“是”操作则工作流继续进行);(3)读取现场文件;(4)删除该现场文件;(5)在用例文件中读取该现场文件;(6)工作流结束,其主要是对OS.path包中是否具有现场文件进行检测。编译工作流是测试中所调动的第2个内容,其执行流程包括:(1)接受参数和赋值的变化;(2)对每一个用例文件进行浏览;(3)对用例文件中的Case进行测试;(4)将Case封装到模板中;(5)对.py格式文件进行输出。在封装的过程中需要注意,应该是将.txt格式文件封装为.py文件,所使用的模板文件名为caseTemplate.pyCaseTmplate,这样就能够将模板字符串和用例的内容添加到try语句中。Python的工作流设计方法是通过强化学习,来对传统的工作流设计进行优化,然后可以有效的解决离散系统和非线性系统中出现的问题,主要包括策略迭代和直接在两种形式,策略迭代主要是通过策略评价与改进的方法,对每一步的策略进行评估,来不断的寻找优化的策略,同时对其进行改良和优化,得到新的权值,生成新的优化函数进行计算,在这个过程当中,评估和改进是循环进行的,最后将会得到一个最优的控制策略。但是需要注意的是,在最好的运行模式下,相关的一些外部参数条件应当是稳定的,这是非常重要的,如果没有这个条件,就会导致整个策略评估,出现一些意外的情况。值迭代的算法主要是针对于一些方程式的计算,通过最优函数的寻找与控制计算,就能计算出最优的值,它不需要进行控制策略的稳定化,在我们的使用当中必须要注意,无论是迭代策略还是值迭代,都需要对于被控对象的相关特性,尤其是内部特性进行研究,这也是自适应工作流设计的核心特点。

3.3 C#模块设计

软件测试自动化平台下的c#模块一般包括4个部分,分别是文件、执行、脚本编辑以及实时信息显示四大模块。其中,文件模块主要引用了using System.10,这样就能够保证其对多种类型的文件进行创建和读取,并且在保存时也能够为用户提供更加方便的显示界面。但需要注意的是,在控件使用过程中应该将默认状态下的.Filter格式更改为.txt格式,这样就能够保证文件的通用性和快速选择性。在打开文件后,需要采用逐行读取数据的方式,并采用StreamReader.Append的方法添加文件中的字符,同时该方法还能够在字符串连接时降低损耗。执行模块主要是控制系统的运行、暂停以及停止,并且能够将空间使用后生成的文件转化为.txt格式。脚本编辑模块同样包含3个空间,其主要在第2个分页、出现\n字符时以及新建文件时所触发的功能控件。信息显示模块共包含2个控件,其一是TabControl,主要是在第2个分页发挥作用;其二是TextBox,其属于复合型控件,能够对显示数据的输出进行逻辑判断。利用Python软件测试支持字段可以进行范围查询和正则表达式搜索,返回文档的特定字段,还可以包含用户定义的JavaScript函数,也可以配置为返回给定大小的结果的随机样本。索引Python软件测试文档中的字段可以使用主索引和二级索引进行查询。Python软件测试可以运行多个服务器,其需要平衡负载或复制数据以保持系统在硬件故障的情况下运行。Python软件测试可以用作一个文件系统,在多台机器上具有负载平衡和数据复制功能来存储文件。GridFS将文件分成多个部分或块,并将每个块存储为单独的文档。Python软件测试apReduce可用于批量处理数据和聚合操作,聚合框架使用户能够获得使用SQL GROUP BY子句的结果类型。

3.4 Python入口文件设计

Python的入口文件一般是TestSuiteExecutor.py文件,其主要负责为工作流当单引擎,但不负责实际工作执行指令,也就是说,该入口文件仅能够实现对接受数据参数的初始化,并按照一定顺序进行各项工作。Python的入口文件主要负责的内容包括:解析命令行的逻辑问题,建立临时目录(所创建的目录主要经由.txt格式文件编译成的.py文件),执行工作流,清除临时路径等。其中,清除的临时路径包括临时目录、临时子文件、临时文件夹等。在整个Python入口文件的算法的计算当中,对于系统的内部动态特性要求是非常高的,在每一步的计算当中都需要对此进行计算,同时我们要尽量的让状态的函数,更加的逼近真实情况,最终得到最优化的结果,在迭代步数趋近无穷的时候,就可以求出最优化的入口文件,这样就可以对于最优化的策略进行分析。

4 总结

软件测试系统在设计过程当中必须确保拥有相应的前瞻性,借助成熟、先进设计理念,在保证性价比高的前提下,选取可靠成熟的技术方法与中高端设备,使开发出来的软件测试系统科技含量在整个软件测试系统行业中处于先进位置,处于合理性价比条件,处于国内领先地位。

猜你喜欢
软件测试运算服务器
重视运算与推理,解决数列求和题
基于OBE的软件测试课程教学改革探索
有趣的运算
通信控制服务器(CCS)维护终端的设计与实现
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
“整式的乘法与因式分解”知识归纳
中国服务器市场份额出炉
得形忘意的服务器标准
软件测试工程化模型及应用研究