服务导向下的网格软件测试环境研究
2019-10-17王宝成
王宝成
摘 要:网格软件测试是网格研究中的重要组成部分,也是非常关键的技术。服务导向下的网格软件测试正是其中的重点,通过运用SOA,采取积极有效的方法和措施,从网格服务测试、网格性能测试和网格软件测试实施和管理3方面对测试环境進行研究,并针对性地开发出一个适用其中的测试工具。
关键词:SOA;网格软件;测试环境
面向服务的结构(Service-Oriented Architecture,SOA)是一种具有集成性、可扩展性、安全性的以关注服务为主的分布式体系结构,网格使之亦然,但其更多的作用在于资源的共享以及协同工作。为了达到两者有效联合的目的,Web服务应运而生,并且随着分布式对象技术的逐渐应用,更加推行了SOA的发展,Web服务的导向更进一步地落实了网格软件的测试进步。因此,基于服务导向下的网格发现通过SOA的应用,可以提供方便、快捷的平台环境,调整相应的网格解决方案的架构,实现有效性和透明性。然而,在这样的优势下,难免还面临着较多的分布式对象技术的问题,因此,需要进行相应的理解和分析,逐步进行改良与发展[1-2]。
1 网格服务测试
目前,Web服务在市场上颇受追捧,因而网格服务测试能够充分借鉴于此,并不断有效地修订和完善面向网格服务的基本准则,实现网格服务测试的标准化和规范化。
为了达到请求期望的网格服务目的,需要对客户端请求内容进行精准的预测,但代价极大,因为,其请求输入功能所需要占用的空间内存会比较多,要求能在较大范围内运行检验网络服务的请求类型和与之相关的参数内容,就显得格外地重要。网格服务测试的具体内容包括以下几个方面。
(1)请求级:通过HTTP或SOAP连接测试用户发送请求到相应的服务器中,确定类型和范围,可以更好地接收到广泛的请求,保证准确性。
(2)应答级:通过检查网络服务的准确性,采用手动检查或脚本分析等方式验证应答消息的规范性,这样一来,在XML文档中通过期望应答比较文本间的差别,抽取特定的信息,执行相应的应用测定。
但是采取这样的请求类型和分析验证应答消息不能单单依赖脚本和手动操作,这样不能有效提高测试的准确性和效率。因此,需要对其进行调整和改变,使用网格服务测试工具,快速、便捷地形成有关于网格客户测试的用例套件,发现相应的方法和问题,自行运行基于SOA网络模型开发的网格服务测试用例,如图1所示,最终生成测试结果,并用回归测试予以验证,以保障用例的正常推行[3-4]。
2 网格性能测试
为了验证在各种负载情况下的网络服务性能,需要进行包括请求提交和应答验证两项要求的多客户网格服务测试。
图1 网格服务测试
通过运行合理的性能测试,以监视服务器的各项指标,同时,要关注其响应速率,要测试负载情况下各项能诱发网格服务功能障碍的情况,设置相应的性能测试场景,实行网格性能的测试套件,主要场景包括Bell曲线、缓冲区测试、稳定负载和线性增加等。结合不同的测试场景使用相应的测试用例,支持远端连线服务器里的所有虚拟用户,模拟并运行极限和压力测试等[5]。
网格性能测试通过模拟较多次数运行网格服务的情况,找出相应的问题,性能测试的具体解决方案如下。
(1)多机测试:通过运行虚拟用户和多台机器的网格软件测试工具,具备更多数目的负载。
(2)定制场景:通过提供默认或自建的负载测试场景,模拟可能存在的现实情况。
(3)监视器:需要在负载情况下监视相应的系统资源,包括内存耗用情况、CPU和请求反映时间等。
3 网格软件测试
由于一开始的网格系统设计并没有采用Web服务技术,而采用的是诸如Grid Services等做法,无法体现SOA具有的可扩展性和耦合性,并且平白地增添了系统运行中的复杂性。
随着Web服务的不断进步,出台了有效的标准规范,以更好践行SOA和网格技术的有效融合,并促进了网格运算、系统管理及Web服务的协调合作。目前,存在两类网格软件测试程序的实现方式,即迁移基于Web服务的测试程序到网格系统中和开发基于服务导向下的网格软件测试程序。
因此,为了实现第二类所呈现的部分,需要认真思考SOA和网格技术和特征两方面的内容,体现其可扩展性和相融性,将程序有效地迁移到服务导向下的模型中,更为细致地划分成具细的Web服务单双眼,实现网格节点的独立工作,删除单一且不必要的程序,重新记录关于网格负载的重要信息,完成Web服务测试程序,向服务导向下网格系统的迁移发展,建立相应的可执行操作列表,操作具体步骤下的编译次序,实现网格组件和节点之间的长效通信,以此构建基于服务导向下的网格软件测试环境,并提供相应的技术支持。
4 网格软件测试实施、管理和开发
通过构建一个有效的网格软件测试环境,实现快捷、便利的测试用例维护管理。针对网格系统软件中的系统应用程序编程接口(Application Programming Interface,API)和与其匹配的网格服务,提供相应的插件系统,具备全面统一的调用和管理功能,兼具可扩展性和灵活性。根据具体的网格系统软件扩展其插件模块,最大效度地保证该工具的体系结构,满足各项系统需求。
实施测试工具系统中所包括的功能如下。
(1)项目管理功能:创建并操作有关于网格软件测试项目的具体用例。
(2)用例管理功能:阅览并显示网格软件系统测试和运行多类型的网格软件测试用例,针对网格西永软件中的API接口,运行相应的测试插件。
(3)用例执行功能:通过输入相关参数,落实API的具体测试,让执行结果信息呈现在用户面前。
(4)消息日志功能:查看关于测试工具的消息视图,并以此记载与之相关的全部情况。
如今主要基于服务导向下的测试工具包括JUnit和TCPMonitor工具两种。JUnit的操作更加方便简单,通過自动化的运行,积累相关的JUnit测试程序,减少失误的发生。除此之外,JUnit还可以与编译单元及集成开发环境(Integrated Development Environment,IDE)单元有效集成,便于测试人员完成测试。但同样地,它存在一定的不足:仅能支持同步测试,不能支持重现其他异步单元,再加上JUnit是一个黑箱测试平台,当出现内存泄漏或用户并发数等问题时,无法继续运行测试,只会在一个Java虚拟机上进行简单的操作,进而缺乏效度。TCPMonitor工具通过调试并监测关于Web服务的SOAP报文,分析HTTP Web服务会话,所生成的请求应答报文以确定该功能的准确性。但这些内容只能通过简单脚本或手工代行,但其效率和自动化特征难以保证。所以基于测试对象的考量,此类工具仅限于Web服务,而不能践行网格服务,存在一定的弊端。
针对这样的特点和不足,根据细致的分析和理解,尝试性地开发出基于服务导向的网格软件测试工具,具体包括以下特点。
(1)应用Java技术完善JUnit结构,能够跨越平台的局限,实现多主机运行情况下的远程Java虚拟机测试,具有异构性和分布性的特征。
(2)通过实现JUnit的扩展性,应用有效插件,借此加载测试软件,动、静态资源都可以进行测试,静态资源如HTML,动态资源如Servlets、脚本、Web服务和Java对象等。
(3)通过模拟并发用户,配置相应的线程组,设置相关请求属性,模拟更多的服务器、网路和软件负载,全面测试网格软件的性能。
(4)提供多样化的可扩展性能测试和相关的分析方案,形成一个测试计划,保存为可定制用户和可扩展的XML格式,提供诸如图片、表格等的分析工具,以此来更方便地得出相应的结果。
(5)根据所得结果和相应测试用例,以此发送请求给网格程序,并发挥准确的验证功能,使之更具信度。
(6)通过分析测试数据和文件,进行脚本的录制和播放,再现与之匹配的测试场景,可以更好地维护测试用例。
5 结语
本文通过对服务导向下的网格软件测试环境的研究,发现其在网格服务测试、网格性能测试和网格软件测试实施和管理3方面存在些许不足,并以此采取相应的解决措施,开发出新的、行之有效的测试工具。贴合Web服务的导向作用,构建一个新的网格软件测试环境,更加促进SOA的完善和发展。
[参考文献]
[1]朱英南,唐世翔,于琳瑶.网格软件自动化测试框架的研究与实现[J].电子技术与软件工程,2016(16):56.
[2]谢涛吉.科学计算网格环境信息服务扩展研究[J].信息技术与信息化,2015(7):86-87.
[3]杨毅.一种基于网格优化的空间数据访问与存储研究[J].无线电通信技术,2014(6):43-46.
[4]易小平.网格资源负载管理系统软件测试方法研究[D].天津:天津理工大学,2008.
[5]宋丽华,刘方爱.基于WebService的网格服务功能的研究[J].计算机技术与发展,2009(7):59-61.
Research on grid software testing environment based on service
Wang Baocheng
(China Academy of Information and Communications Technology, Beijing 100191, China)
Abstract:Grid software testing is an important part of grid research, and it is also a very key technology. Service-oriented grid software testing is one of the key points. By using SOA, to take active and effective methods and measures, the test environment is studied from three aspects: grid service testing, grid performance testing and grid software testing implementation and management, and a suitable testing tool is developed.
Key words:SOA; grid software; test environment