基于SIPP的性能测试方法与装置和计算机设备及存储介质与流程

文档序号:21317645发布日期:2020-06-30 20:47阅读:360来源:国知局
基于SIPP的性能测试方法与装置和计算机设备及存储介质与流程

本发明涉及多媒体调度通信技术领域,尤其涉及一种基于sipp的性能测试方法与装置和系统及存储介质。



背景技术:

着通信产品的普及和发展,调度通信系统的性能越来越受到用户的关注和重视。在调度通信系统的测试过程中,为了满足产品性能指标的要求,测试人员需要对调度通信系统的整体性能进行全面测试,达标后才能验收发布。

sipp软件是一个测试sip协议性能的开源测试工具软件(可进一步参阅如下网站:sipp.sourceforge.net),它包含了一些基本的sipstone用户代理工作流程(uac和uas),并可使用invite和bye命令建立和释放多个呼叫。它也可以读取xml格式的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计),周期性地将csv统计数据转储,在多个套接字上的tcp和udp,利用重新传输管理的多路复用。在场景定义文件中可以使用正规表达式,动态调整呼叫速率。sipp软件可以用来测试许多真实的sip设备,如sip代理、b2buas、sip媒体服务器、sip/x网关、sippbx等等,它也可以模仿上千个sip代理呼叫sip系统。但是,通过这种方式进行测试存在以下几个缺点:

1、需要通过手工方式往csv文件里面添加测试数据,当测试数据量非常大时这种方式明显比较浪费时间;

2、测试过程中,需要人工实时观察sipp软件的测试数据变化,测试结果也需手工整理汇总。这明显降低了测试效率,增大了人力和时间投入。

公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。

基于上述原因,本发明提出了一种基于sipp的性能测试方法与装置和系统及存储介质。



技术实现要素:

为了满足上述要求,本发明第一个目的在于提供一种基于sipp的性能测试方法,方法旨在通过搭建sipp以及python,在linux上搭建通信调度系统,在python中引入mysql.connector模块,远程连接数据库,编写存储过程新建大批量测试数据,然后在python中编写代码直接读取数据库中的数据,节省手工在csv文件中添加大量数据所浪费的时间,也减少出错率。通过python代码读取测试数据,然后在python中引入unittest框架,在里面编写测试脚本,调用sipp进行性能测试,python中封装日志模块和邮件模块,引入htmltestrunner、mkdocs,实现测试过程中的日志实时输出和测试完成后测试报告网页化,测试日志和测试报告也会存储到本地,方便后续查阅。测试结果可通过自定义邮件查看。

本发明的第二个目的在于提供一种基于sipp的性能测试装置。

本发明的第三个目的在于提供一种基于sipp的性能测试计算机设备。

本发明的第四个目的在于提供一种非临时性计算机可读存储介质,其上存储有计算机程序。

为了实现上述目的,本发明采用以下技术方案:

第一方面,提供了一种基于sipp的性能测试方法,包括以下步骤:

搭建sipp工具、python环境以及通讯调度系统;

安装用于连接数据库的驱动程序,python环境中引入数据库连接模块并远程连接数据库,创建储存过程并新建大批量测试数据;

在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器;

在python环境中封装日志模块和邮件模块,并引入htmltestrunner、mkdocs定义测试报告;

运行测试用例脚本,按照先注册再呼叫的顺序并行运行测试用例;

获取网页版测试日志和测试报告。

在一个可能的实施方式中,所述搭建sipp工具、python环境以及通讯调度系统的步骤还包括,在linux系统或windows系统搭建sipp工具,在windows系统安装phthon,以及在linux环境搭建通讯调度系统。

在一个可能的实施方式中,所述python环境中引入数据库连接模块并远程连接数据库的步骤包括,通过import语句引入数据库连接模块,通过config语句配置数据库相关信息,通过connect语句获取与数据库的连接。

在一个可能的实施方式中,所述在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器的步骤包括,在phthon环境引入unittest框架,在unittest框架中新建注册测试套件和呼叫测试套件,所述注册测试套件用于编写主注册测试用例脚本和被注册测试用例脚本,所述呼叫测试套件包括主呼叫测试套件和被呼叫测试套件,所述被呼叫测试套件用于编写被呼叫测试用例脚本,所述主呼叫测试套件用于编写主呼叫测试用例脚本。

在一个可能的实施方式中,所述方法还包括,利用wireshark工具进行测试脚本中部分数据包的抓包分析;

所述抓包分析的步骤包括,当需要测试业务平台,且不受核心网限制时,将主叫与被叫以及核心网当做一个整体,通过抓取sip前台服务器的包作为参考进行测试脚本的编写。

在一个可能的实施方式中,当将主、被叫与核心网当成一个整体时,所述主呼叫测试用例脚本、被呼叫测试用例脚本包含的流程包括:

所述用户代理客户端通过sdp协议向业务平台发送inviite类型请求消息,所述用户代理服务器通过业务平台获取到请求消息;

所述用户代理服务器利用业务平台返回108消息码至用户代理客户端;

所述用户代理服务器通过sip消息中保证临时消息可靠传输的机制将消息传送到业务平台,所述业务平台返回200消息码给用户代理客户端;

所述用户代理服务器通过sdp协议向业务平台发送invite类型消息;

所述业务平台向用户代理服务器发送ack和invite类型的请求消息;

所述用户代理服务器通过sdp协议返回200消息码给业务平台;

所述用户代理客户端和业务平台之间进行2次update交互过程,所述用户代理客户端向业务平台发送ack请求消息达到用户代理服务器,所述用户代理服务器返回200消息码。

在一个可能的实施方式中,所述运行测试用例脚本,按照先注册再呼叫的顺序并行运行测试用例的步骤包括:

使用python中的unittest框架运行测试用例脚本,一次性运行主注册测试用例脚本、被注册测试用例脚本,按先注册再呼叫的顺序并行运行测试用例,得到相应的测试结果。

在一个可能的实施方式中,所述一次性运行主注册测试用例脚本、被注册测试用例脚本,按先注册再呼叫的顺序并行运行测试用例的步骤包括:

通过所述python环境里面的unittest框架获取sipp工具的测试信息,利用主呼叫测试用例脚本和被呼叫测试用例脚本调用sipp工具将主叫和被叫同时向调度通信系统注册;

通过所述主呼叫测试用例脚本和被呼叫测试用例脚本将主叫和被叫同时注册到调度通信系统中,进行性能测试;

当注册成功后,调用所述呼叫测试套件中的被呼叫测试用例脚本,利用所述sipp工具在调度通信系统中运行被叫;

调用所述呼叫测试套件中的主呼叫测试用例脚本,调用所述sipp工具在调度通信系统中运行主叫;

主叫发起呼叫,被叫接听,通话建立;通过通话情况得到相应的测试结果。

在一个可能的实施方式中,所述在python环境中封装日志模块和邮件模块,并引入htmltestrunner、mkdocs定义测试报告的步骤还包括:

在python里面新建commons模块,然后分别封装用于记录日志的mylog模块和用于发送接受邮件的sendmail模块,对日志类设置输出格式和日志级别,进行日志的输出,实现实时查看信息和跟踪定位问题;

利用mkdocs静态站点生成器定义报告样式、报告名称、报告内容,在htmltestrunner中定义测试报告的文件绝对路径映射到mkdocs静态站点生成器的镜像中的路径;

在python代码中定义主注册测试用例脚本和被注册脚本用例并行执行,主注册测试用例脚本和被注册脚本用例执行完成才进行主呼叫测试用例脚本、被呼叫测试用例脚本的执行;

在python中定义测试数据读取方式,通过读取远程连接数据库使用存储过程新建的大量测试数据。

在一个可能的实施方式中,所述获取网页版测试日志和测试报告的步骤还包括,利用tmltestrunne定义的测试报告路径中获取html文件的测试报告。

在另一方面,本发明还提出了一种基于sipp的性能测试装置,包括以下单元:

环境搭建单元,用于搭建sipp工具、python环境以及通讯调度系统;

数据连接单元,用于安装用于连接数据库的驱动程序,python环境中引入数据库连接模块并远程连接数据库,创建储存过程并新建大批量测试数据;

通话模拟单元,用于在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器;

模块封装单元,用于在python环境中封装日志模块和邮件模块,并引入htmltestrunner、mkdocs定义测试报告;

运行测试单元,用于运行测试用例脚本,按照先注册再呼叫的顺序并行运行测试用例;

报告获取单元,用于获取网页版测试日志和测试报告。

在另一方面,本发明还公开了一种基于sipp的性能测试的系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的性能测试程序,所述性能测试程序被所述处理器执行时实现如上述任一项所述的基于sipp的性能测试方法。

在另一方面,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一项所述的基于sipp的性能测试方法。

相比于现有技术,本发明的有益效果在于:采用本方案的性能测试方法,通过在windows环境搭建sipp以及python,在linux上搭建通信调度系统;在python中引入mysql.connector模块,实现远程连接数据库,利用编写存储过程实现新建大批量测试数据,节省手工在csv文件中添加大量数据所浪费的时间。通过python代码读取测试数据,然后在python中引入unittest框架,在里面编写测试脚本模拟uac和uas,在unittest中新建注册测试套件和呼叫测试套件,并在测试套件中创建测试用例脚本,按先注册再呼叫的顺序并行运行测试用例脚本,调用sipp进行性能测试,python中封装日志模块和邮件模块,引入htmltestrunner、mkdocs,定义日志输出格式及存放位置,报告样式,报告名称,报告内容,报告存放位置等,实现测试过程中的日志实时输出和测试完成后测试报告网页化,方便后续查阅,测试结果可通过自定义邮件查看。该方法可实时记录sipp动态呈现的测试数据和执行情况,便于测试结果统一汇总和以备日后查看。另外相比于肉眼的观察,通过分析一定时间范围内的测试数据,可以更容易发现调度通信系统潜在的性能问题,提升调度通信系统运行的安全性,

综上所述,本方案具有以下优势:

1、采用在python中远程连接数据库的方式,编写存储过程新建大批量测试数据,然后在python中编写代码直接读取数据库中的数据,节省手工在csv文件中添加大量数据所浪费的时间,也减少了出错率;

2、python中封装日志模块和邮件模块,引入htmltestrunner、mkdocs,实现测试过程中的日志实时输出和测试完成后测试报告网页化,测试日志和测试报告也会存储到本地,方便查阅以及以备日后查看;

3、测试结果可通过自定义邮件发送及查看。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

图1是本发明一种基于sipp的性能测试方法的具体实施例流程示意图;

图2是本发明一种基于sipp的性能测试装置的具体实施例的框架示意图;

图3是本发明一种基于sipp的性能测试计算机设备的具体实施例的框架示意图;

图4是本发明一种非临时性计算机可读存储介质的具体实施例的框架示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

如图1所示的方法流程图,为本发明提供的一种基于sipp的性能测试方法的具体实施例示意图,包括以下步骤:

步骤s1,搭建sipp工具、python环境以及通讯调度系统;

步骤s2,安装用于连接数据库的驱动程序,python环境中引入数据库连接模块并远程连接数据库,创建储存过程并新建大批量测试数据;

步骤s3,在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器;

步骤s4,在python环境中封装日志模块和邮件模块,并引入htmltestrunner、mkdocs定义测试报告;

步骤s5,运行测试用例脚本,按照先注册再呼叫的顺序并行运行测试用例;

步骤s6,获取网页版测试日志和测试报告。

作为可选的实施方式,步骤s1还包括,在linux系统或windows系统搭建sipp工具,在windows系统安装phthon,以及在linux环境搭建通讯调度系统。

具体地,由于sipp工具在linux系统上搭建相对在windows系统上搭建流程较复杂,故在较佳的实施方式中选择windows系统上搭建;其中,sipp工具的搭建包括安装cygwin、winpcap的windows客户端、sipp-win64、ipv6等。

作为较佳的实施方式,步骤s2包括,通过import语句引入数据库连接模块,通过config语句配置数据库相关信息,通过connect语句获取与数据库的连接。

具体地,安装完python及pycharm后,需要安装mysql-connector-python-1.0.12-py3.3;

当驱动程序mysql-connector-python-1.0.12-py3.3安装完毕,新建py文件,通过import引入mysql.connector模块(即步骤s2中的数据库连接模块),通过config语句配置待连接的数据库相关信息,其中,数据库的相关信息包括ip、端口号、用户名、密码、库名等。

当配置数据库信息完成,通过connect语句获取与数据库的连接,远程连接上后编写存储过程来大批量新建测试数据,数据保存到数据库对应表里面。

采用本方案的步骤,避免了用传统的方法(利用手工在xml文件中填入大量测试数据),节省了大量时间。

在其他实施方式中,还可以采用其他的驱动程序以实现数据库的远程连接,该驱动程序旨在实现连接因此,此处不做具体限制。

作为较佳的实施方式,所述在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器(即uac与uas)的步骤包括,在phthon环境引入unittest框架,在unittest框架中新建注册测试套件和呼叫测试套件,所述注册测试套件用于编写主注册测试用例脚本和被注册测试用例脚本,所述呼叫测试套件包括主呼叫测试套件和被呼叫测试套件,所述被呼叫测试套件用于编写被呼叫测试用例脚本,所述主呼叫测试套件用于编写主呼叫测试用例脚本。

在一个可能的实施方式中,所述方法还包括,利用wireshark工具进行测试脚本中部分数据包的抓包分析;

所述抓包分析的步骤包括,当需要测试业务平台,且不受核心网限制时,将主叫与被叫以及核心网当做一个整体,通过抓取sip前台服务器的包作为参考进行测试脚本的编写。其中,用户代理客户端和用户代理服务器发送给sip前台的消息是真实主、被叫消息通过核心网后发给sip前台的消息形式。

作为较佳的实施方式,当将主、被叫与核心网当成一个整体时,所述主呼叫测试用例脚本、被呼叫测试用例脚本包含的流程包括:

所述用户代理客户端通过sdp协议向业务平台发送inviite类型请求消息,所述用户代理服务器通过业务平台获取到请求消息;

所述用户代理服务器利用业务平台返回108消息码至用户代理客户端;

所述用户代理服务器通过sip消息中保证临时消息可靠传输的机制将消息传送到业务平台,所述业务平台返回200消息码给用户代理客户端;

所述用户代理服务器通过sdp协议向业务平台发送invite类型消息;

所述业务平台向用户代理服务器发送ack和invite类型的请求消息;

所述用户代理服务器通过sdp协议返回200消息码给业务平台;

所述用户代理客户端和业务平台之间进行2次update交互过程,所述用户代理客户端向业务平台发送ack请求消息达到用户代理服务器,所述用户代理服务器返回200消息码。

具体地,上述用户代理客户端、用户代理服务器均为步骤s3中模拟产生。

在一个可能的实施方式中,所述步骤s5包括:

使用python中的unittest框架运行测试用例脚本,一次性运行主注册测试用例脚本、被注册测试用例脚本,按先注册再呼叫的顺序并行运行测试用例,得到相应的测试结果。

具体的实施方式为,使用python中的unittest运行测试用例脚本,unittest.testsuite添加相应的测试用例脚本,使用unittest.texttestrunner来定义一个runner,然后通过runner.run(suite)来一次性运行主、被注册脚本。按先注册再呼叫的顺序并行运行测试用例,得到相应的测试结果。

在一个可能的实施方式中,所述一次性运行主注册测试用例脚本、被注册测试用例脚本,按先注册再呼叫的顺序并行运行测试用例的步骤包括:

通过所述python环境里面的unittest框架获取sipp工具的测试信息,利用主呼叫测试用例脚本和被呼叫测试用例脚本调用sipp工具将主叫和被叫同时向调度通信系统注册;

通过所述主呼叫测试用例脚本和被呼叫测试用例脚本将主叫和被叫同时注册到调度通信系统中,进行性能测试;

当注册成功后,调用所述呼叫测试套件中的被呼叫测试用例脚本,利用所述sipp工具在调度通信系统中运行被叫;

调用所述呼叫测试套件中的主呼叫测试用例脚本,调用所述sipp工具在调度通信系统中运行主叫;

主叫发起呼叫,被叫接听,通话建立;通过通话情况得到相应的测试结果。

作为较佳的实施方式,所述步骤s4还包括:

在python里面新建commons模块,然后分别封装用于记录日志的mylog模块和用于发送接受邮件的sendmail模块,对日志类设置输出格式和日志级别,进行日志的输出,实现实时查看信息和跟踪定位问题;

利用mkdocs静态站点生成器定义报告样式、报告名称、报告内容,在htmltestrunner中定义测试报告的文件绝对路径映射到mkdocs静态站点生成器的镜像中的路径;

在python代码中定义主注册测试用例脚本和被注册脚本用例并行执行,主注册测试用例脚本和被注册脚本用例执行完成才进行主呼叫测试用例脚本、被呼叫测试用例脚本的执行;

在python中定义测试数据读取方式,通过读取远程连接数据库使用存储过程新建的大量测试数据,而不是通过读取csv文件中手工测试数据。

具体地,日志类里面创建2个handler,一个是filehandler,一个是streamhandler,分别用于设置输出格式和日志级别;

使用addhandler方法把handler添加到logger,将log同时写入文件和输出到控制台,方便实时查看信息和跟踪定位问题。

其中,邮件类sendmail中的send_mail方法,发送和接收邮件,通过email.mime.multipart.mimemultipart()生成包含多个邮件体的对象msg,并定义邮件sendperson、receiverperson、titie及content。

当完成上述过程,引入htmltestrunner,编写相应代码定义stream、测试套件用例执行方式等。

安装mkdocs静态站点生成器,将数据卷挂载到搭载测试报告的本机ip,通过守护进程的方式、将本地的8000端口映射容器的8000端口、数据卷挂载的方式运行起来。

新建mkdocs.yml文件,编写少量代码来定义报告样式,报告名称、报告内容等,代码中通过写入文件的方法,先打开cs.yml_report也就是mkdocs.yml文件,判断文件中是否存在当前写入的内容,定义相应的数据格式,报告要呈现的名称及内容。

再在htmltestrunner中定义测试报告的文件绝对路径映射到mkdocs静态站点生成器镜像中的路径。python代码中定义主叫注册脚本用例和被叫注册脚本用例并行执行,主、被叫注册用例脚本执行完成才进行主、被叫呼叫用例脚本的执行。再在python脚本中定义测试数据读取方式,通过读取步骤s2中远程连接数据库使用存储过程新建的大量测试数据,而不是通过读取csv文件中手工测试数据。

作为较佳的实施方式,所述步骤s6还包括,测试过程中也可以在python命令行窗口中查看日志,脚本运行完毕后可直接在本地log日志文件中查看测试过程中的详细日志信息。

测试报告可在步骤s4中htmltestrunne定义的测试报告路径中查看,报告为html文件。采用本方法可实时记录sipp动态呈现的测试数据和执行情况,便于测试结果统一汇总和以备日后查看。另外相比于肉眼的观察,通过分析一定时间范围内的测试数据,可以更容易发现调度通信系统潜在的性能问题,提升调度通信系统运行的安全性。

在另一方面,如图2所示,为本发明还提出的一种基于sipp的性能测试装置,包括以下单元:

环境搭建单元100,用于搭建sipp工具、python环境以及通讯调度系统;

数据连接单元200,用于安装用于连接数据库的驱动程序,python环境中引入数据库连接模块并远程连接数据库,创建储存过程并新建大批量测试数据;

通话模拟单元300,用于在python环境中利用测试用例脚本模拟用户代理客户端和用户代理服务器;

模块封装单元400,用于在python环境中封装日志模块和邮件模块,并引入htmltestrunner、mkdocs定义测试报告;

运行测试单元500,用于运行测试用例脚本,按照先注册再呼叫的顺序并行运行测试用例;

报告获取单元600,用于获取网页版测试日志和测试报告。

其中,所述环境搭建单元100、数据连接单元200、通话模拟单元300、模块封装单元400、运行测试单元500以及报告获取单元600均用于执行图1所示的步骤s1-s6,以实现本方案的测试目的,此外,上述单元100-600均可包括但不限于操作界面等。

在另一方面,如图3所示,为本发明还公开的一种基于sipp的性能测试的系统,包括存储器700、处理器800及存储在所述存储器700上并可在所述处理器800上运行的性能测试程序,所述性能测试程序被所述处理器执行时实现如上述任一项所述的基于sipp的性能测试方法。

其中,所述存储器700可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(randomaccessmemory,ram))或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器可以是独立存在,通过通信总线与处理器相连接。存储器也可以和处理器集成在一起。

在另一方面,如图4所示,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一项所述的基于sipp的性能测试方法。

所述存储介质可以是前述服务器的内部存储单元,例如服务器的硬盘或内存。所述存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于sipp的性能测试的装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如一个以上单元或组件可以结合或者可以集成到另一个计算机设备,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的计算机设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的几个实施例中,应该理解到,所揭露的计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的计算机设备实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如一个以上单元或组件可以结合或者可以集成到另一个计算机设备,或一些特征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例计算机设备中的单元可以根据实际需要进行合并、划分和删减。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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