CN111930617B - 基于数据对象化的自动化测试方法及装置 - Google Patents

基于数据对象化的自动化测试方法及装置 Download PDF

Info

Publication number
CN111930617B
CN111930617B CN202010755810.3A CN202010755810A CN111930617B CN 111930617 B CN111930617 B CN 111930617B CN 202010755810 A CN202010755810 A CN 202010755810A CN 111930617 B CN111930617 B CN 111930617B
Authority
CN
China
Prior art keywords
test
data
function
tested program
class name
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
CN202010755810.3A
Other languages
English (en)
Other versions
CN111930617A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010755810.3A priority Critical patent/CN111930617B/zh
Publication of CN111930617A publication Critical patent/CN111930617A/zh
Application granted granted Critical
Publication of CN111930617B publication Critical patent/CN111930617B/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/3684Test management for test design, e.g. generating new test cases
    • 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
    • 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

Abstract

本发明提供了一种基于数据对象化的自动化测试方法及装置。所述方法包括:利用接收的被测试程序的类名,获取对应的被测试程序的函数;根据被测试程序的类名及函数,生成测试案例及测试脚本;利用从数据对象池中获取的实例化测试数据,解析所述测试案例;根据所述测试案例的解析结果,运行所述测试脚本。本发明通过将测试脚本和测试数据完全解耦,提高了测试数据的有效性,增强了自动化测试数据的可读性,让自动化测试工作不再依赖于测试数据,实现了快速、便捷且稳定地自动化测试。

Description

基于数据对象化的自动化测试方法及装置
技术领域
本发明涉及计算机软件自动化测试技术领域,尤指一种基于数据对象化的自动化测试方法及装置。
背景技术
目前自动化测试实践,较多依赖于测试数据的准备和恢复,测试数据的有效性直接影响了自动化测试的效果和自动化测试的维护成本。但由于系统和业务的复杂性,测试数据的构造可能需要横跨多个专业领域,而测试环境的数据又会经常被污染,导致想要快速生成或者找到有效的测试数据,往往比较困难。而如果将测试数据在测试脚本中写死,当环境切换或者数据被污染,会导致自动化脚本运行失败。有些自动化测试实践是在交易测试前先备份,测试完成后做反交易或者SQL修改的方式去恢复数据,但由于交易复杂或链路长,导致数据备份恢复的方式的成本较高。
发明内容
本发明实施例的主要目的在于提供一种基于数据对象化的自动化测试方法及装置,让自动化测试工作不再依赖于测试数据,能够快速、便捷且稳定地进行自动化测试。
为了实现上述目的,本发明实施例提供一种基于数据对象化的自动化测试方法,所述方法包括:
利用接收的被测试程序的类名,获取对应的被测试程序的函数;
根据被测试程序的类名及函数,生成测试案例及测试脚本;
利用从数据对象池中获取的实例化测试数据,解析所述测试案例;
根据所述测试案例的解析结果,运行所述测试脚本。
可选的,在本发明一实施例中,所述利用接收的被测试程序的类名,获取对应的被测试程序的函数包括:根据接收的被测试程序的类名,获取对应的BEAN对象;对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
可选的,在本发明一实施例中,所述根据被测试程序的类名及函数,生成测试脚本包括:根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
可选的,在本发明一实施例中,所述根据被测试程序的类名及函数,生成测试案例包括:根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息;根据所述被测试程序的注解,得到输入通讯区的属性;将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例。
可选的,在本发明一实施例中,所述数据对象池中的实例化测试数据通过如下方式生成:对测试数据的属性、值及操作方法进行封装;在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
本发明实施例还提供一种基于数据对象化的自动化测试装置,所述装置包括:
函数获取模块,用于利用接收的被测试程序的类名,获取对应的被测试程序的函数;
文件生成模块,用于根据被测试程序的类名及函数,生成测试案例及测试脚本;
案例解析模块,用于利用从数据对象池中获取的实例化测试数据,解析所述测试案例;
测试脚本模块,用于根据所述测试案例的解析结果,运行所述测试脚本。
可选的,在本发明一实施例中,所述函数获取模块包括:BEAN对象单元,用于根据接收的被测试程序的类名,获取对应的BEAN对象;函数获取单元,用于对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
可选的,在本发明一实施例中,所述文件生成模块具体用于根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
可选的,在本发明一实施例中,所述文件生成模块包括:全量字段信息单元,用于根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息;通讯区属性单元,用于根据所述被测试程序的注解,得到输入通讯区的属性;案例生成单元,用于将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例。
可选的,在本发明一实施例中,所述装置还包括:数据对象池模块,用于对测试数据的属性、值及操作方法进行封装;在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明通过将测试脚本和测试数据完全解耦,提高了测试数据的有效性,增强了自动化测试数据的可读性,让自动化测试工作不再依赖于测试数据,实现了快速、便捷且稳定地自动化测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种基于数据对象化的自动化测试方法的流程图;
图2为本发明实施例中获取被测试程序的方法的流程图;
图3为本发明实施例中测试案例生成的流程图;
图4为本发明实施例中数据对象池构建的流程图;
图5为本发明实施例一种基于数据对象化的自动化测试装置的结构示意图;
图6为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供一种基于数据对象化的自动化测试方法及装置。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例一种基于数据对象化的自动化测试方法的流程图,图中所示方法包括:
步骤S1,利用接收的被测试程序的类名,获取对应的被测试程序的函数。
其中,被测试程序的函数又称被测试程序的方法。具体的,根据测试人员输入的被测试程序的类名,获取得到此类的BEAN对象,再对此BEAN对象,使用反射技术(Reflection,是JAVA等语言中的重要机制),取得此类定义的所有函数,例如AccountOpen(开卡)等各功能实现的方法函数。
步骤S2,根据被测试程序的类名及函数,生成测试案例及测试脚本。
其中,测试脚本一般是JAVA文件,提供给自测的开发人员或者有一定技能的测试人员,用代码的方式做深入的测试,可自定义支持循环、判断等分支组合以及深层次的断言等功能;而测试案例用EXCEL文件管理,测试人员可以直观看到测试用例的输入输出字段,只需要补充增加测试案例或者引用不同测试数据即可完成数据多样化的测试,降低业务测试人员对编码能力的要求。
具体的,根据步骤S1获取到的被测试程序的类名和函数,以字符串的形式输出生成JAVA测试脚本。进一步的,此JAVA测试脚本文件,一般使用TestNG框架。
此外,根据步骤S1获取定的被测试程序的类名和函数,分析被测试的接口程序中对于输入输出的定义,利用反射技术,分析得到输入和输出的通讯区的全量字段信息,并根据对被测试程序注解的分析,得到输入通讯区属性,包括是否必输字段、默认值、数据字典或取值范围,将全量字段信息及输入通讯区属性整合生成测试案例。进一步的,测试案例包含了各案例说明、对应的输入输出通讯区字段、预期值(断言)等内容。
步骤S3,利用从数据对象池中获取的实例化测试数据,解析所述测试案例。
其中,若测试案例中包含对数据对象池里面实例化的测试数据的引用,则要通过调用数据对象的getter等方法,来获取满足指定条件的实例化测试数据的具体的值。
步骤S4,根据所述测试案例的解析结果,运行所述测试脚本。
其中,利用测试案例的解析结果及步骤S2中生成的JAVA测试脚本,使用TestNG框架调度运行此测试脚本里面的有@Test等注解的方法。
具体的,测试案例的解析结果包括输入通讯区字段定义及各个字段的实际数据。运行测试脚本,测试脚本启动测试案例的执行,首先分析测试案例的输入通讯区字段定义及各个字段的实际数据(由步骤S3获取),将其组合打包成完整的输入通讯区内容,发送给被测试程序,获取到被测试程序的返回值,再根据测试案例的输出通讯区字段定义,对返回值进行解析,并比对测试案例的断言判断测试案例的执行结果,从而完成测试案例的执行过程。
其中,测试案例是静态的EXCEL文件,本发明自动化测试的整个流程(包括实际数据的获取等步骤)实际需要测试脚本去启动和流转。以如下测试脚本(JAVA代码)的代码片段为例,首先定义变量xlsFileName,关联此脚本对应的测试案例(EXCEL文件);第一步,initData()启动数据准备,即分析获取测试案例的满足指定条件的实例化数据对象的具体的值;第二步,initInput()按照输入通讯区的定义,以及各个字段的实际数据,组合打包成完整的输入通讯区内容;第三步,callService()发送请求给被测试程序并获取到返回值;第四步,对返回值进行解析和断言判断,完成测试验证。
作为本发明的一个实施例,如图2所示,利用接收的被测试程序的类名,获取对应的被测试程序的函数包括:
步骤S21,根据接收的被测试程序的类名,获取对应的BEAN对象。
其中,根据测试人员输入的被测试程序的类名,获取得到此类的BEAN对象。
步骤S22,对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
进一步的,再对此BEAN对象,使用反射技术,取得此类定义的所有函数,从这些函数中获取对应的被测试程序的函数,例如将测试人员输入的被测试程序的函数名与获得的所有函数进行匹配,若匹配上,则获取被定位到的被测试程序的函数。例如,输入函数名为AccountOpen(开卡),在取得的此类定义的所有函数中,通过匹配定位到该函数。
作为本发明的一个实施例,根据被测试程序的类名及函数,生成测试脚本包括:根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
其中,根据BEAN对象,使用反射技术取得该类对应的所有函数,从这些函数中获取对应的被测试程序的函数,例如将测试人员输入的被测试程序的函数名(输入函数)与获得的所有函数进行匹配,若匹配上,则获取被定位到的被测试程序的函数。例如,输入函数名为AccountOpen(开卡),在取得的此类定义的所有函数中,通过匹配定位到该函数。匹配一致后,则开始以字符串的形式输出生成JAVA测试脚本。
作为本发明的一个实施例,如图3所示,根据被测试程序的类名及函数,生成测试案例包括:
步骤S31,根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息。
其中,根据被测试程序的类名和函数名,获得被测试的程序中对于输入输出的定义,利用反射技术分析得到输入和输出的通讯区的全量字段信息。
步骤S32,根据所述被测试程序的注解,得到输入通讯区的属性。
其中,结合分析被测试程序的注解内容,得到输入通讯区属性,包括是否必输字段、默认值、数据字典或取值范围。对于测试人员可以直观看到测试用例的输入输出字段,只需要补充增加测试案例或者引用不同测试数据即可完成数据多样化的测试,降低业务测试人员对编码能力的要求。
步骤S33,将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例。
具体的,将全量字段信息及输入通讯区的属性整合生成测试案例,测试案例包含了各案例说明、对应的输入输出通讯区字段、预期值(断言)等内容。特别的,测试案例中不直接定义数据内容,如输入通讯区有个卡号的字段,那么此字段对应的输入值中,不能直接赋予6222xxx等实际的卡号数据,而是以调用对象的形式引用数据对象池里面实例化的数据对象,形式如:
{银行卡.get卡号(@银行:工行,卡种:灵通卡,状态:正常,余额>100)}。
作为本发明的一个实施例,方法还包括以OOP面向对象编程的模式对数据对象进行封装管理,赋予数据对象以属性和方法,而且具备对象的继承等特征,在后台建立实例化的数据对象池,以支持实际测试数据的生成、查找、修改等管理。通过数据建模,建立不同的数据对象,譬如可以建立一个“银行卡”的对象,此对象具有卡号、银行、卡种、状态、余额等属性,同时有getter和setter等方法,类似一个JAVA的对象:
银行卡{
属性:id; //id编号
属性:卡号; //如6222xxx
属性:银行; //如工行
属性:卡种; //如灵通卡
属性:状态; //如正常状态
属性:余额; //如1000万元人民币
方法:get卡号 //卡号的getter方法
......
}
对于各数据对象,会生成和维护一定数量的有具体值的实例化的对象,譬如对于“银行卡”这个对象,可能存在一个实例化对象其属性是卡号为6222xxxx1234的工行灵通卡,目前余额为1000万元人民币且状态正常,对象编号id是000001,等等。
如图4所示,建立实例化的数据对象池的过程包括:
步骤S41,对测试数据的属性、值及操作方法进行封装。
其中,按照面向数据对象的特性,将数据封装成各种模型对象,并具体实例化,且对所有的实例化对象进行管理和维护。进一步的,还可以对数据进行模型继承,譬如“银行卡”对象可以继承于“账户”对象,即“银行卡”对象继承了“账户”对象的{号码、银行、状态、余额}等属性和相关方法,但新增了{卡种}等属性和对应的方法。
具体的,如上述“银行卡”的对象,就具有卡号、银行、卡种、状态、余额等属性,而每一个实例化的“银行卡”的具体的对象,其属性都有具体的值。对象的属性一般不直接暴露给外面使用,而是通过方法提供,譬如要获取某个满足一定条件的“银行卡”对象的卡号,需要使用“银行卡”对象的“get卡号”方法,并将其需要满足的条件作为参数传入给方法。
步骤S42,在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
其中,通过调用具体的数据构造工具在测试环境中构造数据,完成初始化,将构造好的测试数据存入数据对象池中,并记录为一个已实例化的数据对象。同时要定时刷新校验,维护测试数据的有效性,且保证多个用户同时请求一笔测试数据时的幂等性。
可选的,可将实例化的测试数据对象封装成具有标准输入和输出定义的RESTFul服务接口,在服务接口上层封装面向用户的SDK,自动化测试中通过集成SDK调用,只需指定测试数据属性即可获取对应的数据。
在本发明一具体实施例中,生成测试脚本的过程,以一个MAVEN+SPRING框架的JAVA工程为例,首先导入要测试程序的倚赖包,然后根据测试人员输入的被测试程序的类名,获取得到此类的BEAN对象,再对此BEAN对象,使用反射技术,取得此类定义的所有函数,若能匹配测试人员输入的被测试程序的函数名,则开始以字符串的形式输出生成JAVA测试脚本。此JAVA测试文件,一般使用TestNG框架,定义@Test注解的方法用于启动测试执行,对于自测的开发人员或者有一定技能的测试人员,可直接在此JAVA测试文件中进行编码,可自定义增加循环、判断等分支组合以及深层次的断言等功能,实现深入的测试。
本发明将测试数据以OOP面向对象编程的模式进行封装管理,赋予数据对象以属性和方法,而且具备对象的继承等特征,在后台建立实例化的数据对象池,支持实际测试数据的生成、查找、修改等管理。同时构建分层的自动化测试方法,将脚本和数据均作为对象进行统一管理,同时又将脚本和数据完全解耦,其中第一层是JAVA测试脚本,支持使用代码的方式通过自定义循环、判断等分支组合做深入的测试,不对接任何数据;第二层是EXCEL案例清单,也不能直接看到具体数据,只能通过接口来使用符合需要的数据对象;第三层是后台封装的数据对象池,池里面有具体的实例化数据对象,此对象对外只通过接口提供数据的使用,一般不直接暴露数据属性。
因此,本发明的方法有以下优势:
1、构建分层的自动化测试方法,将脚本和数据完全解耦,可以认为数据也是脚本运行过程中所需调用的对象,让自动化测试工作不再需要关注测试数据。对于测试人员来说,通过使用测试数据服务,自动化测试中的测试数据由原先写死固定数值的方式改变为指定测试数据属性动态获取测试数据的方式,提高了测试数据的有效性,增强了自动化测试数据的可读性。
2、将测试数据以OOP面向对象编程的模式进行封装管理,赋予数据对象以属性和方法,而且具备对象的继承等特征,让数据也能使用成熟的对象模型的管理机制,充分利用了封装和继承的特性,一方面方便根据属性进行分类和管理,一方面能自动构建满足属性的测试数据对象,有效提升了测试数据的管理和维护。
如图5所示为本发明实施例一种基于数据对象化的自动化测试装置的结构示意图,图中所示装置包括:
函数获取模块10,用于利用接收的被测试程序的类名,获取对应的被测试程序的函数。
具体的,根据测试人员输入的被测试程序的类名,获取得到此类的BEAN对象,再对此BEAN对象,使用反射技术,取得此类定义的所有函数,若能匹配测试人员输入的被测试程序的函数名,则获取定位到被测试程序的函数。
文件生成模块20,用于根据被测试程序的类名及函数,生成测试案例及测试脚本。
其中,测试脚本一般是JAVA文件,提供给自测的开发人员或者有一定技能的测试人员,用代码的方式做深入的测试,可自定义支持循环、判断等分支组合以及深层次的断言等功能;而测试案例用EXCEL文件管理,测试人员可以直观看到测试用例的输入输出字段,只需要补充增加测试案例或者引用不同测试数据即可完成数据多样化的测试,降低业务测试人员对编码能力的要求。
具体的,根据方法获取模块10获取到的被测试程序的类名和函数,以字符串的形式输出生成JAVA测试脚本。进一步的,此JAVA测试脚本文件,一般使用TestNG框架。
此外,根据方法获取模块10获取定的被测试程序的类名和函数,分析被测试的接口程序中对于输入输出的定义,利用反射技术,分析得到输入和输出的通讯区的全量字段信息,并根据对被测试程序注解的分析,得到输入通讯区属性,包括是否必输字段、默认值、数据字典或取值范围,将全量字段信息及输入通讯区属性整合生成测试案例。进一步的,测试案例包含了各案例说明、对应的输入输出通讯区字段、预期值(断言)等内容。
案例解析模块30,用于利用从数据对象池中获取的实例化测试数据,解析所述测试案例。
其中,若测试案例中包含对数据对象池里面实例化的测试数据的引用,则要通过调用数据对象的getter等方法,来获取满足指定条件的实例化测试数据的具体的值。此外,解析测试案例包括按照输入通讯区的定义,打包组合输入通讯区的数据。
测试脚本模块40,用于根据所述测试案例的解析结果,运行所述测试脚本。
具体的,利用测试案例的解析结果及步骤S2中生成的JAVA测试脚本,使用TestNG框架调度运行此测试脚本里面的有@Test等注解的方法。
作为本发明的一个实施例,函数获取模块包括:
BEAN对象单元,用于根据接收的被测试程序的类名,获取对应的BEAN对象;
函数获取单元,用于对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
作为本发明的一个实施例,文件生成模块具体用于根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
作为本发明的一个实施例,文件生成模块包括:
全量字段信息单元,用于根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息;
通讯区属性单元,用于根据所述被测试程序的注解,得到输入通讯区的属性;
案例生成单元,用于将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例。
作为本发明的一个实施例,装置还包括:数据对象池模块,用于对测试数据的属性、值及操作方法进行封装;在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
基于与上述一种基于数据对象化的自动化测试方法相同的申请构思,本发明还提供了上述一种基于数据对象化的自动化测试装置。由于该一种基于数据对象化的自动化测试装置解决问题的原理与一种基于数据对象化的自动化测试方法相似,因此该一种基于数据对象化的自动化测试装置的实施可以参见一种基于数据对象化的自动化测试方法的实施,重复之处不再赘述。
本发明通过将测试脚本和测试数据完全解耦,提高了测试数据的有效性,增强了自动化测试数据的可读性,让自动化测试工作不再依赖于测试数据,实现了快速、便捷且稳定地自动化测试。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图6所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图6中所示的所有部件;此外,电子设备600还可以包括图6中没有示出的部件,可以参考现有技术。
如图6所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种基于数据对象化的自动化测试方法,其特征在于,所述方法包括:
利用接收的被测试程序的类名,获取对应的被测试程序的函数;
根据被测试程序的类名及函数,生成测试案例及测试脚本;
利用从数据对象池中获取的实例化测试数据,解析所述测试案例;
根据所述测试案例的解析结果,运行所述测试脚本;
其中,所述根据被测试程序的类名及函数,生成测试案例包括:
根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息;
根据所述被测试程序的注解,得到输入通讯区的属性;
将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例;
其中,所述数据对象池中的实例化测试数据通过如下方式生成:
对测试数据的属性、值及操作方法进行封装;
在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
2.根据权利要求1所述的方法,其特征在于,所述利用接收的被测试程序的类名,获取对应的被测试程序的函数包括:
根据接收的被测试程序的类名,获取对应的BEAN对象;
对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
3.根据权利要求1所述的方法,其特征在于,所述根据被测试程序的类名及函数,生成测试脚本包括:根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
4.一种基于数据对象化的自动化测试装置,其特征在于,所述装置包括:
函数获取模块,用于利用接收的被测试程序的类名,获取对应的被测试程序的函数;
文件生成模块,用于根据被测试程序的类名及函数,生成测试案例及测试脚本;
案例解析模块,用于利用从数据对象池中获取的实例化测试数据,解析所述测试案例;
测试脚本模块,用于根据所述测试案例的解析结果,运行所述测试脚本;
其中,所述文件生成模块包括:
全量字段信息单元,用于根据所述被测试程序的类名及函数,利用反射技术确定输入通讯区的全量字段信息及输出通讯区的全量字段信息;
通讯区属性单元,用于根据所述被测试程序的注解,得到输入通讯区的属性;
案例生成单元,用于将所述输入通讯区的属性、全量字段信息,以及输出通讯区的全量字段信息整合,生成测试案例;
其中,所述装置还包括:数据对象池模块,用于对测试数据的属性、值及操作方法进行封装;在测试环境中对封装后的测试数据进行数据构造,并将完成数据构造的测试数据作为实例化测试数据存入数据对象池中。
5.根据权利要求4所述的装置,其特征在于,所述函数获取模块包括:
BEAN对象单元,用于根据接收的被测试程序的类名,获取对应的BEAN对象;
函数获取单元,用于对所述BEAN对象使用反射技术,获得所述类名对应的被测试程序的函数。
6.根据权利要求4所述的装置,其特征在于,所述文件生成模块具体用于根据被测试程序的类名及函数,对获取的输入函数进行匹配,若匹配一致,则以字符串的形式生成测试脚本。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至3任一项所述方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至3任一项所述方法的计算机程序。
CN202010755810.3A 2020-07-31 2020-07-31 基于数据对象化的自动化测试方法及装置 Active CN111930617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010755810.3A CN111930617B (zh) 2020-07-31 2020-07-31 基于数据对象化的自动化测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010755810.3A CN111930617B (zh) 2020-07-31 2020-07-31 基于数据对象化的自动化测试方法及装置

Publications (2)

Publication Number Publication Date
CN111930617A CN111930617A (zh) 2020-11-13
CN111930617B true CN111930617B (zh) 2023-08-25

Family

ID=73314940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010755810.3A Active CN111930617B (zh) 2020-07-31 2020-07-31 基于数据对象化的自动化测试方法及装置

Country Status (1)

Country Link
CN (1) CN111930617B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685325B (zh) * 2021-01-22 2023-07-28 中信银行股份有限公司 一种etl软件研发测试管理方法及系统
CN112905456B (zh) * 2021-02-07 2023-06-06 重庆富民银行股份有限公司 基于maven生命周期的自动化测试报告生成方法
CN113051163A (zh) * 2021-03-24 2021-06-29 中国工商银行股份有限公司 单元测试方法、装置、电子设备及存储介质
CN113342644B (zh) * 2021-05-31 2024-03-26 中国工商银行股份有限公司 基于语法分析技术的测试脚本自动生成方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN108614770A (zh) * 2018-04-09 2018-10-02 中国工商银行股份有限公司 自动化测试断言方法、装置、存储介质及设备
CN109614313A (zh) * 2018-10-25 2019-04-12 平安科技(深圳)有限公司 自动化测试方法、装置及计算机可读存储介质
CN110955600A (zh) * 2019-11-27 2020-04-03 中国银行股份有限公司 接口测试方法及装置
CN111177007A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 一种基于测试数据自动生成bdd测试案例的方法及系统
CN111240987A (zh) * 2020-01-16 2020-06-05 北京奇艺世纪科技有限公司 移植程序检测方法、装置、电子设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10698793B2 (en) * 2018-08-23 2020-06-30 International Business Machines Corporation Function-message oriented test case generation for supporting continuous globalization verification testing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631720A (zh) * 2013-12-20 2014-03-12 百度在线网络技术(北京)有限公司 测试用例的生成方法和装置
CN108614770A (zh) * 2018-04-09 2018-10-02 中国工商银行股份有限公司 自动化测试断言方法、装置、存储介质及设备
CN109614313A (zh) * 2018-10-25 2019-04-12 平安科技(深圳)有限公司 自动化测试方法、装置及计算机可读存储介质
CN110955600A (zh) * 2019-11-27 2020-04-03 中国银行股份有限公司 接口测试方法及装置
CN111177007A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 一种基于测试数据自动生成bdd测试案例的方法及系统
CN111240987A (zh) * 2020-01-16 2020-06-05 北京奇艺世纪科技有限公司 移植程序检测方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN111930617A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN111930617B (zh) 基于数据对象化的自动化测试方法及装置
CN109302522B (zh) 测试方法、装置以及计算机系统和介质
CN109828903B (zh) 自动化测试方法、装置、计算机装置及存储介质
WO2020000706A1 (zh) 基于数据库比对的接口测试方法、系统、设备和存储介质
CN107133174A (zh) 测试用例代码自动生成装置与方法
CN108959076A (zh) 一种api在线调试方法
CN107832207A (zh) 接口性能测试方法、装置、存储介质和计算机设备
CN110286974A (zh) 基于h5页面的应用配置方法、装置、设备及存储介质
CN112463634B (zh) 微服务架构下的软件测试方法及装置
CN109871312B (zh) 一种接口测试方法、装置、设备及可读存储介质
CN108132879A (zh) 自动化软件测试方法、平台、终端及介质
CN110955600A (zh) 接口测试方法及装置
CN112988601A (zh) 测试脚本开发方法及装置
CN113051163A (zh) 单元测试方法、装置、电子设备及存储介质
CN113127108A (zh) 业务请求的处理方法及装置、存储介质以及电子设备
Jin-Hua et al. The w-model for testing software product lines
CN107450909A (zh) 用于软件开发工具包集成有效性检查的处理方法和装置
CN114202419A (zh) 一种报文生成方法、装置、设备、存储介质及程序产品
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN114443039A (zh) 输入参数校验方法、装置、电子设备及存储介质
CN103955425A (zh) 网页web探索测试装置及方法
CN112860585B (zh) 一种测试脚本断言生成方法及装置
CN113157559B (zh) 流量筛选方法及装置
CN110737426A (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