基于SOA系统的软件测试平台设计和实现

智能汽车电子与软件 2022-09-29 17:00

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯

来源:智能汽车开发者平台
作者:Wang Li

摘要


基于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)用于监控不同服务之间的消息流。
图1 平台体系结构
B. 数据库设计
基于SOA的系统软件测试平台采用标准SQL数据库,匹配MySQL和SQLite数据库。它支持导入和导出XML格式的文件。表1-3是主要的数据库表。
执行 _ env _设置用于存储测试案例的运行环境信息,每条记录存储一个服务的虚拟化配置选项。
功能性_test_案例存储了原子测试案例的基本信息,包括测试案例的名称,要执行的服务,以及测试运行的环境。详细情况如下:
操作_sequence_test_case 记录测试案例的功能。它的主键是project_id。该表包含一系列的关键字,如测试用例id,测试用例名称,服务空间名称,服务名称,端口名称,操作名称和测试用例输入。
C. 测试用例生成功能
本文将测试分为三种基本类型:接口测试、功能测试和性能测试,每种测试类型对应不同的测试案例形式。接口测试主要是测试服务间接口的正确性。功能测试主要测试最小服务单元的功能正确性(如标准Web服务的操作、DDS服务中的IDL结构、REST服务中的资源等)。
性能测试通过构建测试场景来测试系统的并发性能。测试案例类型的详细描述见表4。

本文采用了联合测试的思想。根据WSDL文件中的某个操作,综合使用随机生成法、边界测试数据生成法和基于约束的测试数据生成法,并结合输入中各种因素(边界、随机性等)对应的生成方法来生成测试用例。每个测试用例包括测试用例名称、测试用例ID、对应WSDL的服务地址、对应操作的端口、输入参数、预期结果等。
随机生成法根据参数的数据类型、限制和生成量在指定范围内生成测试用例,以满足生成量。该平台从WSDL文件中提取各种类型的限定信息(XSD限制),如候选字符串的枚举值、字符串模式和数字类型的上限和下限,并通过平台界面提供给测试人员。测试人员根据测试要求进行调整后,数据将被传送到测试数据生成器,测试数据生成器将根据要求生成随机数据。
边界测试数据的生成方法是生成整数、浮点数、时间和日期、字符串、二进制数据、URL等的边界测试输入。平台首先根据测试者定义的数据范围过滤内置的边界值,并删除不在指定范围内的数据。然后,测试者给出的范围的两端(包括刚好在范围边界的数据和与范围边界略有不同的数据)被添加到候选边界值表中。在此基础上,该算法根据测试人员所需的测试数据量,从一组边界池中随机选择,得到一个大小符合测试人员要求的测试集。
基于约束条件的测试数据生成方法主要支持测试人员创建一套关于服务的约束条件描述,以表达与业务相关的数据特征,然后根据给定的约束条件描述生成测试案例。限制条件是由线性不等式和布尔公式的组合来表达的。在约束的基础上,约束组由三个运算符 “and”, “or” 或者 “not”组成。
每个原子约束都是一个线性不等式或布尔表达式。表达式由约束变量、约束常数和约束操作符组成。在获得项目的基本约束条件后,利用微软Z3 SMT约束解算器获得满足约束条件的数据组合,从而生成测试数据。具体过程如图2所示。
图2 基于约束的测试数据生成流程
首先,从项目的约束树中提取与服务操作相关的约束,形成一个约束集;将与WSDL中的约束信息相对应的约束添加到约束集;建立从服务操作输入数据到每个约束变量的相关信息和约束变量的求解结果,即这些参数的设定值;用Z3求解引擎求解约束条件;根据求解得到的约束变量值,推导出服务操作参数值;根据参数值,建立测试所需的完整测试数据。
D. 性能测试功能
对于小规模的性能测试任务,可以在一台测试器主机上完成。对于大规模的性能测试任务,一个测试器主机很难产生足够的并行压力,所以提出了测试集群的概念。一个测试集群由几个测试器组成。作为主测试代理,其中一个测试代理负责与SOATest进行交互,总结测试结果和设置测试环境。其他测试器的主要工作是启动并行的测试任务,必要时挂载RedirectProxy,拦截服务间的消息流,实现服务虚拟化。如图3所示,每个测试器通常被部署在不同的物理主机上,以使用更多的物理资源来启动测试。通过配置相应的参数,测试器可以被设置为主测试器和从测试器。每个从属测试器在启动时都会自动注册到主测试器,从而组织成一个测试集群。主测试器收到性能测试任务后,根据性能测试的相关配置,向各从测试器发出并发调用请求,并规定负载发生的时间间隔。
虚拟服务的主要功能是在性能测试环境中模拟第三方服务。因为被测试对象的性能可能会受到第三方服务的影响。为了建立一个可靠的性能测试环境,有必要对第三方服务进行模拟,这样测试人员可以很容易地控制第三方服务的质量指标。使用虚拟服务来构建测试环境,可以在可控的环境中实现性能测试活动。
该平台提供虚拟服务,通过配置虚拟服务的状态、处理成功率、访问能力、延迟等质量性能,构建性能测试环境,从而实现服务的负载和压力测试。虚拟服务的内部处理逻辑可以根据测试项目的WSDL文件随机生成输出消息内容,也可以根据测试人员设定的约束条件生成输出消息内容。该平台支持测试人员根据测试要求设置虚拟业务的质量特征:业务状态特征可设置为正常、暂停和崩溃;处理成功率设置范围为0%~100%;接入容量设置范围为1~1000000;延迟设置范围0~1000000 ms。
图3 测试集群
图4 性能测试流程
性能测试过程如图4所示。首先,主测试器将待测试的服务部署到服务容器中,并根据测试环境的配置要求创建一个虚拟服务。
然后,主测试器根据预设的性能测试负载策略划分测试任务,并将不同的负载生成要求分配给从测试器,测试器可以是主测试器也可以是从测试器。根据负载变化策略,每个测试器在不同的时间节点调用待测服务,形成性能负载。
性能测试完成后,每个测试器收集服务的各种性能指标,并将其反馈给主测试器。主测试器将向从测试器和服务容器发送控制命令,拆除已部署的待测服务和虚拟服务,并将系统恢复到其原始状态。
E. 测试案例执行功能
基于SOA的系统软件测试平台通过发送SOAP包来执行测试用例。测试任务由Service Executor实现,它被动地工作,并通过Web API向外界公开套接字。
接口接收JSON RPC 2.0标准的任务描述。收到任务后,Service Executor将任务放入任务队列。当一个测试任务被安排好后,它将从任务队列中删除执行。这种工作模式可以保证测试任务的性能,避免大量测试任务的拥堵。测试执行过程如图5所示。
图5 执行过程
第一步:由前端发送的测试任务消息被struts 2中间件拦截,并调用DoAction的消息响应类的执行()方法来处理这些消息。
第二步:DoAction层级初步解压测试任务,将解压后的任务放入任务队列,在处理完任务队列前的所有其他任务后,开始处理新提交的任务。
第三步:任务队列找到与新提交的任务方向相对应的JobHandler,并调用JobHandler的运行()方法,完成对测试任务的响应。
第四步:测试任务的结果被一步步反馈,最后通过struts中间件返回到测试前端界面。

IV.基于SOA的系统软件测试平台的应用
基于SOA的系统软件测试平台被应用于基于服务架构的通信管理平台的软件测试项目。这个平台被用来进行功能测试和性能测试。测试案例的执行结果如图6所示。左边是测试任务的列表,显示任务的名称、发生时间和类型。右边的上半部分是测试结果的统计,以饼状图的形式显示。右边的下半部分是测试结果的细节,显示每个测试案例的执行情况。
图6 功能测试的性能结果
该平台通过逐步扩大预设的执行场景,构建负载和压力过程,观察被测服务系统的性能。性能测试执行完成后,性能测试执行过程中收集的各种指标可以通过多个折线图反映出来,包括流量、平均响应时间、最大响应时间、最小响应时间和呼叫成功率,如图7和图8所示。
图7 性能测试执行结果
8 服务响应时间
在图7中,红线表示流量,蓝线表示平均响应时间,绿线表示最大响应时间,黄线表示最小响应时间,粉线表示成功率。对于性能测试,平台将收集数据,如每次调用的请求时间、调用的完成时间,以及调用是否成功。通过分析,可以形成各种图表来显示被测对象的性能,包括不同负载场景下的最大响应时间曲线、最小响应时间曲线、流量曲线和调用执行成功率曲线。所有的曲线都可以显示在图表上,使人们对性能测试有一个总体的认识,了解性能下降的关键节点。

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

关注公众号,点击公众号主页右上角“ ··· ”,设置星标,实时关注智能汽车电子与软件最新资讯



智能汽车电子与软件 专注于汽车电子领域的信息交融平台,涵盖汽车电子行业资讯、市场动态、技术干货、知识见解、行业趋势等资讯深度覆盖。
评论 (0)
  • 文/Leon编辑/cc孙聪颖‍2023年,厨电行业在相对平稳的市场环境中迎来温和复苏,看似为行业增长积蓄势能。带着对市场向好的预期,2024 年初,老板电器副董事长兼总经理任富佳为企业定下双位数增长目标。然而现实与预期相悖,过去一年,这家老牌厨电企业不仅未能达成业绩目标,曾提出的“三年再造一个老板电器”愿景,也因市场下行压力面临落空风险。作为“企二代”管理者,任富佳在掌舵企业穿越市场周期的过程中,正面临着前所未有的挑战。4月29日,老板电器(002508.SZ)发布了2024年年度报告及2025
    华尔街科技眼 2025-04-30 12:40 285浏览
  • 贞光科技代理品牌紫光国芯的车规级LPDDR4内存正成为智能驾驶舱的核心选择。在汽车电子国产化浪潮中,其产品以宽温域稳定工作能力、优异电磁兼容性和超长使用寿命赢得市场认可。紫光国芯不仅确保供应链安全可控,还提供专业本地技术支持。面向未来,紫光国芯正研发LPDDR5车规级产品,将以更高带宽、更低功耗支持汽车智能化发展。随着智能网联汽车的迅猛发展,智能驾驶舱作为人机交互的核心载体,对处理器和存储器的性能与可靠性提出了更高要求。在汽车电子国产化浪潮中,贞光科技代理品牌紫光国芯的车规级LPDDR4内存凭借
    贞光科技 2025-04-28 16:52 327浏览
  • 随着电子元器件的快速发展,导致各种常见的贴片电阻元器件也越来越小,给我们分辨也就变得越来越难,下面就由smt贴片加工厂_安徽英特丽就来告诉大家如何分辨的SMT贴片元器件。先来看看贴片电感和贴片电容的区分:(1)看颜色(黑色)——一般黑色都是贴片电感。贴片电容只有勇于精密设备中的贴片钽电容才是黑色的,其他普通贴片电容基本都不是黑色的。(2)看型号标码——贴片电感以L开头,贴片电容以C开头。从外形是圆形初步判断应为电感,测量两端电阻为零点几欧,则为电感。(3)检测——贴片电感一般阻值小,更没有“充放
    贴片加工小安 2025-04-29 14:59 329浏览
  • 你是不是也有在公共场合被偷看手机或笔电的经验呢?科技时代下,不少现代人的各式机密数据都在手机、平板或是笔电等可携式的3C产品上处理,若是经常性地需要在公共场合使用,不管是工作上的机密文件,或是重要的个人信息等,民众都有防窃防盗意识,为了避免他人窥探内容,都会选择使用「防窥保护贴片」,以防止数据外泄。现今市面上「防窥保护贴」、「防窥片」、「屏幕防窥膜」等产品就是这种目的下产物 (以下简称防窥片)!防窥片功能与常见问题解析首先,防窥片最主要的功能就是用来防止他人窥视屏幕上的隐私信息,它是利用百叶窗的
    百佳泰测试实验室 2025-04-30 13:28 509浏览
  • 文/郭楚妤编辑/cc孙聪颖‍越来越多的企业开始蚕食动力电池市场,行业“去宁王化”态势逐渐明显。随着这种趋势的加强,打开新的市场对于宁德时代而言至关重要。“我们不希望被定义为电池的制造者,而是希望把自己称作新能源产业的开拓者。”4月21日,在宁德时代举行的“超级科技日”发布会上,宁德时代掌门人曾毓群如是说。随着宁德时代核心新品骁遥双核电池的发布,其搭载的“电电增程”技术也走进业界视野。除此之外,经过近3年试水,宁德时代在换电业务上重资加码。曾毓群认为换电是一个重资产、高投入、长周期的产业,涉及的利
    华尔街科技眼 2025-04-28 21:55 206浏览
  • 一、gao效冷却与控温机制‌1、‌冷媒流动设计‌采用低压液氮(或液氦)通过毛细管路导入蒸发器,蒸汽喷射至样品腔实现快速冷却,冷却效率高(室温至80K约20分钟,至4.2K约30分钟)。通过控温仪动态调节蒸发器加热功率,结合温度传感器(如PT100铂电阻或Cernox磁场不敏感传感器),实现±0.01K的高精度温度稳定性。2、‌宽温区覆盖与扩展性‌标准温区为80K-325K,通过降压选件可将下限延伸至65K(液氮模式)或4K(液氦模式)。可选配475K高温模块,满足材料在ji端温度下的性能测试需求
    锦正茂科技 2025-04-30 13:08 404浏览
  • 网约车,真的“饱和”了?近日,网约车市场的 “饱和” 话题再度引发热议。多地陆续发布网约车风险预警,提醒从业者谨慎入局,这背后究竟隐藏着怎样的市场现状呢?从数据来看,网约车市场的“过剩”现象已愈发明显。以东莞为例,截至2024年12月底,全市网约车数量超过5.77万辆,考取网约车驾驶员证的人数更是超过13.48万人。随着司机数量的不断攀升,订单量却未能同步增长,导致单车日均接单量和营收双双下降。2024年下半年,东莞网约出租车单车日均订单量约10.5单,而单车日均营收也不容乐
    用户1742991715177 2025-04-29 18:28 293浏览
  • 4月22日下午,备受瞩目的飞凌嵌入式「2025嵌入式及边缘AI技术论坛」在深圳深铁皇冠假日酒店盛大举行,此次活动邀请到了200余位嵌入式技术领域的技术专家、企业代表和工程师用户,共享嵌入式及边缘AI技术的盛宴!1、精彩纷呈的展区产品及方案展区是本场活动的第一场重头戏,从硬件产品到软件系统,从企业级应用到高校教学应用,都吸引了现场来宾的驻足观看和交流讨论。全产品矩阵展区展示了飞凌嵌入式丰富的产品线,从嵌入式板卡到工控机,从进口芯片平台到全国产平台,无不体现出飞凌嵌入式在嵌入式主控设备研发设计方面的
    飞凌嵌入式 2025-04-28 14:43 181浏览
  • 浪潮之上:智能时代的觉醒    近日参加了一场课题的答辩,这是医疗人工智能揭榜挂帅的国家项目的地区考场,参与者众多,围绕着医疗健康的主题,八仙过海各显神通,百花齐放。   中国大地正在发生着激动人心的场景:深圳前海深港人工智能算力中心高速运转的液冷服务器,武汉马路上自动驾驶出租车穿行的智慧道路,机器人参与北京的马拉松竞赛。从中央到地方,人工智能相关政策和消息如雨后春笋般不断出台,数字中国的建设图景正在智能浪潮中徐徐展开,战略布局如同围棋
    广州铁金刚 2025-04-30 15:24 270浏览
  • 在智能硬件设备趋向微型化的背景下,语音芯片方案厂商针对小体积设备开发了多款超小型语音芯片方案,其中WTV系列和WT2003H系列凭借其QFN封装设计、高性能与高集成度,成为微型设备语音方案的理想选择。以下从封装特性、功能优势及典型应用场景三个方面进行详细介绍。一、超小体积封装:QFN技术的核心优势WTV系列与WT2003H系列均提供QFN封装(如QFN32,尺寸为4×4mm),这种封装形式具有以下特点:体积紧凑:QFN封装通过减少引脚间距和优化内部结构,显著缩小芯片体积,适用于智能门铃、穿戴设备
    广州唯创电子 2025-04-30 09:02 332浏览
  • 在CAN总线分析软件领域,当CANoe不再是唯一选择时,虹科PCAN-Explorer 6软件成为了一个有竞争力的解决方案。在现代工业控制和汽车领域,CAN总线分析软件的重要性不言而喻。随着技术的进步和市场需求的多样化,单一的解决方案已无法满足所有用户的需求。正是在这样的背景下,虹科PCAN-Explorer 6软件以其独特的模块化设计和灵活的功能扩展,为CAN总线分析领域带来了新的选择和可能性。本文将深入探讨虹科PCAN-Explorer 6软件如何以其创新的模块化插件策略,提供定制化的功能选
    虹科汽车智能互联 2025-04-28 16:00 231浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦