CN112799933B - 一种自动化测试方法和装置 - Google Patents

一种自动化测试方法和装置 Download PDF

Info

Publication number
CN112799933B
CN112799933B CN201911114410.8A CN201911114410A CN112799933B CN 112799933 B CN112799933 B CN 112799933B CN 201911114410 A CN201911114410 A CN 201911114410A CN 112799933 B CN112799933 B CN 112799933B
Authority
CN
China
Prior art keywords
result
test
file
writing
response time
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
CN201911114410.8A
Other languages
English (en)
Other versions
CN112799933A (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.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information 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 Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN201911114410.8A priority Critical patent/CN112799933B/zh
Publication of CN112799933A publication Critical patent/CN112799933A/zh
Application granted granted Critical
Publication of CN112799933B publication Critical patent/CN112799933B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自动化测试方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:利用多线程程序执行以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。该实施方式能够解决对第三方测试工具依赖性高的技术问题。

Description

一种自动化测试方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种自动化测试方法和装置。
背景技术
目前,自动化测试通常是基于第三方性能测试工具(例如LoadRunner,Jmeter等)实现的。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
受限于测试工具本身,运行环境需要相应的测试工具支持,导致增加额外负载;编写的自动化测试代码需要嵌入到测试工具中才可以运行;需要性能测试人员对测试工具具有比较扎实的基础。
发明内容
有鉴于此,本发明实施例提供一种自动化测试方法和装置,以解决对第三方测试工具依赖性高的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种自动化测试方法,利用多线程程序执行如下步骤:
以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;
将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;
接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。
可选地,以定长行的方式下载参数化文件之前,还包括:
按照预设字节数,将测试参数写入参数化文件;在所述参数化文件中,每行的长度均为预设字节数;
将所述参数化文件上传至云端。
可选地,若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数。
可选地,接收返回的测试结果,根据所述测试结果和预期结果生成日志文件,包括:
接收返回的测试结果;
根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;
判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件。
可选地,将所述响应时间及其出现次数写入响应结果日志文件中,包括:
将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;
遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
可选地,将所述键值对信息写入响应结果日志文件,包括:
按照响应时间由小到大的顺序,对所述键值对信息进行升序排列;
根据预设响应阈值百分比范围,删除所述预设响应阈值百分比范围之外的键值对信息;
将剩余的键值对信息按照响应时间由小到大的顺序写入响应结果日志文件。
可选地,根据所述测试结果和预期结果生成日志文件之后,还包括:
将所述日志文件上传至测试平台。
另外,根据本发明实施例的另一个方面,提供了一种自动化测试装置,包括:
加载模块,用于利用多线程程序以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;
调用模块,用于利用多线程程序将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;
日志模块,用于利用多线程程序接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。
可选地,所述加载模块还用于以定长行的方式下载参数化文件之前,按照预设字节数,将测试参数写入参数化文件;在所述参数化文件中,每行的长度均为预设字节数;
将所述参数化文件上传至云端。
可选地,若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数。
可选地,所述日志模块还用于:
接收返回的测试结果;
根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;
判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件。
可选地,所述日志模块还用于:
将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;
遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
可选地,所述日志模块还用于::
按照响应时间由小到大的顺序,对所述键值对信息进行升序排列;
根据预设响应阈值百分比范围,删除所述预设响应阈值百分比范围之外的键值对信息;
将剩余的键值对信息按照响应时间由小到大的顺序写入响应结果日志文件。
可选地,所述日志模块还用于:
根据所述测试结果和预期结果生成日志文件之后,将所述日志文件上传至测试平台。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用利用多线程程序以定长行的方式下载参数化文件,将参数化文件中的测试参数入参到远程过程调用方法中,并调用远程过程调用方法的技术手段,所以克服了现有技术中对第三方测试工具依赖性高的技术问题。本发明实施例通过多线程程序OpenMP进行性能测试,大大减少了性能测试脚本的入门难度以及代码量。由于代码量较小,也减少了性能测试脚本的调试和编写难度;相对于第三方工具而言,性能测试过程具有可见性,也方便后续的相关功能的扩展,同时更充分地利用执行机的硬件性能,减少性能测试执行机的数量。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的自动化测试方法的主要流程的示意图;
图2是根据本发明一个可参考实施例的自动化测试方法的主要流程的示意图;
图3是根据本发明另一个可参考实施例的自动化测试方法的主要流程的示意图;
图4是根据本发明实施例的自动化测试装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
编译器自带的多线程程序库OpenMP具有隐式封装多线程调用及多线程执行策略的设置功能,能够将普通for循环语句自动转换为多线程方式执行,本发明实施例基于OpenMP实现对性能测试的多线程执行过程。
图1是根据本发明实施例的自动化测试方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述自动化测试方法利用多线程程序执行如下步骤:
步骤101,以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中。
通常来说,参数化文件存储在云端,因此开始测试之前,需要将参数化文件下载到本地,并将所述参数化文件加载到内存中。为了加快读取和下载参数化文件的速度,本发明实施例以定长行的方式读取参数化文件中的各行测试参数,并将其反序列化(从文本到内存的过程)到内存中。
可选地,以定长行的方式下载参数化文件之前,还包括:按照预设字节数,将测试参数写入参数化文件;在所述参数化文件中,每行的长度均为预设字节数;将所述参数化文件上传至云端。在本发明的实施例中,可以预先写好定长行的参数化文件,并将写好的参数化文件上传至云端。具体地,可以按照最长测试参数的字节数来确定定长好的字节数,比如最长测试参数的字节数为100个,那么定长行的字节数为101个(100个字节数+1个换行符)。
可选地,若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数,以保证能够以定长行的方式从云端读取参数化文件中的测试参数,从而提高下载参数化文件的速度。
步骤102,将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法。
首先从内存中读取测试参数,然后将测试参数入参到已封装的远程过程调用方法(比如http请求)中,再调用已封装的远程过程调用方法,并记录调用所述远程过程调用方法的时间节点。需要指出的是,对于一些无网络请求情形的性能测试,可以将被测程序与性能测试脚本部署在一台服务器上,直接调用本地过程调用,实现无网络访问的性能测试。
步骤103,接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。
在该步骤中,接收调用所述远程过程调用方法返回的测试结果,并记录,接收所述测试结果的时间节点。然后根据所述测试结果和预期结果生成日志文件。可选地,步骤103可以包括:接收返回的测试结果;根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件。
可选地,将所述响应时间及其出现次数写入响应结果日志文件中,包括:将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。将接收测试结果的时间节点与调用远程过程调用方法的时间节点相减可以得到响应时间,将响应时间写入全局结果变量中。在本发明的实施例中,全局结果变量以多重映射(multimap,一种key可重复的map)的方式保存,而且全局结果变量为共享变量,在测试过程中,每个线程都会对全局结果变量进行读写操作。
可以先对键值对信息进行过滤,将过滤后的键值对信息写入响应结果日志文件。可选地,将所述键值对信息写入响应结果日志文件,包括:按照响应时间由小到大的顺序,对所述键值对信息进行升序排列;根据预设响应阈值百分比范围,删除所述预设响应阈值百分比范围之外的键值对信息;将剩余的键值对信息按照响应时间由小到大的顺序写入响应结果日志文件。在结束测试后,遍历全局结果变量的multimap结果,统计各个响应时间的总响应次数,并按照key由小到大的顺序进行升序排列。对key进行排序后,根据预设的响应阈值百分比范围,剔除前0.05%和后0.02%的key-value,计算剩余的multimap的开始与结束区间,循环遍历multimap的开始到结束区间中所有的key-value,按照key从小到大的顺序输出到响应结果日志文件中。
根据上面所述的各种实施例,可以看出本发明通过利用多线程程序以定长行的方式下载参数化文件,将参数化文件中的测试参数入参到远程过程调用方法中,并调用远程过程调用方法的技术手段,解决了现有技术中对第三方测试工具依赖性高的技术问题。本发明实施例通过多线程程序OpenMP进行性能测试,大大减少了性能测试脚本的入门难度以及代码量。由于代码量较小,也减少了性能测试脚本的调试和编写难度;相对于第三方工具而言,性能测试过程具有可见性,也方便后续的相关功能的扩展,同时更充分地利用执行机的硬件性能,减少性能测试执行机的数量。
图2是根据本发明一个可参考实施例的自动化测试方法的主要流程的示意图。如图2所示,作为本发明的另一个实施例,所述自动化测试方法利用多线程程序执行如下步骤:
步骤201,按照预设字节数,将测试参数写入参数化文件,并将所述参数化文件上传至云端。
在所述参数化文件中,每行的长度均为预设字节数。其中,预设字节数=最长测试参数的字节数+1,比如最长测试参数的字节数为95个,那么定长行的字节数为96个。若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数,以保证能够以定长行的方式从云端读取参数化文件中的测试参数,从而提高下载参数化文件的速度。
步骤202,以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中。
为了加快读取和下载参数化文件的速度,本发明实施例以定长行的方式读取参数化文件中的各行测试参数,并将其反序列化到内存中。
步骤203,将所述参数化文件中的测试参数入参到远程过程调用方法中,调用所述远程过程调用方法,并记录调用所述远程过程调用方法的时间节点。
步骤204,接收返回的测试结果,并记录接收所述测试结果的时间节点。
步骤205,根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件。
具体地,将接收测试结果的时间节点与调用远程过程调用方法的时间节点相减可以得到响应时间,将响应时间写入全局结果变量中。所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数。然后遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
可选地,先对键值对信息进行过滤,将过来后的键值对信息写入响应结果日志文件。比如按照key由小到大的顺序,对key-value进行升序排列;剔除前0.03%和后0.05%的key-value,将剩余的key-value按照key由小到大的顺序写入响应结果日志文件。
步骤206,判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件。
步骤207,将响应结果日志文件和异常日志文件上传至测试平台。
另外,在本发明一个可参考实施例中自动化测试方法的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图3是根据本发明另一个可参考实施例的自动化测试方法的主要流程的示意图。可以采用如图3所示的测试框架实现本发明实施例的自动化测试方法,所述测试框架包括代理模块、主程序模块、文件加载模块和远程调用模块。所述自动化测试方法可以包括以下步骤:
按照预设字节数,将测试参数写入参数化文件,并将所述参数化文件上传至云端。在所述参数化文件中,每行的长度均为预设字节数。其中,预设字节数=最长测试参数的字节数+1。若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数。
代理模块主要负责性能测试脚本的编译、设置性能策略(通过设置OpenMP环境变量实现)以及运行性能测试脚本(即主程序模块)。
主程序模块中设置有编译指导语句(#pragam omp开头的编译指导语句),同时配置全局结果变量为共享变量,使得每个线程都会对全局结果变量进行读写操作。主程序模块中设置有性能策略(比如线程数,循环工作方式等)。for循环发起远程调用进行多线程测试,当达循环次数执行完成时或达到一定执行时间时退出循环。
代理模块运行主程序模块,主程序模块向文件加载模块发送下载指令,文件加载模块利用多线程程序OpenMP从云端下载定长行的参数化文件,并将下载的定长行的测试参数反序列化到内存中。
主程序模块向远程调用模块发送远程调用指令,远程调用模块先从内存中读取测试参数,然后将测试参数入参到已封装的远程过程调用方法中,再调用已封装的远程过程调用方法,最后接收返回的测试结果。并且远程调用模块分别记录调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点。
远程调用模块判断测试结果与预期结果是否相同,如果不相同,则将实际的测试结果写入异常日志文件中。异常日志由远程调用模块直接存到硬盘中。
远程调用模块根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将响应时间计入全局结果变量中。所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数。
主程序模块在初始化阶段初始化全局结果变量。在结束测试后,主程序模块遍历全局结果变量的multimap结果,分别计算各个响应时间的总响应次数。然后对按key的升序排列,对key进行升序排序后,根据预设响应阈值百分比范围,剔除一部分的key-value,计算剩余的multimap的开始与结束区间,循环遍历multimap的开始到结束区间中所有的key-value,按照key从小到大的顺序输出到响应结果日志文件中。
主程序模块再次向远程调用模块发送远程调用指令,继续执行下一次远程调用,主程序模块根据性能策略循环运行,直到完成所有测试后退出主程序。
代理模块收集日志文件,并将日志文件上传至测试平台。
另外,在本发明另一个可参考实施例中自动化测试方法的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图4是根据本发明实施例的自动化测试装置的主要模块的示意图,如图4所示,所述自动化测试装置400包括记载模块401、调用模块402和日志模块403。其中,加载模块401用于利用多线程程序以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;调用模块402用于利用多线程程序将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;日志模块403用于利用多线程程序接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。
可选地,所述加载模块401还用于以定长行的方式下载参数化文件之前,按照预设字节数,将测试参数写入参数化文件;在所述参数化文件中,每行的长度均为预设字节数;
将所述参数化文件上传至云端。
可选地,若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数。
可选地,所述日志模块403还用于:
接收返回的测试结果;
根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;
判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件。
可选地,所述日志模块403还用于:
将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;
遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
可选地,所述日志模块403还用于::
按照响应时间由小到大的顺序,对所述键值对信息进行升序排列;
根据预设响应阈值百分比范围,删除所述预设响应阈值百分比范围之外的键值对信息;
将剩余的键值对信息按照响应时间由小到大的顺序写入响应结果日志文件。
可选地,所述日志模块403还用于:
根据所述测试结果和预期结果生成日志文件之后,将所述日志文件上传至测试平台。
根据上面所述的各种实施例,可以看出本发明通过利用多线程程序以定长行的方式下载参数化文件,将参数化文件中的测试参数入参到远程过程调用方法中,并调用远程过程调用方法的技术手段,解决了现有技术中对第三方测试工具依赖性高的技术问题。本发明实施例通过多线程程序OpenMP进行性能测试,大大减少了性能测试脚本的入门难度以及代码量。由于代码量较小,也减少了性能测试脚本的调试和编写难度;相对于第三方工具而言,性能测试过程具有可见性,也方便后续的相关功能的扩展,同时更充分地利用执行机的硬件性能,减少性能测试执行机的数量。
需要说明的是,在本发明所述自动化测试装置的具体实施内容,在上面所述自动化测试方法中已经详细说明了,故在此重复内容不再说明。
图5示出了可以应用本发明实施例的自动化测试方法或自动化测试装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、物品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的自动化测试方法一般由服务器505执行,相应地,所述自动化测试装置一般设置在服务器505中。本发明实施例所提供的自动化测试方法也可以由终端设备501、502、503执行,相应地,所述自动化测试装置可以设置在终端设备501、502、503中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机***600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括加载模块、调用模块和日志模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用多线程程序执行以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;接收返回的测试结果,根据所述测试结果和预期结果生成日志文件。
根据本发明实施例的技术方案,因为采用利用多线程程序以定长行的方式下载参数化文件,将参数化文件中的测试参数入参到远程过程调用方法中,并调用远程过程调用方法的技术手段,所以克服了现有技术中对第三方测试工具依赖性高的技术问题。本发明实施例通过多线程程序OpenMP进行性能测试,大大减少了性能测试脚本的入门难度以及代码量。由于代码量较小,也减少了性能测试脚本的调试和编写难度;相对于第三方工具而言,性能测试过程具有可见性,也方便后续的相关功能的扩展,同时更充分地利用执行机的硬件性能,减少性能测试执行机的数量。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (8)

1.一种自动化测试方法,其特征在于,利用多线程程序执行如下步骤:
以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;
将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;
接收返回的测试结果,根据所述测试结果和预期结果生成日志文件;
接收返回的测试结果,根据所述测试结果和预期结果生成日志文件,包括:
接收返回的测试结果;
根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;
判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件;
将所述响应时间及其出现次数写入响应结果日志文件中,包括:
将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;
遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
2.根据权利要求1所述的方法,其特征在于,以定长行的方式下载参数化文件之前,还包括:
按照预设字节数,将测试参数写入参数化文件;在所述参数化文件中,每行的长度均为预设字节数;
将所述参数化文件上传至云端。
3.根据权利要求2所述的方法,其特征在于,若测试参数的字节数小于预设字节数,则以空格占位,直到所述测试参数所在行的字节数等于预设字节数。
4.根据权利要求1所述的方法,其特征在于,将所述键值对信息写入响应结果日志文件,包括:
按照响应时间由小到大的顺序,对所述键值对信息进行升序排列;
根据预设响应阈值百分比范围,删除所述预设响应阈值百分比范围之外的键值对信息;
将剩余的键值对信息按照响应时间由小到大的顺序写入响应结果日志文件。
5.根据权利要求1所述的方法,其特征在于,根据所述测试结果和预期结果生成日志文件之后,还包括:
将所述日志文件上传至测试平台。
6.一种自动化测试装置,其特征在于,包括:
加载模块,用于利用多线程程序以定长行的方式下载参数化文件,并将所述参数化文件加载到内存中;
调用模块,用于利用多线程程序将所述参数化文件中的测试参数入参到远程过程调用方法中,并调用所述远程过程调用方法;
日志模块,用于利用多线程程序接收返回的测试结果,根据所述测试结果和预期结果生成日志文件;
所述日志模块还用于:
接收返回的测试结果;
根据调用所述远程过程调用方法的时间节点和接收所述测试结果的时间节点确定响应时间,并将所述响应时间及其出现次数写入响应结果日志文件;
判断所述测试结果与预期结果是否相同,若否,则将所述测试结果写入异常日志文件;
所述日志模块还用于:
将响应时间写入全局结果变量,所述全局结果变量为共享变量,并且采用多重映射的方式保存;其中,key为响应时间,value为所述响应时间的出现次数;
遍历所述全局结果变量的多重映射结果,分别计算各个响应时间对应的总出现次数,得到键值对信息,将所述键值对信息写入响应结果日志文件。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201911114410.8A 2019-11-14 2019-11-14 一种自动化测试方法和装置 Active CN112799933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911114410.8A CN112799933B (zh) 2019-11-14 2019-11-14 一种自动化测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911114410.8A CN112799933B (zh) 2019-11-14 2019-11-14 一种自动化测试方法和装置

Publications (2)

Publication Number Publication Date
CN112799933A CN112799933A (zh) 2021-05-14
CN112799933B true CN112799933B (zh) 2023-11-03

Family

ID=75803797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911114410.8A Active CN112799933B (zh) 2019-11-14 2019-11-14 一种自动化测试方法和装置

Country Status (1)

Country Link
CN (1) CN112799933B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103104A (ja) * 1992-09-18 1994-04-15 Hitachi Ltd リモートデバッグ方法
CN109547272A (zh) * 2019-01-09 2019-03-29 西安交通大学 一种数控设备远程运维***互联网接口
CN109815105A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 基于Btrace的应用程序测试方法和装置
CN109992495A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 接口测试的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565095B2 (en) * 2016-12-15 2020-02-18 Syntel, Inc. Hybrid testing automation engine
US10474690B2 (en) * 2017-03-31 2019-11-12 University Of Virginia Patent Foundation Disjunctive rule mining with finite automaton hardware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103104A (ja) * 1992-09-18 1994-04-15 Hitachi Ltd リモートデバッグ方法
CN109815105A (zh) * 2017-11-20 2019-05-28 北京京东尚科信息技术有限公司 基于Btrace的应用程序测试方法和装置
CN109992495A (zh) * 2017-12-29 2019-07-09 北京京东尚科信息技术有限公司 接口测试的方法和装置
CN109547272A (zh) * 2019-01-09 2019-03-29 西安交通大学 一种数控设备远程运维***互联网接口

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种面向高性能数值模拟软件的自动化测试平台;田鸿运;刘青凯;成杰;杨章;单雅辉;;计算机工程与科学(11);全文 *
高性能计算集群运行时环境的配置优化;曹宗雁;;科研信息化技术与应用(06);全文 *

Also Published As

Publication number Publication date
CN112799933A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US9916230B1 (en) White box testing
CN108399132B (zh) 一种调度测试方法、装置及存储介质
US11113181B2 (en) Debugging a live streaming application
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN112631590A (zh) 组件库生成方法、装置、电子设备和计算机可读介质
CN110795331A (zh) 软件测试的方法和装置
CN113127000B (zh) 应用程序组件的编译方法、装置、设备及存储介质
CN112860538B (zh) 基于线上日志进行接口回归测试的方法和装置
CN112380088A (zh) 测试方法、装置和电子设备
CN112799933B (zh) 一种自动化测试方法和装置
CN112463574A (zh) 软件测试方法、装置、***、设备和存储介质
CN113821486B (zh) pod库之间依赖关系的确定方法及其装置、电子设备
CN112965910B (zh) 自动化回归测试方法、装置、电子设备、存储介质
US11366613B2 (en) Method and apparatus for writing data
CN114281504A (zh) 一种任务调度方法、装置、电子设备及计算机可读介质
CN113254325A (zh) 测试用例的处理方法和装置
US10289540B2 (en) Performing entropy-based dataflow analysis
CN114116291B (zh) 日志检测方法、日志检测装置、计算机设备及存储介质
US11340825B1 (en) Method, device, and computer program product for managing storage system
CN113342633B (zh) 一种性能测试方法和装置
CN112486421B (zh) 一种数据存储方法、装置、电子设备及存储介质
CN111209042B (zh) 一种建立函数栈的方法、装置、介质和电子设备
CN113760723B (zh) 一种业务流程调试方法和装置
CN112527540B (zh) 一种实现自动降级的方法和装置
CN117130899A (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