CN108073511A - 测试代码生成方法和装置 - Google Patents
测试代码生成方法和装置 Download PDFInfo
- Publication number
- CN108073511A CN108073511A CN201611036291.5A CN201611036291A CN108073511A CN 108073511 A CN108073511 A CN 108073511A CN 201611036291 A CN201611036291 A CN 201611036291A CN 108073511 A CN108073511 A CN 108073511A
- Authority
- CN
- China
- Prior art keywords
- test
- code
- item
- generation
- interface
- 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.)
- Granted
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/3684—Test management for test design, e.g. generating new test cases
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
本发明公开了一种测试代码生成方法,所述方法包括:在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架;显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项;在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。本发明还公开了一种测试代码生成装置。本发明在测试框架的测试项中输入测试数据,即可生成测试代码,提高了测试代码生成的效率和智能性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试代码生成方法和装置。
背景技术
目前生成的测试代码,都是人工进行编写生成的,人工编写测试代码,需要执行对页面的控件进行定义,对页面元素进行定义等等操作,即使生成相似的测试代码,都需要重新进行编写,导致测试代码的生成效率和智能性都较低。
发明内容
本发明的主要目的在于提供一种测试代码生成方法和装置,旨在解决现有的测试代码生成方式,效率和智能性较低的技术问题。
为实现上述目的,本发明提供的一种测试代码生成方法,所述测试代码生成方法包括:
在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架;
显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项;
在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
优选地,所述在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码的步骤包括:
在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
优选地,所述基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码的步骤,包括:
在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
优选地,所述在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息的步骤之后,所述测试代码生成方法还包括:
对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
所述基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码的步骤之后,所述测试代码生成方法还包括:
将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
优选地,所述在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码的步骤之后,所述测试代码生成方法还包括:
在接收到测试代码的执行指令时,运行生成的所述测试代码;
根据运行的测试代码生成测试报告。
此外,为实现上述目的,本发明还提供一种测试代码生成装置,所述测试代码生成装置包括:
获取模块,用于在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架;
显示模块,用于显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项;
生成模块,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
优选地,所述生成模块包括:
获取单元,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
生成单元,用于基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
优选地,所述获取单元,还用于在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
所述生成单元,还用于根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
优选地,所述生成模块还包括:
添加单元,用于对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
存储单元,用于将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
优选地,所述测试代码生成装置还包括:
运行模块,用于在接收到测试代码的执行指令时,运行生成的所述测试代码;
所述生成模块,还用于根据运行的测试代码生成测试报告。
本发明提出的测试代码生成方法和装置,在接收到测试代码生成请求时,先基于所述测试代码生成请求获取对应的测试框架,然后显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项,在接收到基于所述测试界面的各个测试项输入的测试数据时,再基于各个测试项的测试数据生成测试代码,实现了在测试框架的测试项中输入测试数据,即可生成测试代码,无须手动编写测试代码,提高了测试代码生成的效率和智能性。
附图说明
图1为本发明测试代码生成方法第一实施例的流程示意图;
图2为图1中步骤S30的细化流程示意图;
图3为本发明测试代码生成方法第二实施例的流程示意图;
图4为本发明测试框架对应的测试界面的较佳示意图;
图5为本发明测试框架内部的各个测试项关联的参数信息的较佳示意图;
图6为本发明测试代码生成装置第一实施例的功能模块示意图;
图7为图6中生成模块30的细化功能模块示意图;
图8为本发明测试代码生成装置第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种测试代码生成方法。
参照图1,图1为本发明测试代码生成方法第一实施例的流程示意图。
在本实施例中,所述测试代码生成方法包括:
步骤S10,在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架。
在本实施例中,在接收到测试代码生成请求时,终端先确定待生成测试代码的类型,然后根据确定的类型获取对应的测试框架。本实施例中,所述测试框架的类型如:终端类测试框架、应用类测试框架等等,下文以应用类测试框架为例进行详述。所述应用类测试框架如团队维护的测试框架。
其中,所述测试框架包括以下各种元素:
src:PageFactory页面元素定义,用于定义页面长什么样;
PageOperation页面控制代码,表示页面的逻辑行为,如页面跳转;
模块名XXX_Test,用于定义测试代码的名称;
Jar包:测试系统用到的Jar包;
Assist:运行中需要调用的exe文件;
Config:配置文件,如url,datapath,database连接等;
Lib:存放jar包的地方;
Log:运行日志;
Report:报告;
Task:tastNG执行时的测试入口xml文件。
步骤S20,显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项。
在获取到测试框架之后,显示所述测试框架对应的测试界面,本实施例中,所述测试界面包括预设个数的测试项,所述测试项是事先定义好的,可以根据具体情况进行增删,不同的测试框架,对应的测试项不同,其中,各个测试项在测试界面中是以控件的形式显示的。
本实施例中,各个测试项支持大部分的控件类型,包括:sendKeys,click,select,button,date,Comment等控件类型。其中,sendKeys控件支持n位随机数或者随机字母生成;select控件支持“随机值”和指定字符串,date控件支持“today”和readonly类型的日期值输入;button控件支持弹出框处理如“提示确认”。
步骤S30,在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
具体地,参照图2,所述步骤S30包括:
步骤S31,在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
步骤S32,基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
在本实施例中,在各个测试项的类型不同的情况下,基于所述测试界面的各个测试项输入的测试数据的方式也相应不同,例如,当测试项的控件是select控件,则该测试数据是基于select控件选择输入的,各个测试项的测试数据的输入方式根据该测试项的类型决定,此处不进行一一赘述。
进一步地,用户在所述测试界面的各个测试项中输入测试数据时,由于所述测试界面中的各个测试项都是以控件的形式显示的,为了使用户准确的在各个测试项所在位置输入对应的测试数据,在所述测试界面的各个测试项中显示该测试项的名称,以便于用户得知各个测试项对应的名称。可以理解,各个测试项的变量、类型以及定位信息,是事先就设置好的,无须在测试界面中显示。
在每个测试项所在位置接收到用户输入的测试数据时,即可获取各个测试项关联的参数信息,每个测试项都关联有参数信息,所述参数信息包括名称、变量、类型以及定位信息等等;其中,类型如上文所述的click,select等类型,定位信息是表示该测试项在数据库中的存储位置。可以理解,不同的测试项关联的参数信息不同。
在接收到用户基于所述测试界面的各个测试项输入的测试数据,以及获取到每个测试项关联的参数信息之后,为了确保测试数据已经输入完成,确实可以测试了,所述测试界面显示生成按钮,当用户点击所述生成按钮时,所述终端根据每个测试项所在位置接收到的测试数据,以及每个测试项关联的参数信息,生成测试代码。在本实施例中,由于各个测试项事先已经定义好名称、变量、类型以及定位信息,因此,该测试框架实际上对应有一个完整的模板,那么基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码,实际上就是在该模板中,将用户输入的每个测试数据添加到对应的位置,最终得到生成测试代码的文件。
本实施例中,所述测试界面显示生成按钮,可以是一直处于显示状态,当然,还可在所有测试项所在位置检测到用户输入的测试数据之后,才显示所述生成按钮。
由于每次生成测试代码时,若是需要对测试代码进行信息的备注,一般是在测试项的变量中进行备注信息的添加,由于在变量中添加备注信息,后续就无法修改该备注信息,只能重新进行测试代码的生成,而且需要重新执上述的过程,导致测试代码的生成方式不够便捷。
因此,本实施例中,为了保证后续方便修改测试代码的备注信息。所述步骤S32,包括:
步骤A,在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
步骤B,根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
也就是说,所述测试框架的测试界面还会显示备注测试项,在生成测试代码之前,若用户基于所述备注测试项输入相应的备注信息,则所述终端获取用户基于所述备注测试项中输入的备注信息,并将所述备注信息添加到备注测试项所在的位置中,然后根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
进一步地,为了对备注信息的添加时间进行记录,所述步骤A之后,所述步骤S30还包括:
步骤C,对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
所述步骤S32之后,所述步骤S30还包括:
步骤D,将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
在本实施例中,在对测试代码增加备注信息之后,对添加的所述备注信息添加时间戳,所述时间戳与备注信息的添加时间相同,以实现对备注信息的添加时间进行记录。后续生成测试代码之后,将添加时间戳的测试代码存储到预设存储空间,便于在所述预设存储空间中查找该添加了时间戳的所述测试代码。
当然,后续在接收到到备注信息的更新指令时,所述终端获取更新后的备注信息,并根据更新后的备注信息更新所述测试代码,并对更新后的测试代码添加时间戳并存储,此时,可以用更新后的测试代码替换掉之前存储的测试代码,也可以直接存储新的测试代码,便于后续查看添加两种备注信息的测试代码。
进一步地,本实施例中,所述测试界面还包括拷贝按钮,用于生成测试代码之后,将所述测试代码拷贝至预设区域,测试代码的拷贝方式简单便捷。
本实施例提出的测试代码生成方法,在接收到测试代码生成请求时,先基于所述测试代码生成请求获取对应的测试框架,然后显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项,在接收到基于所述测试界面的各个测试项输入的测试数据时,再基于各个测试项的测试数据生成测试代码,实现了在测试框架的测试项中输入测试数据,即可生成测试代码,无须手动编写测试代码,提高了测试代码生成的效率和智能性。
进一步地,基于第一实施例提出本发明测试代码生成方法的第二实施例,在本实施例中,参照图3,所述步骤S30之后,所述测试代码生成方法还包括:
步骤S40,在接收到测试代码的执行指令时,运行生成的所述测试代码;
步骤S50,根据运行的测试代码生成测试报告。
在本实施例中,在生成测试代码之后,若接收到测试代码的执行指令时,则运行生成的所述测试代码,同时,在运行所述测试代码时,根据运行的测试代码生成测试报告。本实施例中,生成测试代码时,同时生成多种类型的测试代码,相应的,生成的测试报告也包括多种,生成的测试代码优选包括以下几种:
a、新建测试数据XML文件代码(存在工程的Task目录下);
b、页面元素PageFactory控件代码;
c、页面操作控制代码PageOperation;
d、测试用例XXX_Test代码;
e、TestNG测试入口xml文件(存在工程的Task目录下)。
可以理解,本实施例中,根据测试框架以及用户输入的测试数据,生成相应的测试代码,相当于是自动完成大量自动化测试用例,无需用户手动一个个编写,自动生成,提高了测试代码生成的效率和灵活性。
应当理解的是,本发明中采用自动化的测试框架,具备以下优点:
代码重用,测试代码重用;
提高覆盖率;
场景恢复,记录下之后,下次就会自动执行刚才的动作;
低成本维护;
减少人工干预;
简单方便地生成测试报告。
为更好理解本发明,基于图1至图3所述实施例的具体描述,本实施例以具体的应用场景再次描述本发明测试代码生成方法的具体实现过程。
参照图4,图4为本发明测试框架对应的测试界面,当前所述测试框架为应用类测试框架,如团队维护,该测试界面中有团队编码、所在机构、服务状态、团队名称、管理责任人UM、团队负责人、服务管理负责人、备注等多个测试项。
用户基于所述测试界面中的各个测试项输入相应的测试数据,如在团队名称中输入“上海团队”,服务状态中输入“有效”等等,在各个测试项输入完成之后,点击提交按钮。
此时,所述测试框架内部的各个测试项关联的参数信息可参照图5,包括名称、变量、类型、定位等等,终端在接收到用户基于各个测试项所在位置输入的测试数据时,即可根据各个测试项的测试数据以及各个测试项关联的参数信息,生成测试代码。由于本实施例中,生成的测试代码包括多种,因此,最终得到的测试包括也包括多种,本发明优选包括5种测试代码,相应的就有5种测试报告。
可以理解,本方案简单易操作,代码生成和拷贝都是一键操作,能生多多种Web自动化测试代码。还可以生成所有代码的文件名,便于新增测试脚本,代码风格良好,生成的代码包含详细注释,可读性强,同时可随意增减测试项,支持反复生成代码,使得代码的生成方式非常智能。
本发明进一步提供一种测试代码生成装置。
参照图6,图6为本发明测试代码生成装置100第一实施例的功能模块示意图。
需要强调的是,对本领域的技术人员来说,图6所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图6所示的测试代码生成装置100的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该测试代码生成装置100的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
在本实施例中,所述测试代码生成装置100包括:
获取模块10,用于在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架。
在本实施例中,在接收到测试代码生成请求时,先确定待生成测试代码的类型,然后获取模块10根据确定的类型获取对应的测试框架。本实施例中,所述测试框架的类型如:终端类测试框架、应用类测试框架等等,下文以应用类测试框架为例进行详述。所述应用类测试框架如团队维护的测试框架。
其中,所述测试框架包括以下各种元素:
src:PageFactory页面元素定义,用于定义页面长什么样;
PageOperation页面控制代码,表示页面的逻辑行为,如页面跳转;
模块名XXX_Test,用于定义测试代码的名称;
Jar包:测试系统用到的Jar包;
Assist:运行中需要调用的exe文件;
Config:配置文件,如url,datapath,database连接等;
Lib:存放jar包的地方;
Log:运行日志;
Report:报告;
Task:tastNG执行时的测试入口xml文件。
显示模块20,用于显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项。
在获取到测试框架之后,显示模块20显示所述测试框架对应的测试界面,本实施例中,所述测试界面包括预设个数的测试项,所述测试项是事先定义好的,可以根据具体情况进行增删,不同的测试框架,对应的测试项不同,其中,各个测试项在测试界面中是以控件的形式显示的。
本实施例中,各个测试项支持大部分的控件类型,包括:sendKeys,click,select,button,date,Comment等控件类型。其中,sendKeys控件支持n位随机数或者随机字母生成;select控件支持“随机值”和指定字符串,date控件支持“today”和readonly类型的日期值输入;button控件支持弹出框处理如“提示确认”。
生成模块30,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
具体地,参照图7,所述生成模块30包括:
获取单元31,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
生成单元32,用于基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
在本实施例中,在各个测试项的类型不同的情况下,基于所述测试界面的各个测试项输入的测试数据的方式也相应不同,例如,当测试项的控件是select控件,则该测试数据是基于select控件选择输入的,各个测试项的测试数据的输入方式根据该测试项的类型决定,此处不进行一一赘述。
进一步地,用户在所述测试界面的各个测试项中输入测试数据时,由于所述测试界面中的各个测试项都是以控件的形式显示的,为了使用户准确的在各个测试项所在位置输入对应的测试数据,在所述测试界面的各个测试项中显示该测试项的名称,以便于用户得知各个测试项对应的名称。可以理解,各个测试项的变量、类型以及定位信息,是事先就设置好的,无须在测试界面中显示。
获取单元31在每个测试项所在位置接收到用户输入的测试数据时,所述获取单元31即可获取各个测试项关联的参数信息,每个测试项都关联有参数信息,所述参数信息包括名称、变量、类型以及定位信息等等;其中,类型如上文所述的click,select等类型,定位信息是表示该测试项在数据库中的存储位置。可以理解,不同的测试项关联的参数信息不同。
在接收到用户基于所述测试界面的各个测试项输入的测试数据,以及获取到每个测试项关联的参数信息之后,为了确保测试数据已经输入完成,确实可以测试了,所述测试界面显示生成按钮,当用户点击所述生成按钮时,生成单元32根据每个测试项所在位置接收到的测试数据,以及每个测试项关联的参数信息,生成测试代码。在本实施例中,由于各个测试项事先已经定义好名称、变量、类型以及定位信息,因此,该测试框架实际上对应有一个完整的模板,那么生成单元32基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码,实际上就是在该模板中,将用户输入的每个测试数据添加到对应的位置,最终得到生成测试代码的文件。
本实施例中,所述测试界面显示生成按钮,可以是一直处于显示状态,当然,还可在所有测试项所在位置检测到用户输入的测试数据之后,才显示所述生成按钮。
由于每次生成测试代码时,若是需要对测试代码进行信息的备注,一般是在测试项的变量中进行备注信息的添加,由于在变量中添加备注信息,后续就无法修改该备注信息,只能重新进行测试代码的生成,而且需要重新执上述的过程,导致测试代码的生成方式不够便捷。
因此,本实施例中,为了保证后续方便修改测试代码的备注信息。
所述获取单元31,还用于在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
所述生成单元32,还用于根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
也就是说,所述测试框架的测试界面还会显示备注测试项,在生成测试代码之前,若用户基于所述备注测试项输入相应的备注信息,则所述获取单元31获取用户基于所述备注测试项中输入的备注信息,并将所述备注信息添加到备注测试项所在的位置中,然后所述生成单元32根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
进一步地,为了对备注信息的添加时间进行记录,所述生成模块30还包括:
添加单元,用于对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
存储单元,用于将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
在本实施例中,在对测试代码增加备注信息之后,添加单元对添加的所述备注信息添加时间戳,所述时间戳与备注信息的添加时间相同,以实现对备注信息的添加时间进行记录。后续生成测试代码之后,将添加时间戳的测试代码存储到预设存储空间,便于在所述预设存储空间中查找该添加了时间戳的所述测试代码。
当然,后续在接收到到备注信息的更新指令时,获取更新后的备注信息,并根据更新后的备注信息更新所述测试代码,并且存储单元对更新后的测试代码添加时间戳并存储,此时,可以用更新后的测试代码替换掉之前存储的测试代码,也可以直接存储新的测试代码,便于后续查看添加两种备注信息的测试代码。
进一步地,本实施例中,所述测试界面还包括拷贝按钮,用于生成测试代码之后,将所述测试代码拷贝至预设区域,测试代码的拷贝方式简单便捷。
本实施例提出的测试代码生成装置100,在接收到测试代码生成请求时,先基于所述测试代码生成请求获取对应的测试框架,然后显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项,在接收到基于所述测试界面的各个测试项输入的测试数据时,再基于各个测试项的测试数据生成测试代码,实现了在测试框架的测试项中输入测试数据,即可生成测试代码,无须手动编写测试代码,提高了测试代码生成的效率和智能性。
进一步地,基于第一实施例提出本发明测试代码生成装置100的第二实施例,在本实施例中,参照图8,所述测试代码生成装置100还包括:
运行模块40,用于在接收到测试代码的执行指令时,运行生成的所述测试代码;
所述生成模块30,还用于根据运行的测试代码生成测试报告。
在本实施例中,所述生成模块30在生成测试代码之后,若接收到测试代码的执行指令时,则运行模块40运行生成的所述测试代码,同时,在运行模块40运行所述测试代码时,所述生成模块30根据运行的测试代码生成测试报告。本实施例中,生成测试代码时,同时生成多种类型的测试代码,相应的,生成的测试报告也包括多种,生成的测试代码优选包括以下几种:
a、新建测试数据XML文件代码(存在工程的Task目录下);
b、页面元素PageFactory控件代码;
c、页面操作控制代码PageOperation;
d、测试用例XXX_Test代码;
e、TestNG测试入口xml文件(存在工程的Task目录下)。
可以理解,本实施例中,根据测试框架以及用户输入的测试数据,生成相应的测试代码,相当于是自动完成大量自动化测试用例,无需用户手动一个个编写,自动生成,提高了测试代码生成的效率和灵活性。
应当理解的是,本发明中采用自动化的测试框架,具备以下优点:
代码重用,测试代码重用;
提高覆盖率;
场景恢复,记录下之后,下次就会自动执行刚才的动作;
低成本维护;
减少人工干预;
简单方便地生成测试报告。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种测试代码生成方法,其特征在于,所述测试代码生成方法包括:
在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架;
显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项;
在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
2.如权利要求1所述的测试代码生成方法,其特征在于,所述在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码的步骤包括:
在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
3.如权利要求2所述的测试代码生成方法,其特征在于,所述基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码的步骤,包括:
在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
4.如权利要求3所述的测试代码生成方法,其特征在于,所述在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息的步骤之后,所述测试代码生成方法还包括:
对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
所述基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码的步骤之后,所述测试代码生成方法还包括:
将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
5.如权利要求1-4任一项所述的测试代码生成方法,其特征在于,所述在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码的步骤之后,所述测试代码生成方法还包括:
在接收到测试代码的执行指令时,运行生成的所述测试代码;
根据运行的测试代码生成测试报告。
6.一种测试代码生成装置,其特征在于,所述测试代码生成装置包括:
获取模块,用于在接收到测试代码生成请求时,基于所述测试代码生成请求获取对应的测试框架;
显示模块,用于显示所述测试框架对应的测试界面,其中,所述测试界面包括预设个数的测试项;
生成模块,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,基于各个测试项的测试数据生成测试代码。
7.如权利要求6所述的测试代码生成装置,其特征在于,所述生成模块包括:
获取单元,用于在接收到基于所述测试界面的各个测试项输入的测试数据时,依次获取各个测试项关联的参数信息,其中,参数信息包括名称、变量、类型以及定位信息;
生成单元,用于基于各个测试项关联的参数信息,以及各个测试项所在位置接收到的测试数据,生成测试代码。
8.如权利要求7所述的测试代码生成装置,其特征在于,所述获取单元,还用于在所述测试框架的测试界面显示备注测试项,获取用户基于所述备注测试项中输入的备注信息;
所述生成单元,还用于根据所述备注测试项中的所述备注信息、所述测试界面中其它各个测试项关联的参数信息以及对应的测试数据,生成测试代码。
9.如权利要求8所述的测试代码生成装置,其特征在于,所述生成模块还包括:
添加单元,用于对所述备注信息添加时间戳,其中,所述时间戳与所述备注信息的添加时间相同;
存储单元,用于将添加时间戳的测试代码存储到预设存储空间,后续接收到备注信息的更新指令时,根据更新后的备注信息更新测试代码,并对更新后的测试代码添加时间戳并存储。
10.如权利要求6-9任一项所述的测试代码生成装置,其特征在于,所述测试代码生成装置还包括:
运行模块,用于在接收到测试代码的执行指令时,运行生成的所述测试代码;
所述生成模块,还用于根据运行的测试代码生成测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611036291.5A CN108073511B (zh) | 2016-11-14 | 2016-11-14 | 测试代码生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611036291.5A CN108073511B (zh) | 2016-11-14 | 2016-11-14 | 测试代码生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108073511A true CN108073511A (zh) | 2018-05-25 |
CN108073511B CN108073511B (zh) | 2021-02-05 |
Family
ID=62161414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611036291.5A Active CN108073511B (zh) | 2016-11-14 | 2016-11-14 | 测试代码生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108073511B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804322A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112416746A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试用例生成方法、装置、设备及介质 |
CN112799954A (zh) * | 2021-02-09 | 2021-05-14 | 上海云轴信息科技有限公司 | 快速构建测试环境的方法、设备及计算机可读介质 |
CN114706753A (zh) * | 2022-03-14 | 2022-07-05 | 马上消费金融股份有限公司 | 显示界面测试方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377759A (zh) * | 2008-08-26 | 2009-03-04 | 中国工商银行股份有限公司 | 自动化界面测试系统 |
US20110016451A1 (en) * | 2009-01-15 | 2011-01-20 | Infosys Technologies Limited | Method and system for generating test cases for a software application |
CN105095088A (zh) * | 2015-09-02 | 2015-11-25 | 厦门美图移动科技有限公司 | 基于uiautomator测试框架的计算器自动化测试方法和测试系统 |
CN105512036A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 根据预置规则自动生成测试用例的测试模板及测试方法 |
-
2016
- 2016-11-14 CN CN201611036291.5A patent/CN108073511B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101377759A (zh) * | 2008-08-26 | 2009-03-04 | 中国工商银行股份有限公司 | 自动化界面测试系统 |
US20110016451A1 (en) * | 2009-01-15 | 2011-01-20 | Infosys Technologies Limited | Method and system for generating test cases for a software application |
CN105095088A (zh) * | 2015-09-02 | 2015-11-25 | 厦门美图移动科技有限公司 | 基于uiautomator测试框架的计算器自动化测试方法和测试系统 |
CN105512036A (zh) * | 2015-12-12 | 2016-04-20 | 天津南大通用数据技术股份有限公司 | 根据预置规则自动生成测试用例的测试模板及测试方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804322A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
CN112416746A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试用例生成方法、装置、设备及介质 |
CN112799954A (zh) * | 2021-02-09 | 2021-05-14 | 上海云轴信息科技有限公司 | 快速构建测试环境的方法、设备及计算机可读介质 |
CN112799954B (zh) * | 2021-02-09 | 2024-04-16 | 上海云轴信息科技有限公司 | 快速构建测试环境的方法、设备及计算机可读介质 |
CN114706753A (zh) * | 2022-03-14 | 2022-07-05 | 马上消费金融股份有限公司 | 显示界面测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108073511B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2778929B1 (en) | Test script generation system | |
US9721216B2 (en) | Solution that automatically recommends design assets when making architectural design decisions for information services | |
CN103678120B (zh) | 基于建模的web应用自动化测试方法 | |
CN110275861B (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN107608874A (zh) | 测试方法和装置 | |
CN108073511A (zh) | 测试代码生成方法和装置 | |
US20150347281A1 (en) | Automation testing using descriptive maps | |
US9459780B1 (en) | Documenting interactive graphical designs | |
CN109799985A (zh) | 前端代码生成方法及装置、存储介质及电子设备 | |
JP5949222B2 (ja) | 運用管理支援装置、方法及びプログラム | |
CN111966580A (zh) | 基于人工智能的自动化测试方法、装置、设备和存储介质 | |
CN111949607B (zh) | 一种udt文件的监控方法、系统和装置 | |
CN106951231A (zh) | 一种计算机软件开发方法及装置 | |
US20150193405A1 (en) | Enhanced testing for application services | |
Rocha Silva et al. | Ensuring the consistency between user requirements and graphical user interfaces: A behavior-based automated approach | |
CN112507685B (zh) | 一种yang文件验证方法、装置、电子设备及存储介质 | |
CN112256978B (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
CN115033436A (zh) | 页面测试方法及装置、电子设备、存储介质 | |
KR20090003040A (ko) | 비즈니스 프로세스 수행시 메타데이터 규정을 통한 데이터품질관리 방법 및 시스템 | |
CN104881455B (zh) | 一种基于mysql的结构差异处理方法及系统 | |
CN113190509A (zh) | 动画处理方法、装置、电子设备及计算机可读存储介质 | |
JP5668492B2 (ja) | データ処理装置、コンピュータプログラム及びデータ処理方法 | |
Tayeb et al. | Automatic Simulation Data Update: A New Innovative Way to Expedite Historical Data Extension for Models | |
KR20130058348A (ko) | 자산 기반의 요구사항 시뮬레이터 및 요구사항 관리 방법 | |
Al-Yazeedi et al. | Standardize/Simplify Water Flood Pattern Reviews |
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 |