一种跨系统测试方法及装置与流程

文档序号:13317692阅读:453来源:国知局

本发明涉及互联网技术领域,尤其涉及一种跨系统测试方法及装置。



背景技术:

随着互联网技术的快速发展,各类互联网业务呈现了爆炸式增长,业务系统架构也日渐复杂,其结果就是很多种类的业务往往需要多种类型的系统支撑,而在业务的设计和测试过程中,则需要在不同类型的系统中执行测试操作,以保证业务流程在测试过程中的完整性。

目前相对成熟的业务测试工具或测试框架,例如:qtp、winrunner、rational、selenium和appium等分别针对c\s类型、b\s类型和终端类型的自动化测试工具,仅支持单一类型的业务系统,若所测试的业务流程的各个环节涉及不同类型的业务系统,则需要研发人员针对各个环节配置相应的测试工具,并在一个环节的测试完成后,根据其测试结果参数编写下一环节的测试脚本,并在下一环节的测试工具中导入所编写的测试脚本,直至业务流程的各个环节全部执行完毕。

而越是复杂的业务就需要越多的测试次数,并且其测试过程需要涉及更多的业务系统,整个测试过程涵盖更多的业务系统,这就需要耗费极大的人工成本进行测试脚本的编写和管理,并且人工进行测试脚本的编写以及参数导入的工作必然会中断后续业务系统的运行,导致了sap系统等类型的业务系统由于中断而造成系统崩溃或由于超时造成参数丢失,这些问题都会导致目前互联网业务的测试成本越来越高。



技术实现要素:

本发明的实施例提供一种跨系统测试方法及装置,能够减少人工成本,避免了业务系统由于中断导致的崩溃或超时导致的参数丢失,提高测试过程的可持续性。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明的实施例提供的方法,包括:读取测试脚本集合并提取业务流程记录,所述测试脚本集合包括至少两个测试脚本,所述至少两个测试脚本用于至少两种不同的业务系统,所述业务流程中记录测试脚本的执行顺序;根据所述业务流程记录提取关键字,其中,所提取的关键字至少包括对应参数传递函数的关键字;在运行所述测试脚本集合的过程中,当读取到所述对应参数传递函数的关键字时,依据所述参数传递函数提取当前执行的测试脚本的输出参数,并作为输入参数导入后续执行的测试脚本。

结合第一方面,在第一方面的第一种可能的实现方式中,还包括:在根据所述业务流程记录提取关键字后,对所提取的关键字进行排序并得到对应所述业务流程记录的关键字组合,所述关键字组合包括对应了业务系统在运行测试脚本时各执行步骤的关键字和所述对应参数传递函数的关键字。

结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述业务流程记录提取关键字,包括:依据所述业务流程记录,识别组成业务流程的各个环节,并确定各个环节对应的业务系统;获取各个环节对应的业务系统对应的关键字集合,其中,一个环节对应的业务系统对应的关键字集合包括:所述一个环节对应的业务系统运行时对应各执行步骤的关键字和所述对应参数传递函数的关键字;针对一个环节对应的业务系统:根据所述一个环节对应的业务系统对应的测试脚本,从所述一个环节对应的业务系统对应的关键字集合中提取关键字,重复该过程并获取各个环节对应的业务系统的关键字。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述一个环节对应的业务系统对应的测试脚本,从所述一个环节对应的业务系统对应的关键字集合中提取关键字,包括:在所述一个环节对应的业务系统的业务页面中定位控件,并抓取所定位控件的控件元素;根据所述控件元素确定所传递的参数和参数传递方向,并从所述一个环节对应的业务系统对应的关键字集合中,提取所述所传递的参数和所述参数传递方向符合其参数传递函数的关键字。

结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述一个环节对应的业务系统对应的关键字集合中,还包括:所述一个环节对应的业务系统运行时各个节点上所配置的检查点对应的关键字。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,还包括:接收设定信息,并根据所述设定信息,从所述一个环节对应的业务系统对应的关键字集合中提取对应检查点的关键字;根据所述设定信息,在所述一个环节对应的业务系统对应的测试脚本中配置检查点;在运行所述测试脚本集合的过程中,当读取到所述对应检查点的关键字时,记录该检查点在所述一个环节对应的业务系统中所在位置的运行状态信息。

第二方面,本发明的实施例提供的装置,包括:数据提取模块,用于读取测试脚本集合并提取业务流程记录,所述测试脚本集合包括至少两个测试脚本,所述至少两个测试脚本用于至少两种不同的业务系统,所述业务流程中记录测试脚本的执行顺序;

关键字提取模块,用于根据所述业务流程记录提取关键字,其中,所提取的关键字至少包括对应参数传递函数的关键字;

关键字执行模块,用于在运行所述测试脚本集合的过程中,当读取到所述对应参数传递函数的关键字时,依据所述参数传递函数提取当前执行的测试脚本的输出参数,并作为输入参数导入后续执行的测试脚本。

结合第二方面,在第二方面的第一种可能的实现方式中,所述关键字提取模块,还用于在根据所述业务流程记录提取关键字后,对所提取的关键字进行排序并得到对应所述业务流程记录的关键字组合,所述关键字组合包括对应了业务系统在运行测试脚本时各执行步骤的关键字和所述对应参数传递函数的关键字。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述关键字提取模块,具体用于依据所述业务流程记录,识别组成业务流程的各个环节,并确定各个环节对应的业务系统;并获取各个环节对应的业务系统对应的关键字集合,其中,一个环节对应的业务系统对应的关键字集合包括:所述一个环节对应的业务系统运行时对应各执行步骤的关键字和所述对应参数传递函数的关键字;再针对一个环节对应的业务系统:在所述一个环节对应的业务系统的业务页面中定位控件,并抓取所定位控件的控件元素;并根据所述控件元素确定所传递的参数和参数传递方向,并从所述一个环节对应的业务系统对应的关键字集合中,提取所述所传递的参数和所述参数传递方向符合其参数传递函数的关键字,重复该过程并获取各个环节对应的业务系统的关键字。

结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,还包括:检查点管理模块,用于接收设定信息,并根据所述设定信息,从所述一个环节对应的业务系统对应的关键字集合中提取对应检查点的关键字;其中,所述一个环节对应的业务系统对应的关键字集合中,还包括:所述一个环节对应的业务系统运行时各个节点上所配置的检查点对应的关键字;并根据所述设定信息,在所述一个环节对应的业务系统对应的测试脚本中配置检查点;在运行所述测试脚本集合的过程中,当读取到所述对应检查点的关键字时,记录该检查点在所述一个环节对应的业务系统中所在位置的运行状态信息。

本发明实施例提供的跨系统测试方法及装置,通过自动化测试平台实现跨系统类型地将复杂的业务操作和参数自动导入下一测试环节,并将参数传递功能写在代码内并通过读取关键字的形式自动触发执行,实现通过读取关键字进行自动化的参数传递,减少人工成本。业务系统避免了业务系统由于中断导致的崩溃或超时导致的参数丢失,提高了测试过程的可持续性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的系统架构示意图;

图2为本发明实施例提供的跨系统测试方法的流程示意图;

图3为本发明实施例提供的跨系统测试方法的一种具体实例的示意图;

图4为本发明实施例提供的一种跨系统测试装置的结构示意图;

图5为本发明实施例提供的另一种跨系统测试装置的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。下文中将详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

本实施例中的方法流程,具体可以在自动化测试平台上执行。本实施例中所揭示的自动化测试平台,具体可以是由多个服务器组成的一种服务器集群系统。例如:如图1所示,自动化测试平台接入多个种类的业务系统,并可以在自动化测试平台保存用于各种类业务系统的测试脚本、业务流程中记录、完整的测试流程中各个环节对应的业务系统的关键字集合等。本实施例中的业务系统可以是由多个服务器组成的服务器集群,也可以是多个终端设备(比如智能手机、平板电脑)等组成的测试机集群,也可以是通过运行在自动化测试平台的虚拟机模拟的业务系统。

具体的,在每一次的测试过程中由自动化测试平台向各业务系统加载测试脚本,例如:可以基于c/s框架(一基于eclipsercp技术开发的程序框架,其中,eclipsercp是一种位于eclipse平台核心的功能,提供了标准化的组件模型,包括菜单,工具栏等),采用集成了selenium(一种web应用程序自动化测试框架)、appium(一种移动端自动化测试框架)和testng(一种根据junit和nunit思想而构建的利用注释来强化测试功能的一个测试框架)等第三方工具jar包,实现了对web应用测试系统、终端应用测试系统、用例管理测试系统等不同种类的业务系统的测试脚本的加载和运行;并按照业务流程中记录获取各业务系统执行测试脚本的输出参数,再根据伴随测试过程所读取的关键字将一个业务系统的输出参数向下一个或是与之关联的业务系统传递。

本发明实施例提供一种跨系统测试方法,如图2所示,包括:

s1、读取测试脚本集合并提取业务流程记录。

其中,所述测试脚本集合包括至少两个测试脚本,所述至少两个测试脚本用于至少两种不同的业务系统,所述业务流程中记录测试脚本的执行顺序,例如:如图3所示的,业务系统包括:java系统1、java系统2、java系统3、sap系统1和sap系统2。业务流程记录包括:1、java系统1接收测试人员下单;2、java系统2处理物流订单;3、sap(systemsapplicationsandproductsindataprocessing,企业管理解决方案的软件)系统1执行仓库作业流程;4、java系统3处理配送作业;5、sap系统2执行销单作业。其中,前一业务系统的通过执行测试脚本输出的参数作为下一业务系统的输入参数。

在本实施例中,针对一个完整测试流程的测试脚本集合、业务流程记录、完整的测试流程中各个环节对应的业务系统的关键字集合等,可以统计集成在一个测试案例中,并将针对不同种类的测试流程建立的测试案例保存在自动化测试平台,以便于快速调用并加载测试过程。自动化测试平台也可以根据预先配置的执行次数,开始时间,及数据配置等,选择单条或多条案例执行。

s2、根据所述业务流程记录提取关键字。

其中,所提取的关键字至少包括对应参数传递函数的关键字。具体的,所述根据所述业务流程记录提取关键字的方式包括:

依据所述业务流程记录,识别组成业务流程的各个环节,并确定各个环节对应的业务系统。并获取各个环节对应的业务系统对应的关键字集合。且针对一个环节对应的业务系统:例如图3所示的各环节对应的业务系统,根据所述一个环节对应的业务系统对应的测试脚本,从所述一个环节对应的业务系统对应的关键字集合中提取关键字,重复该过程并获取各个环节对应的业务系统的关键字。

其中,一个环节对应的业务系统对应的关键字集合包括:所述一个环节对应的业务系统运行时对应各执行步骤的关键字和所述对应参数传递函数的关键字。例如:可以通过所集成的第三方工具jar包,在原有api基础上进行二次封装,形成通用关键字,通用关键字用于实现对excel、xml、ssh、redis、数据库、传输接口等测试过程中所涉及的模块进行操作。还可以通过jacob(javacombridge,java和com组件间的桥梁)自动化访问windows平台下的com组件或者win32系统库的功能,从而实现对sap系统方法的映射。在本实施例中所揭示的通用关键字,可以包括但不限于:1、界面关键字,对应业务系统运行时的浏览器操作、校验操作、控件操作和图像识别操作等用于模拟用户操作或用户设备上的操作的执行函数;2、协议关键字,对应业务系统运行时的xml(extensiblemarkuplanguage,可扩展标记语言)操作、json(javascriptobjectnotation,一种轻量级的数据交换格式)操作、http(hypertexttransferprotocol,超文本传输协议)操作、mq(messagequeue,消息队列)操作、hessian(一个轻量级的remotingonhttp工具)操作等基于不同类型协议的执行函数;3、公共关键字,对应业务系统运行时的redis操作、数据库操作、linux/sftp(linux/securefiletransferprotocol,linux环境下的安全文件传送协议)操作、ftp(filetransferprotocol,文件传输协议)操作、sap操作、执行控制操作、图片操作等。根据具体的应用场景,本实施例所揭示的通用关键字可以有选择的扩容,例如:对于涉及与移动设备进行数据交互的业务测试流程,还包括移动设备关键字和服务关键字等。

s3、在运行所述测试脚本集合的过程中,当读取到所述对应参数传递函数的关键字时,依据所述参数传递函数提取当前执行的测试脚本的输出参数,并作为输入参数导入后续执行的测试脚本。

其中,所述后续执行的测试脚本为所述测试脚本集合中与所述当前执行的测试脚本相关联的测试脚本。

在现有的业务测试流程中,需要测试人员手动进行相应的配置操作,并将上一环节的业务系统在执行测试脚本过程中产生的一些数据作为入参导入下一个业务环节中,即需要测试人员手动将数据写入下一个环节业务系统的测试脚本中。对于流程环节较多的业务测试流程,需要花费很多的人工成本进行测试脚本的修改和编写。而且一些业务系统在业务测试流程开始后需要连续运转,若出现中断业务系统并等待脚本修改/编写的情况,则很容易导致业务系统崩溃或超时导致的数据丢失。例如:业务测试流程执行到sap系统的时,需要测试人员手动进行相应的业务操作,再把在先得到的数据作为入参写入下一个业务环节的java系统的测试脚本中。测试人员手动进写入/修改测试脚本的工作时,业务测试流程中止,且sap系统等业务系统中断。

在本发明实施例中,通过自动化测试平台实现跨系统类型地将复杂的业务操作和参数自动导入下一测试环节,并将参数传递功能写在代码内并通过读取关键字的形式自动触发执行,实现通过读取关键字进行自动化的参数传递,减少人工成本。业务系统避免了业务系统由于中断导致的崩溃或超时导致的参数丢失,提高了测试过程的可持续性。

进一步的,在上述s1-s3的流程基础上,本实施例中还提供一种关键字的组合使用方案,包括:

在根据所述业务流程记录提取关键字后,并对所提取的关键字进行排序并得到对应所述业务流程记录的关键字组合。

其中,所述关键字组合包括对应了业务系统在运行测试脚本时各执行步骤的关键字和所述对应参数传递函数的关键字。例如:自动化测试平台可以通过选取对应业务系统中各项业务操作的关键字,比如:文本框输入、控件点击、浏览器打开\关闭、数据库连接等,并依据业务流程记录获取每一环节的业务系统中业务操作的顺序,将关键字进行组合,自动化测试平台通过读取关键字组合自动触发相应的业务操作,从而免去了测试人员手工测试的动作和流程,进一步减少人工成本。

在本实施例中,为了进一步的提升自动化程度,还提供了一种自动提取关键字的方案。所述根据所述一个环节对应的业务系统对应的测试脚本,从所述一个环节对应的业务系统对应的关键字集合中提取关键字,包括:

自动化测试平台在所述一个环节对应的业务系统的业务页面中定位控件,并抓取所定位控件的控件元素。再根据所述控件元素确定所传递的参数和参数传递方向,并从所述一个环节对应的业务系统对应的关键字集合中,提取所述所传递的参数和所述参数传递方向符合其参数传递函数的关键字。例如:具体可以采用id、name、classname、linktext、xpath等多种业务页面中定位控件的方式。

在本实施例中,所述一个环节对应的业务系统对应的关键字集合中,还包括:所述一个环节对应的业务系统运行时各个节点上所配置的检查点对应的关键字。本实施例中还提供一种检查点的配置方案,包括:

接收设定信息,并根据所述设定信息,从所述一个环节对应的业务系统对应的关键字集合中提取对应检查点的关键字。并根据所述设定信息,在所述一个环节对应的业务系统对应的测试脚本中配置检查点。

其中,自动化测试平台在业务系统对应的关键字集合中预存对应检查点的关键字,并根据预设的模板,在业务系统对应的测试脚本中配置检查点。自动化测试平台也可以根据测试人员输入的配置信息,在业务系统对应的测试脚本中配置检查点。

自动化测试平台在运行所述测试脚本集合的过程中,当读取到所述对应检查点的关键字时,记录该检查点在所述一个环节对应的业务系统中所在位置的运行状态信息。并根据各检查点的运行状态信息生成测试结果报告,并将测试结果报告向自动化测试平台的显示器、打印机等输出设备发送,以便测试人员能够通过输出设备直接获取测试结果报告;或者,自动化测试平台生成显示页面的链接并将链接向测试人员的终端设备发送,其中显示页面用于显示测试结果报告的内容,测试人员通过点击链接的操作,触发终端设备加载显示页面。

本发明实施例提供的跨系统测试方法,通过自动化测试平台实现跨系统类型地将复杂的业务操作和参数自动导入下一测试环节,并将参数传递功能写在代码内并通过读取关键字的形式自动触发执行,实现通过读取关键字进行自动化的参数传递,减少人工成本。业务系统避免了业务系统由于中断导致的崩溃或超时导致的参数丢失,提高了测试过程的可持续性。

本发明实施例还提供一种如图4所示的跨系统测试装置,该跨系统测试装置可以运行在如图1所示的自动化测试平台上,该跨系统测试装置包括:

数据提取模块,用于读取测试脚本集合并提取业务流程记录,所述测试脚本集合包括至少两个测试脚本,所述至少两个测试脚本用于至少两种不同的业务系统,所述业务流程中记录测试脚本的执行顺序。

关键字提取模块,用于根据所述业务流程记录提取关键字,其中,所提取的关键字至少包括对应参数传递函数的关键字。

关键字执行模块,用于在运行所述测试脚本集合的过程中,当读取到所述对应参数传递函数的关键字时,依据所述参数传递函数提取当前执行的测试脚本的输出参数,并作为输入参数导入后续执行的测试脚本。

在本实施例中,所述关键字提取模块,还用于在根据所述业务流程记录提取关键字后,对所提取的关键字进行排序并得到对应所述业务流程记录的关键字组合,所述关键字组合包括对应了业务系统在运行测试脚本时各执行步骤的关键字和所述对应参数传递函数的关键字。

在本实施例中,所述关键字提取模块,具体用于依据所述业务流程记录,识别组成业务流程的各个环节,并确定各个环节对应的业务系统。并获取各个环节对应的业务系统对应的关键字集合,其中,一个环节对应的业务系统对应的关键字集合包括:所述一个环节对应的业务系统运行时对应各执行步骤的关键字和所述对应参数传递函数的关键字。再针对一个环节对应的业务系统:在所述一个环节对应的业务系统的业务页面中定位控件,并抓取所定位控件的控件元素。并根据所述控件元素确定所传递的参数和参数传递方向,并从所述一个环节对应的业务系统对应的关键字集合中,提取所述所传递的参数和所述参数传递方向符合其参数传递函数的关键字,重复该过程并获取各个环节对应的业务系统的关键字。

进一步的,如图5所示的,本实施例中的跨系统测试装置还包括:检查点管理模块,用于接收设定信息,并根据所述设定信息,从所述一个环节对应的业务系统对应的关键字集合中提取对应检查点的关键字。其中,所述一个环节对应的业务系统对应的关键字集合中,还包括:所述一个环节对应的业务系统运行时各个节点上所配置的检查点对应的关键字。并根据所述设定信息,在所述一个环节对应的业务系统对应的测试脚本中配置检查点。在运行所述测试脚本集合的过程中,当读取到所述对应检查点的关键字时,记录该检查点在所述一个环节对应的业务系统中所在位置的运行状态信息。

本发明实施例提供的跨系统测试装置,通过自动化测试平台实现跨系统类型地将复杂的业务操作和参数自动导入下一测试环节,并将参数传递功能写在代码内并通过读取关键字的形式自动触发执行,实现通过读取关键字进行自动化的参数传递,减少人工成本。业务系统避免了业务系统由于中断导致的崩溃或超时导致的参数丢失,提高了测试过程的可持续性。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1