0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SOA的系统软件测试平台需求分析

倩倩 来源:阿宝1990 作者:阿宝1990 2022-09-23 10:57 次阅读

基于SOA的系统软件所具有的服务性、粗粒度、松耦合等特点,不仅提高了企业平台架构的灵活性,也给软件测试带来新的挑战。根据基于SOA的软件测试的要求,本文研究了测试用例的生成和执行以及性能测试的方法,设计并实现了一个基于SOA的系统软件测试平台,该平台能够满足基于SOA的系统功能测试和性能测试的要求。该平台提高了测试的自动化程度,并为基于SOA的系统软件测试提供了实用的工具支持。

I.简介

面向服务的体系结构(SOA)指的是围绕XML及其消息建立的框架,具有一些消息编码过程的标准,规定了协议语法和服务实例的位置。这些可以通过简单对象访问协议(SOAP)、网络服务描述语言(WSDL)、通用描述发现和集成(UDDI)的规范分别进行。SOA提供了通信的互操作性,服务的可重用性和兼容性,以及客户端和服务器之间的松散耦合。SOA的这些吸引人的特点加剧了系统分布、可观察性和可控制性问题。这也使得测试更加困难。巨大且异构的基于SOA的系统加剧了在可控性、可观察性和分布方面的挑战。测试用例的设计、生成和执行需要根据被测对象的WSDL、UDDI和BPEL文档来进行。由于缺乏关于系统的相关知识,定义这样的测试用例对测试人员来说是很困难的。性能测试也需要负载生成工具来协助测试人员在不同的服务负载下测试服务调用。传统的测试方法和工具已经不能满足基于面向服务架构的系统软件测试的要求。根据面向服务的软件架构的特点,设计并实现了一个基于SOA的软件测试平台。该平台可以为使用服务架构的系统软件功能测试提供用例生成和执行手段,为性能测试提供灵活可调的负载生成手段,满足基于SOA系统的软件测试要求。

II.基于SOA的系统软件测试平台需求分析

为了实现基于SOA的系统软件测试平台的通用化,本文从软件测试的适用性和有效性角度分析了测试平台的主要功能需求。

A. 自动测试用例生成功能

自动测试用例生成在网络服务的自动测试中起着关键作用[9]。自动测试用例生成需要通过分析WSDL来生成正常、异常和边界测试用例。本文采用组合测试思想,综合运用随机生成法、边界测试数据生成法和基于约束的测试数据生成法。测试用例以XML的形式保存,可分为界面测试和功能测试。接口测试只检测测试用例是否能成功执行,但不检查测试结果是否正确。功能测试可以设置预期的测试结果并验证结果。

B. 性能测试功能

性能测试功能需要为测试人员提供负载测试工具,并支持负载参数的灵活设置,包括流量、最大响应时间、最小响应时间、平均响应时间、呼叫成功率等参数。

C. 测试用例执行功能

测试执行需要根据服务传输协议的格式来打包和发送测试用例,并分析服务返回的消息。功能测试需要提供比较测试结果的功能,为测试人员提供预期结果的输入方式,并将预期结果与执行结果进行比较。此外,它还支持测试结果的图文显示。

III.基于SOA的系统软件测试平台设计方案

A. 平台架构设计

基于SOA的系统软件测试平台分为三个主要模块:前端程序(SOATest)、测试执行程序(ServiceExecutor)和服务部署容器(SvcHost),如图1所示。SOA测试负责生成和执行测试案例以及性能测试功能。它为测试人员提供了一个编辑和检查测试用例及其执行的接口。测试用例被存储在数据库中。当测试项目需要被执行时,相关的测试配置将被发送到测试执行器,测试执行器可以安排执行。服务执行器执行测试用例,建立测试环境并管理服务容器组。服务执行器从测试用例设计者那里接收测试任务,根据指定的测试任务生成测试消息,如SOAP消息,并将这些消息发送至目标服务器进行测试。同时,在测试任务执行器上将维护一个服务容器列表,这将有利于服务的部署和控制服务的性能。SvcHost的功能是发布要测试的服务并监控服务的运行。黄页服务器(UDDI Server)用于发布服务信息,服务发布者可以在黄页中注册服务信息,方便检索和使用。代理转发网关(RedirectProxy)用于监控不同服务之间的消息流。

567e6b1e-3adc-11ed-9e49-dac502259ad0.png

图1 平台体系结构

B. 数据库设计

基于SOA的系统软件测试平台采用标准SQL数据库,匹配MySQL和SQLite数据库。它支持导入和导出XML格式的文件。表1-3是主要的数据库表。

执行 _ env _设置用于存储测试案例的运行环境信息,每条记录存储一个服务的虚拟化配置选项。

功能性_test_案例存储了原子测试案例的基本信息,包括测试案例的名称,要执行的服务,以及测试运行的环境。详细情况如下:

56b90e4a-3adc-11ed-9e49-dac502259ad0.png

操作_sequence_test_case 记录测试案例的功能。它的主键是project_id。该表包含一系列的关键字,如测试用例id,测试用例名称,服务空间名称,服务名称,端口名称,操作名称和测试用例输入。

56fc1a0a-3adc-11ed-9e49-dac502259ad0.png

C. 测试用例生成功能

本文将测试分为三种基本类型:接口测试、功能测试和性能测试,每种测试类型对应不同的测试案例形式。接口测试主要是测试服务间接口的正确性。功能测试主要测试最小服务单元的功能正确性(如标准Web服务的操作、DDS服务中的IDL结构、REST服务中的资源等)。

性能测试通过构建测试场景来测试系统的并发性能。测试案例类型的详细描述见表4。

5747d472-3adc-11ed-9e49-dac502259ad0.png

57dbb106-3adc-11ed-9e49-dac502259ad0.png

本文采用了联合测试的思想。根据WSDL文件中的某个操作,综合使用随机生成法、边界测试数据生成法和基于约束的测试数据生成法,并结合输入中各种因素(边界、随机性等)对应的生成方法来生成测试用例。每个测试用例包括测试用例名称、测试用例ID、对应WSDL的服务地址、对应操作的端口、输入参数、预期结果等。

随机生成法根据参数的数据类型、限制和生成量在指定范围内生成测试用例,以满足生成量。该平台从WSDL文件中提取各种类型的限定信息(XSD限制),如候选字符串的枚举值、字符串模式和数字类型的上限和下限,并通过平台界面提供给测试人员。测试人员根据测试要求进行调整后,数据将被传送到测试数据生成器,测试数据生成器将根据要求生成随机数据。

边界测试数据的生成方法是生成整数、浮点数、时间和日期、字符串、二进制数据、URL等的边界测试输入。平台首先根据测试者定义的数据范围过滤内置的边界值,并删除不在指定范围内的数据。然后,测试者给出的范围的两端(包括刚好在范围边界的数据和与范围边界略有不同的数据)被添加到候选边界值表中。在此基础上,该算法根据测试人员所需的测试数据量,从一组边界池中随机选择,得到一个大小符合测试人员要求的测试集。

基于约束条件的测试数据生成方法主要支持测试人员创建一套关于服务的约束条件描述,以表达与业务相关的数据特征,然后根据给定的约束条件描述生成测试案例。限制条件是由线性不等式和布尔公式的组合来表达的。在约束的基础上,约束组由三个运算符 “and”, “or” 或者 “not”组成。

每个原子约束都是一个线性不等式或布尔表达式。表达式由约束变量、约束常数和约束操作符组成。在获得项目的基本约束条件后,利用微软Z3 SMT约束解算器获得满足约束条件的数据组合,从而生成测试数据。具体过程如图2所示。

5839dd76-3adc-11ed-9e49-dac502259ad0.png

图2 基于约束的测试数据生成流程

首先,从项目的约束树中提取与服务操作相关的约束,形成一个约束集;将与WSDL中的约束信息相对应的约束添加到约束集;建立从服务操作输入数据到每个约束变量的相关信息和约束变量的求解结果,即这些参数的设定值;用Z3求解引擎求解约束条件;根据求解得到的约束变量值,推导出服务操作参数值;根据参数值,建立测试所需的完整测试数据。

D. 性能测试功能

对于小规模的性能测试任务,可以在一台测试器主机上完成。对于大规模的性能测试任务,一个测试器主机很难产生足够的并行压力,所以提出了测试集群的概念。一个测试集群由几个测试器组成。作为主测试代理,其中一个测试代理负责与SOATest进行交互,总结测试结果和设置测试环境。其他测试器的主要工作是启动并行的测试任务,必要时挂载RedirectProxy,拦截服务间的消息流,实现服务虚拟化。如图3所示,每个测试器通常被部署在不同的物理主机上,以使用更多的物理资源来启动测试。通过配置相应的参数,测试器可以被设置为主测试器和从测试器。每个从属测试器在启动时都会自动注册到主测试器,从而组织成一个测试集群。主测试器收到性能测试任务后,根据性能测试的相关配置,向各从测试器发出并发调用请求,并规定负载发生的时间间隔。

虚拟服务的主要功能是在性能测试环境中模拟第三方服务。因为被测试对象的性能可能会受到第三方服务的影响。为了建立一个可靠的性能测试环境,有必要对第三方服务进行模拟,这样测试人员可以很容易地控制第三方服务的质量指标。使用虚拟服务来构建测试环境,可以在可控的环境中实现性能测试活动。

该平台提供虚拟服务,通过配置虚拟服务的状态、处理成功率、访问能力、延迟等质量性能,构建性能测试环境,从而实现服务的负载和压力测试。虚拟服务的内部处理逻辑可以根据测试项目的WSDL文件随机生成输出消息内容,也可以根据测试人员设定的约束条件生成输出消息内容。该平台支持测试人员根据测试要求设置虚拟业务的质量特征:业务状态特征可设置为正常、暂停和崩溃;处理成功率设置范围为0%~100%;接入容量设置范围为1~1000000;延迟设置范围0~1000000 ms。

586ffe1a-3adc-11ed-9e49-dac502259ad0.png

图3 测试集群

58b66986-3adc-11ed-9e49-dac502259ad0.png

图4 性能测试流程

性能测试过程如图4所示。首先,主测试器将待测试的服务部署到服务容器中,并根据测试环境的配置要求创建一个虚拟服务。

然后,主测试器根据预设的性能测试负载策略划分测试任务,并将不同的负载生成要求分配给从测试器,测试器可以是主测试器也可以是从测试器。根据负载变化策略,每个测试器在不同的时间节点调用待测服务,形成性能负载。

性能测试完成后,每个测试器收集服务的各种性能指标,并将其反馈给主测试器。主测试器将向从测试器和服务容器发送控制命令,拆除已部署的待测服务和虚拟服务,并将系统恢复到其原始状态。

E. 测试案例执行功能

基于SOA的系统软件测试平台通过发送SOAP包来执行测试用例。测试任务由Service Executor实现,它被动地工作,并通过Web API向外界公开套接字。

接口接收JSON RPC 2.0标准的任务描述。收到任务后,Service Executor将任务放入任务队列。当一个测试任务被安排好后,它将从任务队列中删除执行。这种工作模式可以保证测试任务的性能,避免大量测试任务的拥堵。测试执行过程如图5所示。

58e2bcca-3adc-11ed-9e49-dac502259ad0.png

图5 执行过程

第一步:由前端发送的测试任务消息被struts 2中间件拦截,并调用DoAction的消息响应类的执行()方法来处理这些消息。

第二步:DoAction层级初步解压测试任务,将解压后的任务放入任务队列,在处理完任务队列前的所有其他任务后,开始处理新提交的任务。

第三步:任务队列找到与新提交的任务方向相对应的JobHandler,并调用JobHandler的运行()方法,完成对测试任务的响应。

第四步:测试任务的结果被一步步反馈,最后通过struts中间件返回到测试前端界面。

IV.基于SOA的系统软件测试平台的应用

基于SOA的系统软件测试平台被应用于基于服务架构的通信管理平台的软件测试项目。这个平台被用来进行功能测试和性能测试。测试案例的执行结果如图6所示。左边是测试任务的列表,显示任务的名称、发生时间和类型。右边的上半部分是测试结果的统计,以饼状图的形式显示。右边的下半部分是测试结果的细节,显示每个测试案例的执行情况。

591c2c6c-3adc-11ed-9e49-dac502259ad0.png

图6 功能测试的性能结果

该平台通过逐步扩大预设的执行场景,构建负载和压力过程,观察被测服务系统的性能。性能测试执行完成后,性能测试执行过程中收集的各种指标可以通过多个折线图反映出来,包括流量、平均响应时间、最大响应时间、最小响应时间和呼叫成功率,如图7和图8所示。

5b6473ee-3adc-11ed-9e49-dac502259ad0.png

图7 性能测试执行结果

5badaffa-3adc-11ed-9e49-dac502259ad0.png

图8 服务响应时间

在图7中,红线表示流量,蓝线表示平均响应时间,绿线表示最大响应时间,黄线表示最小响应时间,粉线表示成功率。对于性能测试,平台将收集数据,如每次调用的请求时间、调用的完成时间,以及调用是否成功。通过分析,可以形成各种图表来显示被测对象的性能,包括不同负载场景下的最大响应时间曲线、最小响应时间曲线、流量曲线和调用执行成功率曲线。所有的曲线都可以显示在图表上,使人们对性能测试有一个总体的认识,了解性能下降的关键节点。

V.总结

根据面向服务、粗粒度、松耦合的特点,本文设计并实现了基于SOA的系统软件测试平台,为功能测试提供测试用例生成和执行手段,为性能测试提供灵活可调的负载生成手段。实例表明,该平台对于基于SOA的系统软件测试具有良好的稳定性、灵活性和通用性。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3590

    浏览量

    63365
  • SOA
    SOA
    +关注

    关注

    1

    文章

    270

    浏览量

    27219
  • 软件测试
    +关注

    关注

    2

    文章

    207

    浏览量

    18381

原文标题:基于SOA系统的软件测试平台设计和实现

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    soa光放大器原理 soa光放大器增益测试

    光通信技术作为目前最主流的信息传输方式之一,在信息传输效率、速度和距离上具备着巨大的优势。光放大器作为光通信系统中的关键组件之一,扮演着信号放大的重要角色。本文将详细介绍半导体光放大器(SOA
    的头像 发表于 01-25 09:48 986次阅读

    edr系统软件有什么用 EDR系统与传统杀毒软件有什么区别

    能够实时监测和检测终端设备上的恶意活动,包括恶意软件的启动、数据泄露和异常行为等。通过全面分析终端设备的活动记录、网络流量和系统日志等数据,EDR系统软件可以实时发现和应对安全威胁。
    的头像 发表于 01-19 10:15 1710次阅读

    区块链系统软件开发与应用

    区块链技术是近年来备受瞩目的创新技术,被广泛应用于金融、供应链管理、物联网等领域。区块链系统软件开发是实现区块链应用的关键,它不仅需要掌握区块链的基本原理,还需要具备良好的软件开发能力和项目管理经验
    的头像 发表于 01-10 18:18 955次阅读

    soa光放大器增益测试

    结附近产生复合发光,进而增强光信号的强度。SOA光放大器具有宽带宽、高增益、低噪声等特点,因此在光通信和光网络中有广泛的应用。 为了确保SOA光放大器的质量和性能,需要进行增益测试。增益测试
    的头像 发表于 01-10 13:38 248次阅读

    软件测试需求有哪些

    软件测试需求有哪些
    的头像 发表于 12-28 10:46 311次阅读

    浪潮信息澎湃认证:浪潮信息集中式存储携手仪电云i-stack云操作系统软件完成兼容性认证

    近日, 仪电云i-stack云操作系统软件与浪潮信息集中式存储AS/HF系列产品完成并通过浪潮信息澎湃技术相互兼容性测试认证, 测试结果显示,仪电云i-stack云操作系统软件与浪潮信
    的头像 发表于 12-08 16:40 329次阅读
    浪潮信息澎湃认证:浪潮信息集中式存储携手仪电云i-stack云操作<b class='flag-5'>系统软件</b>完成兼容性认证

    城市防涝管理系统软件

    城市防涝管理系统软件是一个集多种业务于一体的平台软件,可以实时监测积水、降雨量等信息,并提供智能预警和报警通知等功能。此外,该软件还具有设备管理、视频管理、用户管理等功能,可实现城市数
    的头像 发表于 11-10 14:22 250次阅读
    城市防涝管理<b class='flag-5'>系统软件</b>

    仿真系统软件的架构是什么样的啊

    智慧华盛恒辉仿真软件的架构可以根据不同的仿真应用场景和需求而有所不同,但一般来说,以下是一些常见的仿真软件架构: 前向仿真架构:前向仿真是一种基于模型的仿真方法,它通过建立系统模型来模
    的头像 发表于 10-16 17:02 397次阅读

    仿真系统软件的架构是什么呢?

    的实际硬件环境以后,由于与嵌入式系统平台和底层程序融为一体,对系统进行黑盒测试时,错误定位将变得非常困难。 智慧华盛恒辉仿真系统任何
    的头像 发表于 10-13 17:19 303次阅读

    基于Qt和ARM的无线点菜系统软件设计

    电子发烧友网站提供《基于Qt和ARM的无线点菜系统软件设计.pdf》资料免费下载
    发表于 10-13 10:12 0次下载
    基于Qt和ARM的无线点菜<b class='flag-5'>系统软件</b>设计

    DC-DC电源测试系统软件之负载调整率自动化测试

    电源模块的负载调整率测试是属于功能测试中的一种,它是电源模块中非常重要的一项指标,可以直观的反应当负载电流变化时,电源模块的输出电压的变化情况。而电源模块的主要功能就是稳压,所以负载调整率的大小直接影响着电源模块的整体质量。今天带你了解DC-DC电源
    的头像 发表于 09-20 16:13 726次阅读
    DC-DC电源<b class='flag-5'>测试</b><b class='flag-5'>系统软件</b>之负载调整率自动化<b class='flag-5'>测试</b>

    效能分析评估仿真系统软件解决方案

    效能分析评估仿真系统软件解决方案 智慧华盛恒辉效能分析评估仿真系统指对某种事物或系统执行某一项任务结果或者进程的质量好坏、作用大小、自身状态
    的头像 发表于 09-15 17:29 299次阅读

    自动驾驶领域的SOA软件架构设计应用分析

    面向服务的体系架构(Service-Oriented Architecture, SOA)因具有基于标准、松耦合性、互操作性等优势,更加贴近智能网联化时代车载系统软件架构的要求,从而被汽车行业广泛采用。
    发表于 06-08 09:44 599次阅读
    自动驾驶领域的<b class='flag-5'>SOA</b><b class='flag-5'>软件</b>架构设计应用<b class='flag-5'>分析</b>

    智能电表管理系统软件

    智能电表管理系统 智能电表管理系统采用B/S架构的Saa云平台,客户端不需要安装软件,只需要一个浏览器就可以使用,支持各大主流浏览器。软件
    发表于 05-18 13:47 922次阅读

    软件验收测试系统测试的区别点

    软件验收测试系统测试软件测试过程中的两个阶段。验收测试
    的头像 发表于 05-06 21:32 530次阅读