CN107391373B - 基于AutoIT的性能自动化测试方法 - Google Patents
基于AutoIT的性能自动化测试方法 Download PDFInfo
- Publication number
- CN107391373B CN107391373B CN201710592735.1A CN201710592735A CN107391373B CN 107391373 B CN107391373 B CN 107391373B CN 201710592735 A CN201710592735 A CN 201710592735A CN 107391373 B CN107391373 B CN 107391373B
- Authority
- CN
- China
- Prior art keywords
- software
- autoit
- performance
- cpu
- file
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种基于AutoIT的性能自动化测试方法,包括以下步骤:a)根据CAD软件鼠标的形状变化获取软件从响应开始到响应结束的时间;b)获取CAD软件在运行时的CPU使用率以及内存占用率;c)分别测试打开单个文件及打开多个文件时软件的性能,具体为:c‑1)根据文件的大小划分等价类,并按照文件大小将等价类从小到大进行编号,然后依次对每一个等价类进行测试,记录软件的性能参数,并根据性能参数找到打开文件的临界点;c‑2)将文件类型不同、编号相同的等价类合并到同一个等价类中,针对于每一个等价类随机打开不同类型的文件,记录性能参数,直到软件性能出现瓶颈为止。本发明提高了测试效率及准确率,减轻了测试人员的工作量。
Description
技术领域
本发明属于软件测试领域,具体涉及一种基于AutoIT的性能自动化测试方法。
背景技术
软件测试是一种鉴定软件正确性、完整性、安全性以及质量是否可靠的过程。软件性能测试通过模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
针对类似于CAD等单机软件的性能测试,主要是监测软件运行时的资源指标,包括CPU 使用率、内存使用率、软件响应时间等。大量的软件测试工作是繁琐重复的工作,例如在测试CAD软件打开文件的性能时,传统的手动操作只是重复打开文件,重复查看电脑性能数据,这种手动测试方法效率低下并且容易受测试人员自身的影响。手动性能测试依靠人眼观察获取数据的方法具有很大误差,主要是因为在性能测试过程中需要在文件打开瞬间记录相关数据,但是人眼会有反应时间,而打开文件的用时极短,因此误差会比较大。
现有的软件性能测试主要是针对网络服务类的软件进行的,使用的自动化测试工具主要有LoadRunnner、JMeter等。在被测程序运行过程中通过这些工具模拟出各种不同的网络协议、模拟大量用户访问服务器并记录相应的各种数据,例如软件响应时间、I/O速度、带宽等,从而获得相应的软件性能参数。非网络服务类软件黑盒性能测试主要以手动测试为主,在打开文件时人为观察系统内存、CPU使用率等性能指标,通过秒表等工具获取文件打开时间得到性能方面的相关数据。针对网络服务类软件,开展性能测试的方法和工具有很多,但是CAD 软件属于单机软件,其架构不同于网络服务类软件,性能测试需要监测的指标、参数也不同于网络服务类软件,一般用于网络服务类软件性能测试的工具都不适用于CAD软件,而手工进行黑盒性能测试时会出现类似其他手工测试一样重复、繁琐、效率低下及误差较大的问题。
软件的自动化测试是使用辅助工具进行的测试,适合代替手动测试过程中的一些重复繁琐的工作,并且通过脚本打开文件并记录相关数据,能够有效提高所获取数据的准确性。因此,软件测试自动化是软件测试未来发展的一个趋势。
发明内容
本发明的目的在于针对上述现有技术中的问题,提供一种基于AutoIT的性能自动化测试方法,运用自动化脚本,减轻测试人员的工作量,同时提高性能测试数据的准确性。
为了实现上述目的,本发明采用的技术方案包括以下步骤:
a)根据CAD软件鼠标的形状变化获取软件从响应开始到响应结束的时间;
b)获取CAD软件在运行时的CPU使用率以及内存占用率;
c)分别测试打开单个文件以及打开多个文件时软件的性能,具体为:
c-1)测试打开单个文件时软件的性能;
根据文件的大小划分等价类,并按照文件大小将等价类从小到大进行编号,然后依次对每一个等价类进行测试,记录软件的性能参数,并根据性能参数找到打开文件的临界点;
c-2)测试打开多个文件时软件的性能;
将文件类型不同、编号相同的等价类合并到同一个等价类中,针对于每一个等价类随机打开不同类型的文件,记录性能参数,直到软件性能出现瓶颈为止。
所述的步骤a)中CAD软件鼠标的形状通过AutoIT函数MouseGetCursor()进行捕捉。
所述的步骤b)获取CAD软件在运行时CPU使用率的具体方法为:
通过AutoIT中的dllcall函数调用Windows系统的API函数GetSystemTimes获得初始用户时间、初始内核时间和初始空闲时间;间隔n秒再次调用该API函数;
根据CPU使用率计算公式:
CPU使用率=((CPU ns后用户时间-CUP初始用户时间)+(CPU ns后内核时间-CUP初始内核时间)-(CPU ns后用空闲时间-CUP初始空闲时间))*100/((CPU ns后用户时间-CUP初始用户时间)+(CPU ns后内核时间-CUP初始内核时间));
即得到在这ns内的CPU使用率。
所述步骤b)通过AutoIT中的函数MemGetStats()获取CAD软件在运行时的内存占用率。
所述的步骤c-1)等价类分为0~1M、1M~10M、10M~20M、20M以上。
所述的步骤c-2)利用AutoIT中的Random函数实现随机数的生成。
所述的软件性能出现瓶颈包括CPU、内存使用率明显升高或不再变动,以及软件响应速度明显变慢。
与现有技术相比,本发明具有如下的有益效果:通过CAD软件鼠标的形状变化计算出软件的响应时间,CAD软件在响应开始到响应结束之间鼠标的形状都不是正常的箭头形状,通过脚本计算鼠标由正常变为不正常、再变回正常的时间即得到软件的响应时间。通过AutoIT 模拟人工测试的操作,调用操作系统的相关函数获取到CPU以及内存的相关数据。本发明将单机软件的黑盒性能测试引入了自动化脚本,提高了效率,并且通过脚本获取性能测试的相关数据比手工测试更加准确,本发明测试方法大大的减轻了测试人员的工作量。
具体实施方式
下面结合具体实施例对本发明做进一步的详细说明。
本发明运用自动化脚本,通过编写模拟手工操作的脚本,运行时代替人的手工操作,从而使测试人员从重复繁琐的测试中解放出来。此外,考虑人的反应时间,手工进行性能测试数据的实时性远不及脚本运行获取数据的实时性,因此手工测试数据的准确性远不及自动化测试脚本。本发明基于AutoIT的性能自动化测试方法包括以下步骤:
1.AutoIT获取性能参数的方法
1)AutoIT获取软件响应时间的方法。
CAD软件在响应开始到响应结束之间鼠标的形状都不是正常的箭头形状,鼠标的形状可以通过AutoIT进行捕捉,AutoIT中提供了捕捉鼠标状态的函数MouseGetCursor():当 MouseGetCursor()为2时表示鼠标正常,否则为不正常。这样可以通过脚本计算鼠标由正常变为不正常,再变回正常时的时间间距得到软件的响应时间。
2)AutoIT获取软件运行时内存以及CPU使用率的方法。
通过AutoIT同时可以获得程序运行时的CPU使用率。Windows系统提供了丰富的API 函数,可以通过AutoIT中的dllcall函数调用Windows系统的API函数GetSystemTimes获得初始用户时间,初始内核时间和初始空闲时间。间隔一段时间(例如1秒)再次调用该API 函数,根据CPU使用率计算公式:
CPU使用率=((CPU1s后用户时间-CUP初始用户时间)+(CPU1s后内核时间-CUP初始内核时间)-(CPU1s后用空闲时间-CUP初始空闲时间))*100/((CPU1s后用户时间-CUP初始用户时间)+(CPU1s后内核时间-CUP初始内核时间));
即能够得到在这1s内CPU使用率。
AutoIT中提供了获取内存使用率的一个函数MemGetStats(),其返回值是一个数组,数组中第一个值就是内存占用的百分比,通过这个函数能够知道软件运行时的内存占用率。
2、性能测试的策略
1)将软件性能测试划分为两类:
1.1)测试打开单个文件时软件的性能;测试打开多个文件时软件的性能。
打开单个文件:
针对测试打开单个文件,可以对每一类文件都划分等价类:等价类根据文件的大小来进行划分,每一个等价类是文件大小的一个范围,并按照文件大小将等价类从小到大进行编号,然后依次对每一个等价类进行测试,记录软件的性能参数。通过分析不同等价类测试时的性能参数,可以找到打开文件的临界点。
下表为某CAD软件打开零件文件的测试结果:
1.2)打开多个文件:针对多个文件的问题我们可以将文件类型不同,但编号相同的等价类合并到一个等价类中,针对于每一个等价类随机打开不同类型文件(AutoIT中函数Random 可实现生成随机数),记录性能参数,直到性能出现瓶颈(CPU、内存使用率明显升高或不再变动,软件响应速度明显变慢)为止。
下表为某CAD软件打开零件中等价类1M~10M不同文件个数时性能的参数:
本发明将单机软件的黑盒性能测试引入了自动化脚本,提高了效率,并且通过脚本获取性能测试的相关数据比手工测试更加准确,该测试方法大大的减轻了测试人员的工作量。
Claims (7)
1.一种基于AutoIT的性能自动化测试方法,其特征在于,包括以下步骤:
a)根据CAD软件鼠标的形状变化获取软件从响应开始到响应结束的时间;
b)获取CAD软件在运行时的CPU使用率以及内存占用率;
c)分别测试打开单个文件以及打开多个文件时软件的性能,具体为:
c-1)测试打开单个文件时软件的性能;
根据文件的大小划分等价类,并按照文件大小将等价类从小到大进行编号,然后依次对每一个等价类进行测试,记录软件的性能参数,并根据性能参数找到打开文件的临界点;
c-2)测试打开多个文件时软件的性能;
将文件类型不同、编号相同的等价类合并到同一个等价类中,针对于每一个等价类随机打开不同类型的文件,记录性能参数,直到软件性能出现瓶颈为止。
2.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于:所述的步骤a)中CAD软件鼠标的形状通过AutoIT函数MouseGetCursor()进行捕捉。
3.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于,所述的步骤b)获取CAD软件在运行时CPU使用率的具体方法为:
通过AutoIT中的dllcall函数调用Windows系统的API函数GetSystemTimes获得初始用户时间、初始内核时间和初始空闲时间;间隔n秒再次调用该API函数;
根据CPU使用率计算公式:
CPU使用率=((CPU ns后用户时间-CUP初始用户时间)+(CPU ns后内核时间-CUP初始内核时间)-(CPU ns后用空闲时间-CUP初始空闲时间))*100/((CPU ns后用户时间-CUP初始用户时间)+(CPU ns后内核时间-CUP初始内核时间));
即得到在这ns内的CPU使用率。
4.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于,所述的步骤b)通过AutoIT中的函数MemGetStats()获取CAD软件在运行时的内存占用率。
5.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于:所述的步骤c-1)等价类分为0~1M、1M~10M、10M~20M、20M以上。
6.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于:所述的步骤c-2)利用AutoIT中的Random函数实现随机数的生成。
7.根据权利要求1所述基于AutoIT的性能自动化测试方法,其特征在于:所述的软件性能出现瓶颈包括CPU、内存使用率明显升高或不再变动,以及软件响应速度明显变慢。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710592735.1A CN107391373B (zh) | 2017-07-19 | 2017-07-19 | 基于AutoIT的性能自动化测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710592735.1A CN107391373B (zh) | 2017-07-19 | 2017-07-19 | 基于AutoIT的性能自动化测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107391373A CN107391373A (zh) | 2017-11-24 |
CN107391373B true CN107391373B (zh) | 2020-08-14 |
Family
ID=60335715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710592735.1A Active CN107391373B (zh) | 2017-07-19 | 2017-07-19 | 基于AutoIT的性能自动化测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391373B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359022B (zh) * | 2018-11-20 | 2022-05-27 | 信阳农林学院 | 一种计算机软件性能测试方法 |
CN110275824B (zh) * | 2019-05-14 | 2023-02-28 | 浙江工业大学 | 一种计算机软件性能测试方法 |
CN111796805B (zh) * | 2019-06-27 | 2024-05-07 | 上海市计量测试技术研究院 | 一种aml语言性能验证方法 |
CN110968480A (zh) * | 2019-11-29 | 2020-04-07 | 同济大学 | 一种中央处理器的负载率测量方法及电子设备 |
CN113220550B (zh) * | 2021-05-08 | 2023-01-17 | 浪潮电子信息产业股份有限公司 | 一种流版式软件的性能测试方法和装置 |
CN115617695B (zh) * | 2022-12-05 | 2023-03-21 | 天津卓朗昆仑云软件技术有限公司 | 自动化测试方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553382A (zh) * | 2003-05-28 | 2004-12-08 | 鸿富锦精密工业(深圳)有限公司 | 基于cad平台之计算机辅助验证系统及方法 |
CN102479149A (zh) * | 2010-11-25 | 2012-05-30 | 佛山市顺德区顺达电脑厂有限公司 | Aoi数据处理方法 |
CN103049369A (zh) * | 2011-10-14 | 2013-04-17 | 阿里巴巴集团控股有限公司 | 一种自动化测试方法及系统 |
CN105446846A (zh) * | 2015-11-30 | 2016-03-30 | 中电科华云信息技术有限公司 | 基于云桌面的性能测试方法 |
CN106774244A (zh) * | 2016-12-05 | 2017-05-31 | 南京大全自动化科技有限公司 | 数据采集与监视控制系统的模拟测试工具及其测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8881075B2 (en) * | 2013-03-04 | 2014-11-04 | Atrenta, Inc. | Method for measuring assertion density in a system of verifying integrated circuit design |
-
2017
- 2017-07-19 CN CN201710592735.1A patent/CN107391373B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1553382A (zh) * | 2003-05-28 | 2004-12-08 | 鸿富锦精密工业(深圳)有限公司 | 基于cad平台之计算机辅助验证系统及方法 |
CN102479149A (zh) * | 2010-11-25 | 2012-05-30 | 佛山市顺德区顺达电脑厂有限公司 | Aoi数据处理方法 |
CN103049369A (zh) * | 2011-10-14 | 2013-04-17 | 阿里巴巴集团控股有限公司 | 一种自动化测试方法及系统 |
CN105446846A (zh) * | 2015-11-30 | 2016-03-30 | 中电科华云信息技术有限公司 | 基于云桌面的性能测试方法 |
CN106774244A (zh) * | 2016-12-05 | 2017-05-31 | 南京大全自动化科技有限公司 | 数据采集与监视控制系统的模拟测试工具及其测试方法 |
Non-Patent Citations (2)
Title |
---|
"OLE Automation和AutoIt在计算机性能";季强等;《军事通信技术》;20120930;第33卷(第3期);第53-56页 * |
"如何使用AutoIT完成单机测试";阳光温暖了心情;《http://www.51testing.com/html/58/n-3707758.html》;20160414;第1-6页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107391373A (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391373B (zh) | 基于AutoIT的性能自动化测试方法 | |
CN106021079B (zh) | 一种基于用户频繁访问序列模型的Web应用性能测试方法 | |
CN106776280B (zh) | 可配置性能测试装置 | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
CN109309596B (zh) | 一种压力测试方法、装置及服务器 | |
CN106055464B (zh) | 数据缓存集群压力测试装置及方法 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
CN109993506A (zh) | 智慧矿山工业物联网操作系统平台性能测试方法 | |
CN106855844B (zh) | 一种性能测试方法和系统 | |
CN115757150A (zh) | 一种生产环境测试方法、装置、设备及存储介质 | |
CN112346962A (zh) | 一种应用于对照测试系统中的对照数据测试方法及装置 | |
CN116954624B (zh) | 基于软件开发包的编译方法、软件开发系统及服务器 | |
CN111367782A (zh) | 回归测试数据自动生成的方法及装置 | |
CN106445812B (zh) | 回归测试系统及回归测试方法 | |
CN111125193B (zh) | 多媒体非正常评论的识别方法、装置、设备及存储介质 | |
CN113742213A (zh) | 一种用于数据分析的方法、系统和介质 | |
CN108377208B (zh) | 一种基于协议回放的服务器压力测试方法及装置 | |
CN112527584A (zh) | 基于脚本编写及数据采集的软件效能提升方法和系统 | |
CN112214414A (zh) | 基于自动化测试的覆盖率处理方法、装置、设备及介质 | |
CN117271268B (zh) | 一种数字化计算平台中的集群架构性能评估方法 | |
CN113839839B (zh) | 一种多线程并发通信的测试方法及系统 | |
CN110362464A (zh) | 软件分析方法及设备 | |
CN117389841B (zh) | 加速器资源监控方法、装置、集群设备及存储介质 | |
CN110046098B (zh) | 一种实时库测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |