测试用例的生成方法和装置
技术领域
本申请涉及计算机技术,尤其涉及一种测试用例的生成方法和装置。
背景技术
测试,是为了保证应用程序的可靠性,在应用程序上线之前必不可少的环节,通过设计不同的测试用例,以检测各测试用例对应的性能的可靠性。
现有技术中,针对不同的测试需求,测试人员需要编写不同的测试用例对应的测试脚本,各测试用例的编写过程完全独立。
然而,采用现有技术的方法,测试用例的编写效率不高。
发明内容
本申请提供一种测试用例的生成方法和装置,用于提高测试用例的编写效率。
本申请第一方面提供一种测试用例的生成方法,包括:
获取待测试对象的对象标识;
根据所述对象标识,获取所述对象的拓扑结构;
根据所述拓扑结构,以图形化界面显示所述拓扑结构对应的拓扑图;
在所述图形化界面接收输入的测试条件,生成测试用例。
可选地,所述根据所述对象标识,获取所述对象的拓扑结构,包括:
向日志分析服务器发送获拓扑结构的获取请求,所述拓扑结构的获取请求中包含所述对象标识;
接收所述日志分析服务器发送的所述对象的拓扑结构。
可选地,所述向日志分析服务器发送获拓扑结构的获取请求之前,还包括:
根据所述对象标识,确定存在所述对象的拓扑结构。
可选地,还包括:
获取所述待测试对象的版本号或者时间戳;
根据所述版本号或者时间戳,确定更新所述对象的拓扑结构;
向所述日志分析服务器发送拓扑结构更新请求,所述拓扑结构更新请求中包含所述对象标识。
可选地,所述向日志分析服务器发送获取拓扑结构的获取请求之前,还包括:
向对象服务器发送生成日志请求,所述生成日志请求中包含筛选参数。
本申请第二方面提供一种测试用例的生成装置,包括:
获取模块,用于获取待测试对象的对象标识;
处理模块,用于根据所述对象标识,获取所述对象的拓扑结构;
显示模块,用于根据所述拓扑结构,以图形化界面显示所述拓扑结构对应的拓扑图;
所述处理模块,还用于在所述图形化界面接收输入的测试条件,生成测试用例。
可选地,还包括:
发送模块和接收模块;
所述处理模块具体用于控制发送模块向日志分析服务器发送获拓扑结构的获取请求,所述拓扑结构的获取请求中包含所述对象标识;控制接收模块接收所述日志分析服务器发送的所述对象的拓扑结构。
可选地,所述处理模块还用于根据所述对象标识,确定存在所述对象的拓扑结构。
可选地,获取模块还用于获取所述待测试对象的版本号或者时间戳;
所述处理模块,还用于根据所述版本号或者时间戳,确定更新所述对象的拓扑结构;
所述发送模块,还用于向所述日志分析服务器发送拓扑结构更新请求,所述拓扑结构更新请求中包含所述对象标识。
可选地,所述发送模块还用于向对象服务器发送生成日志请求,所述生成日志请求中包含筛选参数。
本申请提供的测试用例的生成方法和装置,通过获取待测试对象的对象标识,根据对象标识,获取对象的拓扑结构,根据拓扑结构,以图形化界面显示拓扑结构对应的拓扑图。在图形化界面接收输入的测试条件,生成测试用例。由于将拓扑结构图形化,并在图像化界面接收输入的测试条件,生成测试用例,提高了测试用例的编写效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的一种应用场景示意图;
图2为本申请测试用例生成方法实施例一的流程示意图;
图3为本申请测试用例生成方法实施例二的流程示意图;
图4为本申请测试用例生成方法实施例三的流程示意图;
图5为本申请测试用例生成方法实施例四的流程示意图;
图6为本申请测试用例的生成装置实施例一的结构示意图;
图7为本申请测试用例的生成装置实施例二的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请提供的测试用例的生成方法,通过基于待测试对象的日志,快速获取对象的拓扑结构,以图形画界面显示拓扑结构对应的拓扑图,在图形化界面接收输入的测试条件,生成测试用例,提高了测试用例的编写效率。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本申请的一种应用场景示意图,该场景中包括日志处理部分、日志分析部分以及测试用例生成部分;其中,日志处理部分可以包括:应用服务器、日志管理代理和文件管理器;其中,日志分析部分包括日志分析服务器;测试用例生成部分包括:网页服务器和自动化测试服务器。
图2为本申请测试用例生成方法实施例一的流程示意图,如图1所示,本实施例的方法如下:
S201:网页服务器获取待测试对象的对象标识。
待测试对象通常指应用程序,应用程序通常由如图1所示的应用服务器管理。
其中,待测试对象的对象标识,例如:可以是应用程序的名称、应用程序的编号、版本号或其他能够唯一标识该对象的标识等。
S202:网页服务器根据对象标识,获取对象的拓扑结构。
其中一种可能的实现方式为:网页服务器内存储了已有拓扑结构对应的对象的标识;网页服务器根据对象的标识,确定是否存在对象的拓扑结构;若存在,则向日志分析服务器发送拓扑结构获取请求,拓扑结构获取请求中包含该对象的标识,接收日志分析服务器发送的该对象对应的拓扑结构。
另一种可能实现方式为:网页服务器直接向日志分析服务器发送拓扑结构获取请求,拓扑结构获取请求中包含该对象的标识,日志分析服务器根据该对象的标识,确定是否存在该对象的拓扑结构,若存在,向网页服务器发送该对象的拓扑结构,若不存在,获取该对象的日志文件,通过分析日志文件,获取该对象的拓扑结构,并向网页服务器发送该对象的拓扑结构。
S203:网页服务器根据拓扑结构,以图形化界面显示拓扑结构对应的拓扑图。
网页服务器根据获取到的拓扑结构,以图形化界面显示拓扑结构对应的拓扑图。
S204:网页服务器在图形化界面接收输入的测试条件,生成测试用例。
针对拓扑图的每个节点,用户可以手动输入测试条件,或者,输入模拟结果;对于外部调用接口输入模拟结果;对于数据库,插入数据,可以输入不同类型条件自动设置,如边界值和等价划分等。
对用户在图形化界面输入的测试条件进行处理,以对象的标识或者接口名命名,生成并保存测试用例,以进行自动化测试。
本实施例,通过获取待测试对象的对象标识,根据对象标识,获取对象的拓扑结构,根据拓扑结构,以图形化界面显示拓扑结构对应的拓扑图。在图形化界面接收输入的测试条件,生成测试用例。由于将拓扑结构图形化,并在图像化界面接收输入的测试条件,生成测试用例,提高了测试用例的编写效率。
图3为本申请测试用例生成方法实施例二的流程示意图,图3是在图2所示实施例的基础上,S202的一种可能的实现方式,如图3所示:
S2021a:网页服务器向日志分析服务器发送获取拓扑结构的获取请求。
其中,所述拓扑结构的获取请求中的包含上述对象标识,以使日志分析服务器获知网页服务器想要获取哪个对象的拓扑结构。
S2022a:日志分析服务器根据对象的标识,确定是否存在该对象的拓扑结构。
若不存在,执行S2023a和S2024a,若存在直接执行S2024a。
S2023a:获取该对象的日志文件,通过分析日志文件,获取该对象的拓扑结构
S2024a:日志分析服务器向网页服务器发送该对象的拓扑结构。
本实施例中,日志分析服务器可以根据对象的日志文件快速获取对象的拓扑结构。
图4为本申请测试用例生成方法实施例三的流程示意图,图4是在图2所示实施例的基础上,S202的另一种可能的实现方式,如图4所示:
S2021b:网页服务器根据所述对象标识,确定是否存在所述对象的拓扑结构。
若不存在执行S2022b,若存在,执行S2023b。
S2022b:网页服务器向对象服务器发送生成日志请求。
其中,生成日志请求中包含筛选参数。对象服务器根据筛选参数,生成筛选参数对应的日志。
S2023b:网页服务器向日志分析服务器发送获取拓扑结构的获取请求。
S2024b:日志分析服务器向网页服务器发送该对象的拓扑结构。
本实施例中,通过网页服务器向对象服务器发送生成日志请求,以触发对象服务器生成筛选参数对应的日志。
图5为本申请测试用例生成方法实施例四的流程示意图,图5是在图4所示实施例的基础上,进一步,在S2023b之前还包括:
S20201:网页服务器获取所述待测试对象的版本号或者时间戳。
S20202:网页服务器根据所述版本号或者时间戳,确定更新所述对象的拓扑结构。
S20203:网页服务器向所述日志分析服务器发送拓扑结构更新请求。
其中,拓扑结构更新请求中包含所述对象标识。以使日志分析服务器更新所述对象标识对应的接口或者应用的拓扑结构。
在上述各实施例中,采用日志打点的方式记录业务的调用关系,其中,打点格式如下所示:
xx-xx-xx xx:xx:xx[app][class][action]-[request accept]
xx-xx-xx xx:xx:xx[app][class][action]-[database:xxx table:xxx action:xxx]
xx-xx-xx xx:xx:xx[app][class][action]-[app2:http://xxx.interface.com]
xx-xx-xx xx:xx:xx[app][class][action]-[memcache:xxx key:xxx action:xxx]
可以根据入参控制是否输出打点日志,以避免多余的日志输出。
经过日志管理代理处理之后的日志,统一存储于文件管理器中,以便日志分析服务器获取。
在上述实施例中,日志分析服务器可以更新拓扑结构的方式包括但不限于如下方式:
其中,一种可能的实现方式:日志分析服务器配置定时任务,定时器到时,则从日志管理器增量获取日志,根据增量获取日志,更新已有的拓扑结构或者生成新的拓扑结构;
另一种可能的实现方式,日志分析服务器从消息队列中获取其他应用的更新消息,增量获取更新消息中指示的接口或者应用的日志,根据日志更新或者生成指示的接口或者应用的拓扑结构。
日志分析服务器以接口名或者应用名为格式,存储分析的拓扑结构。
图6为本申请测试用例的生成装置实施例一的结构示意图,如图6所示,本实施例的装置包括:获取模块601、处理模块602和显示模块603,其中,获取模块601用于获取待测试对象的对象标识;处理模块602用于根据所述对象标识,获取所述对象的拓扑结构;显示模块603用于根据所述拓扑结构,以图形化界面显示所述拓扑结构对应的拓扑图;所述处理模块602还用于在所述图形化界面接收输入的测试条件,生成测试用例。
图7为本申请测试用例的生成装置实施例二的结构示意图,如图7所示,还包括:发送模块604和接收模块605,其中,处理模块602具体用于控制发送模块604向日志分析服务器发送获拓扑结构的获取请求,所述拓扑结构的获取请求中包含所述对象标识;控制接收模块605接收所述日志分析服务器发送的所述对象的拓扑结构。
在上述实施例中,所述处理模块602还用于根据所述对象标识,确定存在所述对象的拓扑结构。
在上述实施例中,获取模块601还用于获取所述待测试对象的版本号或者时间戳;所述处理模块602还用于根据所述版本号或者时间戳,确定更新所述对象的拓扑结构;所述发送模块604还用于向所述日志分析服务器发送拓扑结构更新请求,所述拓扑结构更新请求中包含所述对象标识。
在上述实施例中,所述发送模块604还用于向对象服务器发送生成日志请求,所述生成日志请求中包含筛选参数。
上述装置对应地可用于执行图2-图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。