CN102567186A - 一种自动化软件测试方法 - Google Patents
一种自动化软件测试方法 Download PDFInfo
- Publication number
- CN102567186A CN102567186A CN2010105794502A CN201010579450A CN102567186A CN 102567186 A CN102567186 A CN 102567186A CN 2010105794502 A CN2010105794502 A CN 2010105794502A CN 201010579450 A CN201010579450 A CN 201010579450A CN 102567186 A CN102567186 A CN 102567186A
- Authority
- CN
- China
- Prior art keywords
- test
- script
- testing method
- software testing
- automation software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提出了一种自动化软件测试方法,该方法包括:创建测试脚本;部署测试场景并运行测试脚本;以及分析测试结果。本发明可以缩短软件开发的测试周期,提高测试效率,节省人力资源,降低测试成本。
Description
技术领域
本发明涉及软件测试领域,尤其涉及一种自动化软件测试方法。
背景技术
随着计算机软件的规模越来越大,软件测试成为了软件质量保障的关键环节,软件测试自动化的发展也成为了软件测试领域所无法逾越的发展阶段。
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保障的关键步骤。其定义可简略概括为:为了发现错误而运行程序的过程。随着软件规模的不断扩大,软件质量问题已成为制约计算机发展的主要因素之一。作为保证软件质量和可靠性的手段,软件测试起着不可替代的作用。
随着信息化的发展和技术的进步,信息化软件的架构也由C/S结构发展到了现在的B/S架构,如今信息化软件的主流正是通过Internet访问,基于Web的应用程序。
和以往的软件相比,基于Web的信息化软件有着不同于以往软件的特点:
1)集中包括数据库集中,信息系统管理集中,业务管理集约化。
2)大分布按照地域广泛分布,这与“集中”的特点是对立统一的。
3)大量包括数据量大,业务量大。
正是由于以上的特点,基于Web的信息化软件相比传统软件,带来了非常大的优越性,但同时也带来了很多挑战,这是因为基于Web的信息系统的大分布,决定了Web服务器要同时接受大量的数据请求。这样一旦Web服务器瘫痪即将造成巨大的损失。这就对Web系统的性能提出了要求,要求产品在上线前必须接受严格的性能测试。
发明内容
有鉴于此,本发明主要针对基于Web的性能测试,对自动化测试脚本进行设计、录制和完善,提出了一套新颖的自动化软件测试方法。
具体地,本发明提出了一种自动化软件测试方法,该方法包括:创建测试脚本;部署测试场景并运行测试脚本;以及分析测试结果。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述创建测试脚本的步骤进一步包括:
选择协议;
选择基于HTML的脚本;以及
在脚本中插入事务,以便在所述分析测试结果的步骤中查看到该事务的响应时间。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述创建测试脚本的步骤进一步包括:
在所述测试脚本中插入集合点,以使在所述集合处多个虚拟用户并发进行同一操作,以提高操作的并发程度。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述创建测试脚本的步骤进一步包括:
设置网络带宽以模拟不同带宽的网络;以及
设置所述测试脚本的迭代次数。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述创建部署测试场景并运行测试脚本的步骤进一步包括:
设置测试负载机的数量,
设置脚本的执行方式:
修正超时数值;以及
设置IP欺骗。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述设置脚本的执行方式的步骤包括:
设置用户的启动方式;以及
设置用户的终止方式
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述设置IP欺骗的步骤进一步包括:
将测试负载机设定为使用静态IP。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述分析测试结果的步骤进一步包括:
查看事务的响应时间、服务器的平均吞吐量和执行用户人数;
分析有关性能指标是否符合需求。
根据本发明的一个优选实施例,在上述自动化软件测试方法中,所述分析有关性能指标是否符合需求的步骤包括:
分析可用内存曲线是否正常;
分析是否存在内存泄漏;
分析CPU利用率曲线是否平缓,且平均利用率是否低于90%;以及
分析网络带宽是否满足流量要求。
应当理解,本发明以上的一般性描述和以下的详细描述都是示例性和说明性的,并且旨在为如权利要求所述的本发明提供进一步的解释。
附图说明
附图主要是用于提供对本发明进一步的理解。附图示出了本发明的实施例,并与本说明书一起起到解释本发明原理的作用。附图中:
图1示意性地示出了根据本发明的用于软件测试的自动化测试装置的结构图。
图2示意性地示出了根据本发明的自动化软件测试方法的流程图。
具体实施方式
以下结合附图详细描述本发明的技术方案。
现有技术的手工测试至少存在以下的局限性:
A、无法覆盖所有代码路径,功能性测试用例在每轮测试中都是必不可少的,具有一定的机械性、重复性。
B、一些与时序、死锁、资源冲突、多线程相关的错误,手工测试很难捕捉。
C、进行系统负载、性能测试时,一些模拟大量数据或大量并发用户等各种场合很难用手工进行测试。
D、进行系统可靠性测试,需要模拟系统运行多久时间的时候能稳定运行,这些都是手工测试很难进行的。
E、手工测试速度相对比较慢,如果一天进行几百个测试用例,在一天内用手工进行测试很难完成。
相对地,本发明的自动化测试装置至少具备以下优势:
A、缩短软件开发的测试周期,进度快。
B、测试效率高(充分利用硬件资源)。
C、节省人力资源,降低测试成本。
D、增强测试的稳定性、可靠性,提高测试的准确度和精确度,增加软件信任度。
E、使用测试工具相对比较容易,能提高测试结果。
F、能进行负载、性能测试,这些手工都无法完成。
当然,在实际工作中要确保能用自动化测试的事情决不用手工测试,同时要做到适合手工测试的内容决不要花费高昂的成本做自动化测试。另外,不要因为某方面不能自动化测试而不做测试。本发明的自动测试装置尤其适合于单元测试、集成测试、系统负载测试、性能测试、稳定性测试、可靠性测试等。
图1示意性地示出了根据本发明的用于软件测试的自动化测试装置的结构图。如图所示,本发明的用于软件测试的自动化测试装置100包括用于创建虚拟用户和系统负载的虚拟用户生成器101;用于组织虚拟用户生成器101所创建的系统负载、设定虚拟用户数量并生成和运行测试脚本的控制器102;以及保存运行测试脚本的所有数据并对所得到的数据进行分析的分析组件103。
通过虚拟用户生成器101,用户可简便创建起虚拟用户和系统负载。该虚拟用户生成器101能生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。后续的组件将其转化为测试脚本。
控制器102根据系统负载的业务流程和所设定的虚拟用户数量生成所述测试脚本。例如,通过控制器102,测试人员可以快速地组织起多用户的测试方案(负载方案、业务流程组合与虚拟用户数量),使测试过程自动化。同时,控制器102也可以用来限定负载方案。此外,控制器102还可以在生成测试脚本时在测试脚本中插入事务,以便在分析组件103进行分析时查看到该事务的响应时间。或者,控制器102也可以在生成测试脚本时在该测试脚本中插入一集合点。在运行该测试脚本时,在集合点处使多个虚拟用户执行同一操作,以提高并发程度。此外,控制器102还可以为测试脚本设定迭代次数。
控制器102使用虚拟用户生成器101生成的脚本对目标软件进行模拟场景测试,场景运行后,所有的数据将由分析组件103保留并对所得的数据进行分析。
图2示意性地示出了根据本发明的自动化软件测试方法的流程图。如图2所示,本发明的自动化软件测试方法包括:创建测试脚本201;部署测试场景并运行测试脚本202;以及分析测试结果203。
在创建测试脚本201的步骤之中,用户可以选择适当的协议,web服务器一般选择http协议。录制方式一般选择基于HTM L的脚本,但有下列情况选择基于URL的脚本。不是基于浏览器的应用程序,应用程序中包含jaVaScript脚本且产生了请求,基于浏览器的应用程序使用了https协议。在录制过程中不要后退页面。如果想测定某个操作的响应时间,可以在脚本中插入事务,使用事务把该操作包装起来。分析执行结果的时候可以查看到该事务的响应时间。此外,在该步骤201中还可以插入集合点,以使多个用户并发进行同一操作,提高操作的并发程度,以对服务器增加负载,测试并发能力。此外,用户还可以设置网络带宽以模拟不同带宽的网络,设置迭代次数。此外,该步骤还包括对脚本进行参数化,设置参数变更方式,以及关联脚本。
在部署测试场景并运行测试脚本202的步骤之中,部署测试场景主要包含:选择脚本,设定执行用户数,选择测试负载机,设置脚本执行的方式,设置集合点点,设置运行时间设定。如果要模拟的用户数比较多,应该设置多台测试负载机,一般主流的PC机至少能模拟100个用户对服务器的访问。此外,设置脚本的执行方式包括设置用户的启动方式和设置用户的终止方式。此外,该步骤还可以设置集合点,并可以设置用户通过集合点的方式。当浏览web页面较大时,在测试的时候可能出现超时(timeout)错误。针对该问题,可以适当修正超时数值。
此外,还可以设置IP欺骗。如果服务器对用户的IP有限制(安全原因),则需要启用IP欺骗。设置IP欺骗应该注意:1)测试负载机应该使用静态IP;2)在选择测试负载机之前开启IP欺骗开关。
此外,还可以设置服务器监控计数器。包含:内存,CPU,线程,进程,网络,磁盘。
在分析测试结果203的步骤之中,可以查看分析结果、查看事务的响应时间、服务器的平均吞吐量,执行用户人数等。此外,还可以查看线程图,用户变化图,响应时间图,吞吐量图;查看服务器监控的计数器图;分析各个性能指标是否符合需求,比如:可用内存曲线是否正常,是否存在内存泄漏;CPU利用率曲线是否平缓,平均利用率是否低于90%;线程数是否正常,而不是一直在增长;网络带宽是否满足流量需求;磁盘是否满足用户操作要求等等;分析各个曲线图是否存在异常情况,比如:响应时间是否满足需求;系统是否支持要求的并发;随着负载的增加,吞吐量是否同样增加,吞吐量是否存在瓶颈等等。
有时候分析单个要素并不能反映存在的问题,需要多个要素联系起来进行分析。比如,可以把用户数的变化图和吞吐量图联系起来进行分析。本发明的装置支持把两个表合并进行分析,把用户数变化图和吞吐量变化图合并,就可以观察吞吐量是否随着用户数的变化而相应时间。如果随着用户数的增加,吞吐量持平或者下降,说明此时系统吞吐量达到了最大值,系统达到了瓶颈。
Claims (9)
1.一种自动化软件测试方法,该方法包括:
创建测试脚本;
部署测试场景并运行测试脚本;以及
分析测试结果。
2.如权利要求1所述的自动化软件测试方法,其特征在于,所述创建测试脚本的步骤进一步包括:
选择协议;
选择基于HTML的脚本;以及
在脚本中插入事务,以便在所述分析测试结果的步骤中查看到该事务的响应时间。
3.如权利要求1所述的自动化软件测试方法,其特征在于,所述创建测试脚本的步骤进一步包括:
在所述测试脚本中插入集合点,以使在所述集合处多个虚拟用户并发进行同一操作,以提高操作的并发程度。
4.如权利要求1所述的自动化软件测试方法,其特征在于,所述创建测试脚本的步骤进一步包括:
设置网络带宽以模拟不同带宽的网络;以及
设置所述测试脚本的迭代次数。
5.如权利要求1所述的自动化软件测试方法,其特征在于,所述创建部署测试场景并运行测试脚本的步骤进一步包括:
设置测试负载机的数量,
设置脚本的执行方式:
修正超时数值;以及
设置IP欺骗。
6.如权利要求5所述的自动化软件测试方法,其特征在于,所述设置脚本的执行方式的步骤包括:
设置用户的启动方式;以及
设置用户的终止方式
7.如权利要求5所述的自动化软件测试方法,其特征在于,所述设置IP欺骗的步骤进一步包括:
将测试负载机设定为使用静态IP。
8.如权利要求1所述的自动化软件测试方法,其特征在于,所述分析测试结果的步骤进一步包括:
查看事务的响应时间、服务器的平均吞吐量和执行用户人数;
分析有关性能指标是否符合需求。
9.如权利要求8所述的自动化软件测试方法,其特征在于,所述分析有关性能指标是否符合需求的步骤包括:
分析可用内存曲线是否正常;
分析是否存在内存泄漏;
分析CPU利用率曲线是否平缓,且平均利用率是否低于90%;以及
分析网络带宽是否满足流量要求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105794502A CN102567186A (zh) | 2010-12-08 | 2010-12-08 | 一种自动化软件测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105794502A CN102567186A (zh) | 2010-12-08 | 2010-12-08 | 一种自动化软件测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567186A true CN102567186A (zh) | 2012-07-11 |
Family
ID=46412654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105794502A Pending CN102567186A (zh) | 2010-12-08 | 2010-12-08 | 一种自动化软件测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567186A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077222A (zh) * | 2014-07-03 | 2014-10-01 | 上海斐讯数据通信技术有限公司 | 一种无线路由器吞吐量的自动化测试方法 |
CN104375937A (zh) * | 2014-11-19 | 2015-02-25 | 福建亿榕信息技术有限公司 | 一种自动化测试结果持续集成整合方法及系统 |
CN104391789A (zh) * | 2014-11-17 | 2015-03-04 | 国云科技股份有限公司 | 一种Web应用程序压力测试的方法 |
CN104520818A (zh) * | 2012-08-13 | 2015-04-15 | 惠普发展公司,有限责任合伙企业 | 连续部署管道中的性能测试 |
CN105224450A (zh) * | 2014-07-02 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 并发测试方法及装置 |
CN105843742A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 回归测试方法和系统 |
CN107992418A (zh) * | 2017-12-05 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种提高软件测试稳定性的方法及系统 |
CN112486833A (zh) * | 2020-12-07 | 2021-03-12 | 中国科学院软件研究所 | 一种面向软件定义卫星的可按需动态重构的软件测试系统和方法 |
-
2010
- 2010-12-08 CN CN2010105794502A patent/CN102567186A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104520818A (zh) * | 2012-08-13 | 2015-04-15 | 惠普发展公司,有限责任合伙企业 | 连续部署管道中的性能测试 |
CN105224450A (zh) * | 2014-07-02 | 2016-01-06 | 阿里巴巴集团控股有限公司 | 并发测试方法及装置 |
CN104077222A (zh) * | 2014-07-03 | 2014-10-01 | 上海斐讯数据通信技术有限公司 | 一种无线路由器吞吐量的自动化测试方法 |
CN104391789A (zh) * | 2014-11-17 | 2015-03-04 | 国云科技股份有限公司 | 一种Web应用程序压力测试的方法 |
CN104375937A (zh) * | 2014-11-19 | 2015-02-25 | 福建亿榕信息技术有限公司 | 一种自动化测试结果持续集成整合方法及系统 |
CN105843742A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 回归测试方法和系统 |
CN107992418A (zh) * | 2017-12-05 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种提高软件测试稳定性的方法及系统 |
CN112486833A (zh) * | 2020-12-07 | 2021-03-12 | 中国科学院软件研究所 | 一种面向软件定义卫星的可按需动态重构的软件测试系统和方法 |
CN112486833B (zh) * | 2020-12-07 | 2022-12-23 | 中国科学院软件研究所 | 一种面向软件定义卫星的可按需动态重构的软件测试系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541723A (zh) | 用于软件测试的自动化测试装置 | |
CN102567186A (zh) | 一种自动化软件测试方法 | |
CN103139006A (zh) | 基于web服务的自动化测试装置及方法 | |
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
CN107895009B (zh) | 一种基于分布式的互联网数据采集方法及系统 | |
CN106021079B (zh) | 一种基于用户频繁访问序列模型的Web应用性能测试方法 | |
US8976955B2 (en) | System and method for tracking web interactions with real time analytics | |
Zhu et al. | Research the performance testing and performance improvement strategy in web application | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN110798445B (zh) | 公共网关接口测试方法、装置、计算机设备及存储介质 | |
CN108415826B (zh) | 应用的测试方法、终端设备及计算机可读存储介质 | |
CN106682036A (zh) | 一种数据交换系统及其交换方法 | |
Dhiman et al. | Performance testing: a comparative study and analysis of web service testing tools | |
CN104765689A (zh) | 一种接口性能数据实时监制方法和装置 | |
CN107807883B (zh) | 一种用户态网络文件系统的单元测试方法及装置 | |
Liu | Research of performance test technology for big data applications | |
Wang et al. | A model-based framework for cloud API testing | |
CN104391789A (zh) | 一种Web应用程序压力测试的方法 | |
CN112463568A (zh) | 业务仿真测试方法、装置及电子设备 | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
CN104765787B (zh) | 软件系统内要素文件关联关系分析方法及系统 | |
Grambow et al. | Using application benchmark call graphs to quantify and improve the practical relevance of microbenchmark suites | |
KR101830936B1 (ko) | 데이터베이스와 애플리케이션을 위한 웹기반 성능개선 시스템 | |
CN103186384A (zh) | 一种面向业务组件的软件设计分析系统及其使用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120711 |