CN107391373B - 基于AutoIT的性能自动化测试方法 - Google Patents

基于AutoIT的性能自动化测试方法 Download PDF

Info

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
Application number
CN201710592735.1A
Other languages
English (en)
Other versions
CN107391373A (zh
Inventor
蔡锐龙
任宏涛
张阅化
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xi'an Jingdiao Software Technology Co ltd
Original Assignee
Xi'an Jingdiao Software Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xi'an Jingdiao Software Technology Co ltd filed Critical Xi'an Jingdiao Software Technology Co ltd
Priority to CN201710592735.1A priority Critical patent/CN107391373B/zh
Publication of CN107391373A publication Critical patent/CN107391373A/zh
Application granted granted Critical
Publication of CN107391373B publication Critical patent/CN107391373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods 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的性能自动化测试方法
技术领域
本发明属于软件测试领域,具体涉及一种基于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软件打开零件文件的测试结果:
Figure BDA0001355139200000051
1.2)打开多个文件:针对多个文件的问题我们可以将文件类型不同,但编号相同的等价类合并到一个等价类中,针对于每一个等价类随机打开不同类型文件(AutoIT中函数Random 可实现生成随机数),记录性能参数,直到性能出现瓶颈(CPU、内存使用率明显升高或不再变动,软件响应速度明显变慢)为止。
下表为某CAD软件打开零件中等价类1M~10M不同文件个数时性能的参数:
Figure BDA0001355139200000052
本发明将单机软件的黑盒性能测试引入了自动化脚本,提高了效率,并且通过脚本获取性能测试的相关数据比手工测试更加准确,该测试方法大大的减轻了测试人员的工作量。

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、内存使用率明显升高或不再变动,以及软件响应速度明显变慢。
CN201710592735.1A 2017-07-19 2017-07-19 基于AutoIT的性能自动化测试方法 Active CN107391373B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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