基于web服务的自动化测试装置及方法

文档序号:8001025阅读:826来源:国知局
专利名称:基于web服务的自动化测试装置及方法
技术领域
本发明涉及网络测试领域,尤其涉及一种基于web服务的自动化测试装置及其方法。
背景技术
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保障的关键步骤。其定义可简略概括为:为了发现错误而运行程序的过程。随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一。作为保证软件质量和可靠性的手段,软件测试起着不可替代的作用。随着信息化的发展和技术的进步,信息化软件的架构也由C/S结构发展到了现在的B/S架构,如今信息化软件的主流正是通过Internet访问,基于Web的应用程序。和以往的软件相比,基于Web的信息化软件有着不同于以往软件的特点:I)集中包括数据库集中,信息系统管理集中,业务管理集约化。2)大分布按照地域广泛分布,这与“集中”的特点是对立统一的。3)大量包括数据量大,业务量大。正是由于以上的特点,基于Web的信息化软件相比传统软件,带来了非常大的优越性,但同时也带来了很多挑战,这是因为基于Web的信息系统的大分布,决定了 Web服务器要同时接受大量的数据请求。这样一旦Web服务器瘫痪即将造成巨大的损失。这就对Web系统的性能提出了要求,要求产品在上线前必须接受严格的性能测试。

发明内容
基于上述技术问题,本发明主要针对基于Web的性能测试,对自动化测试脚本进行设计、录制和完善,提出了一套新颖的基于web服务的自动化测试装置及其方法。一方面,本发明提出了 一种基于web服务的自动化测试装置,包括,客户端,搭载各种web服务的管理服务器和网络性能测试软件,在其基础上搭建的虚拟测试环境,所述虚拟测试环境包括:虚拟指令创建模块,用于向客户端发送创建虚拟用户和系统负载指令;控制运行模块,用于组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本;分析模块,保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。所述虚拟用户模拟真实用户的客户端业务操作行为。所述控制运行模块根据所述系统负载的业务流程和所设定的虚拟用户数量生成所述测试脚本。所述控制运行模块在生成测试脚本时在所述测试脚本中插入事务,以便在所述分析模块进行分析时查看到该事务的响应时间。所述控制运行模块在生成测试脚本时在该测试脚本中插入一集合点。
在运行该测试脚本时,在所述集合点处使多个虚拟用户执行同一操作,以提高并发程度。另一方面,本发明还提出一种基于web服务的自动化测试装置,包括:A.向客户端发送创建虚拟用户和系统负载指令;B.组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本;C.保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。本发明提出了一种基于web服务的自动化测试装置及其方法,客户端,搭载各种web服务的管理服务器和网络性能测试软件,在其基础上搭建的虚拟测试环境,所述虚拟测试环境包括虚拟指令创建模块,用于向客户端发送创建虚拟用户和系统负载指令;控制运行模块,用于组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本;分析模块,保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。本发明可以缩短软件开发的测试周期、进度快、测试效率高且充分利用硬件资源。


图1示意性地示出了根据本发明的基于web服务的自动化测试装置的系统结构图。图2示意性地示出了根据本发明的自动化web性能方法的流程图。
具体实施例方式以下结合附图详细描述本发明的技术方案。现有技术的软件测试至少存在以下的局限性:A、无法覆盖所有代码路径,功能性测试用例在每轮测试中都是必不可少的,具有一定的机械性、重复性。B、一些与时序、死锁、资源冲突、多线程相关的错误,手工测试很难捕捉。C、进行系统负载、性能测试时,一些模拟大量数据或大量并发用户等各种场合很难用手工进行测试。D、进行系统可靠性测试,需要模拟系统运行多久时间的时候能稳定运行,这些都是手工测试很难进行的。E、手工测试速度相对比较慢,如果一天进行几百个测试用例,在一天内用手工进行测试很难完成。相对地,本发明的自动化测试装置至少具备以下优势:A、缩短软件开发的测试周期,进度快。B、测试效率高(充分利用硬件资源)。C、节省人力资源,降低测试成本。D、增强测试的稳定性、可靠性,提高测试的准确度和精确度,增加软件信任度。E、使用测试工具相对比较容易,能提高测试结果。F、能进行负载、性能测试,这些手工都无法完成。当然,在实际工作中要确保能用自动化测试的事情决不用手工测试,同时要做到适合手工测试的内容决不要花费高昂的成本做自动化测试。另外,不要因为某方面不能自动化测试而不做测试。本发明的自动测试装置尤其适合于单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等。图1示意性地示出了根据本发明的基于web服务的自动化测试装置的系统结构图。如图所示,本发明的基于web服务的自动化测试装置100包括包括,客户端,搭载各种web服务的管理服务器和网络性能测试软件,其特征在于,在其基础上搭建的虚拟测试环境。所述虚拟测试环境包括用于创建虚拟用户和系统负载的虚拟指令创建模块101 ;用于组织虚拟指令创建模块101所创建的系统负载、设定虚拟用户数量并生成和运行测试脚本的控制运行模块102 ;以及保存运行测试脚本的所有数据并对所得到的数据进行分析的分析模块103。通过虚拟指令创建模块101,用户可简便创建起虚拟用户和系统负载。该虚拟指令创建模块101能生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。后续的组件将其转化为测试脚本。控制运行模块102根据系统负载的业务流程和所设定的虚拟用户数量生成所述测试脚本。例如,通过控制运行模块102,测试人员可以快速地组织起多用户的测试方案(负载方案、业务流程组合与虚拟用户数量),使测试过程自动化。同时,控制运行模块102也可以用来限定负载方案。此外,控制运行模块102还可以在生成测试脚本时在测试脚本中插入事务,以便在分析模块103进行分析时查看到该事务的响应时间。或者,控制运行模块102也可以在生成测试脚本时在该测试脚本中插入一集合点。在运行该测试脚本时,在集合点处使多个虚拟用户执行同一操作,以提高并发程度。此外,控制运行模块102还可以为测试脚本设定迭代次数。控制运行模块102使用虚拟指令创建模块101生成的脚本对目标软件进行模拟场景测试,场景运行后,所有的数据将由分析模块103保留并对所得的数据进行分析。图2示意性地示出了根据本发明的自动化web性能测试方法的流程图。如图2所示,本发明的自动化web性能测试方法包括向客户端发送创建虚拟用户和系统负载指令201 ;组织所述虚拟指令创建模块所创建的系统负载202,设定虚拟用户数量,并生成和运行测试脚本;保存运行所述测试脚本的所有数据,并对所得到的数据进行分析203。在创建测试脚本时,用户可以选择适当的协议,web服务器一般选择http协议。录制方式一般选择基于HTML的脚本,但有下列情况选择基于URL的脚本。不是基于浏览器的应用程序,应用程序中包含JavaScript脚本且产生了请求,基于浏览器的应用程序使用了https协议。在录制过程中不要后退页面。如果想测定某个操作的响应时间,可以在脚本中插入事务,使用事务把该操作包装起来。分析执行结果的时候可以查看到该事务的响应时间。此外,在该步骤201中还可以插入集合点,以使多个用户并发进行同一操作,提高操作的并发程度,以对服务器增加负载,测试并发能力。此外,用户还可以设置网络带宽以模拟不同带宽的网络,设置迭代次数。此外,该步骤还包括对脚本进行参数化,设置参数变更方式,以及关联脚本。在部署测试场景并运行测试脚本时,部署测试场景主要包含:选择脚本,设定执行用户数,选择测试负载机,设置脚本执行的方式,设置集合点点,设置运行时间设定。如果要模拟的用户数比较多,应该设置多台测试负载机,一般主流的PC机至少能模拟100个用户对服务器的访问。此外,设置脚本的执行方式包括设置用户的启动方式和设置用户的终止方式。此外,该步骤还可以设置集合点,并可以设置用户通过集合点的方式。当浏览web页面较大时,在测试的时候可能出现超时(timeout)错误。针对该问题,可以适当修正超时数值。此外,还可以设置IP欺骗。如果服务器对用户的IP有限制(安全原因),则需要启用IP欺骗。设置IP欺骗应该注意:1)测试负载机应该使用静态IP ;2)在选择测试负载机之前开启IP欺骗开关。此外,还可以设置服务器监控计数器。包含:内存,CPU,线程,进程,网络,磁盘。在分析测试结果时,可以查看分析结果、查看事务的响应时间、服务器的平均吞吐量,执行用户人数等。此外,还可以查看线程图,用户变化图,响应时间图,吞吐量图;查看服务器监控的计数器图;分析各个性能指标是否符合需求,比如:可用内存曲线是否正常,是否存在内存泄漏;CPU利用率曲线是否平缓,平均利用率是否低于90% ;线程数是否正常,而不是一直在增长;网络带宽是否满足流量需求;磁盘是否满足用户操作要求等等;分析各个曲线图是否存在异常情况,比如:响应时间是否满足需求;系统是否支持要求的并发;随着负载的增加,吞吐量是否同样增加,吞吐量是否存在瓶颈等等。有时候分析单个要素并不能反映存在的问题,需要多个要素联系起来进行分析。t匕如,可以把用户数的变化图和吞吐量图联系起来进行分析。本发明的装置支持把两个表合并进行分析,把用户数变化图和吞吐量变化图合并,就可以观察吞吐量是否随着用户数的变化而相应时间。如果随着用户数的增加,吞吐量持平或者下降,说明此时系统吞吐量达到了最大值,系统达到了瓶颈。
权利要求
1.一种基于web服务的自动化测试装置,包括,客户端,搭载各种web服务的管理服务器和网络性能测试软件,其特征在于,在其基础上搭建的虚拟测试环境,所述虚拟测试环境包括: 虚拟指令创建模块,用于向客户端发送创建虚拟用户和系统负载指令; 控制运行模块,用于组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本; 分析模块,保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。
2.如权利要求1所述的自动化测试装置,其特征在于,所述虚拟用户模拟真实用户的客户端业务操作行为。
3.如权利要求1所述的自动化测试装置,其特征在于,所述控制运行模块根据所述系统负载的业务流程和所设定的虚拟用户数量生成所述测试脚本。
4.如权利要求1所述的自动化测试装置,其特征在于,所述控制运行模块在生成测试脚本时在所述测试脚本中插入事务,以便在所述分析模块进行分析时查看到该事务的响应时间。
5.如权利要求1所述的自动化测试装置,其特征在于,所述控制运行模块在生成测试脚本时在该测试脚本中插入一集合点。
6.如权利要求5所述的自动化测试装置,其特征在于,在运行该测试脚本时,在所述集合点处使多个虚拟用户执行同一操作,以提高并发程度。
7.一种基于web服务的自动化测试装置,其特征在于,包括: A.向客户端发送创建虚拟用户和系统负载指令; B.组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本; C.保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。
全文摘要
本发明提出了一种基于web服务的自动化测试装置及其方法,该装置包括虚拟指令创建模块,用于创建虚拟用户和系统负载;控制运行模块,用于组织所述虚拟指令创建模块所创建的系统负载,设定虚拟用户数量,并生成和运行测试脚本;分析模块,保存运行所述测试脚本的所有数据,并对所得到的数据进行分析。本发明可以缩短软件开发的测试周期、进度快、测试效率高且充分利用硬件资源。
文档编号H04L12/26GK103139006SQ201110398680
公开日2013年6月5日 申请日期2011年12月5日 优先权日2011年12月5日
发明者蒋志勇 申请人:上海博腾信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1