软件测试方法及系统与流程

文档序号:12123689阅读:229来源:国知局
软件测试方法及系统与流程

本发明涉及软件测试领域,尤其涉及一种软件测试方法及系统。



背景技术:

在现有的测试中,涉及使用ZooKeeper(一种分布式应用程序协调服务)同多个服务器进行文件同步测试时,由于不同测试环境中关于ZooKeeper的配置的变化,每次测试时候需要对配置进行修改,在不同测试中必须使用不同的配置文件,造成对ZooKeeper配置维护困难,测试效率低。



技术实现要素:

本发明的主要目的在于提供一种软件测试方法及系统,旨在使用一个配置文件配置对ZooKeeper进行配置,降低维护难度,提高测试效率。

为实现上述目的,本发明提供的一种软件测试方法包括以下步骤:

调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改;

根据属性名称在第一属性文件中选取ZooKeeper的配置参数,所述第一属性文件中的属性名称分两部分,第一部分为连接参数名,第二部分为组别名;

根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器;

检查所有服务器上的所述数据修改的结果是否符合第一预设要求。

优选地,在所述根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器后,还包括:

通过消息队列发送关于所述数据修改的消息至相关系统;

从所述相关系统获取所述消息的文本,并检查所述消息的文本是否和预设消息文本相同。

优选地,在所述根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器后,还包括:

保存所述数据修改的信息至相应的缓存;

获取缓存,并检查所述缓存的内容是否和预设缓存的内容相同。

优选地,所调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改包括:

根据第二属性名称在第二属性文件中选取数据库的数据库配置参数,所述第二属性名称分为两部分,第一部分为数据库配置参数名,第二部分为数据库代号;

根据所述数据库配置参数,使用所述测试用例对所述数据库进行数据库操作。

优选地,所述检查所有服务器上所述数据修改的结果是否符合第一预设要求包括:

获取所有数据库修改后的数据,并使所述数据库修改后的数据序列化;

对所述数据序列化后的数据进行检查,判断是否符合所述预设要求。

此外,为实现上述目的,本发明还提供一种软件测试系统,所述软件测试系统包括:

调取模块,用于调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改;

配置模块,用于根据第一属性名称在第一属性文件中选取ZooKeeper的配置参数,所述第一属性名称分为两部分,第一部分为连接参数名,第二部分为组别名;

同步模块,用于根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器;

第一检查模块,用于检查所有服务器上的所述数据修改的结果是否符合第一预设要求。

优选地,所述软件测试系统还包括:

发送模块,用于通过消息队列发送关于所述数据修改的消息至相关系统;

第二检查模块,用于从所述相关系统获取所述消息的文本,并检查所述消息的文本是否和预设消息文本相同。

优选地,所述软件测试系统还包括:

保存模块,用于保存所述数据修改的信息至相应的缓存;

第三检查模块,用于获取缓存,并检查所述缓存的内容是否和预设缓存的内容相同。

优选地,所述调取模块包括:

配置单元,用于根据属性名称在第二属性文件中选取数据库的数据库配置参数,所述第二属性文件中的属性名称分两部分,第一部分为数据库配置参数名,第二部分为数据库代号;

数据库单元,用于根据所述数据库配置参数,使用所述测试用例对所述数据库进行数据库操作。

优选地,所述第一检查模块包括:

获取单元,用于获取所有数据库修改后的数据,并使所述数据库修改后的数据序列化;

判断单元,用于对所述数据序列化后的数据进行检查,判断是否符合所述预设要求。

本发明通过调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改;根据属性名称在第一属性文件中选取ZooKeeper的配置参数,所述第一属性文件中的属性名称分两部分,第一部分为连接参数名,第二部分为组别名;根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器;检查所有服务器上的所述数据修改的结果是否符合第一预设要求。本发明还公开了一种软件测试系统。从同一个指定的第一属性文件中根据属性名称选取相应的连接配置,使得测试人员只需在一个第一属性文件中进行所以ZooKeeper的连接配置的修改和配置,降低了维护难度,提高了测试效率。

附图说明

图1为本发明软件测试方法第一实施例的流程示意图;

图2为本发明软件测试方法第二实施例中通过消息队列发送消息并对所述消息进行检查的细化流程示意图;

图3为本发明软件测试方法第三实施例中保持所述修改的信息至缓存并检查的喜欢流程示意图;

图4为本发明软件测试方法第四实施例中调用测试用例对一服务器进行数据修改的细化流程示意图;

图5为本发明软件测试方法第五实施例中检查所有服务器上所述数据修改的结果是否符合第一预设要求的细化流程示意图;

图6为本发明软件测试系统第一实施例的功能模块示意图;

图7为本发明软件测试系统第二实施例的功能模块示意图;

图8为本发明软件测试系统第三实施例的功能模块示意图;

图9为本发明软件测试系统第四实施例中调取模块的细化功能模块示意图;

图10为本发明软件测试系统第五实施例中第一检查模块的细化功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种软件测试方法,参照图1,在本发明软件测试方法第一实施例中,该软件测试方法包括:

步骤S10,调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改;

所述对服务器可以是数据库,所述数据修改为对所述数据库进行的增,删,改操作。需要说明的是在有些实施例中所述服务器是文件服务器,所述修改为对所述服务器新建,删除,修改文件。

步骤S20,根据属性名称在第一属性文件中选取ZooKeeper的配置参数,所述第一属性文件中的属性名称分两部分,第一部分为连接参数名,第二部分为组别名;

所述第一属性文件为properties文件,内容为结构为“属性名=属性值”,所述属性名称是使用特殊符合分割的两部分,前部分为配置的连接参数名,后半部分为所述配置的组别名。例如同一个连接参数名“timeout”在配置文件中有多个,timeout涉及timeout的有:“timeout.default”,“timeout.other1”。

步骤S30,根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器;

步骤S40,检查所有服务器上的所述数据修改的结果是否符合第一预设要求。

通过步骤1测试用例对所述服务器进行数据修改后,然后使用ZooKeeper选取配置文件对其他服务器进行同步,再通过对所有服务器进行检查判断所述修改是否成功来判断测试是否成功。

具体地,在本实施例中:测试用例在一数据库进行增加了一条记录。如果指定ZooKeeper加载的是默认参数,则在所述第一属性文件中寻找配置参数名以“default”结尾的参数名称。例如在找“hosts”参数时,会在所述第一属性文件中寻找属性名为“hosts.default”的值,配置完成ZooKeeper后,所述ZooKeeper根据配置文件对配置参数中的其他数据库进行数据同步,同步完成后,抓取所有数据库的数据与预设值进行判断,检查测试是否成功,如果抓取到的数据符合所述预设的要求,则测试通过。如果测试环境改变ZooKeeper需要更换成其他配置,例如更换成名为other1的配置,则只需要指定加载所述第一属性文件中以other1结尾的配置参数,例如加载“hosts”参数时在,则查找属性名为“hosts.other1”的参数。在同一个指定的第一属性文件中根据属性名称选取相应的连接配置,使得测试人员只需在一个第一属性文件中进行所以ZooKeeper的连接配置的修改和配置,降低了维护难度,提高了测试效率。

进一步地,参照图2,基于本发明软件测试方法第一实施例,在本发明软件测试方法第二实施例中,在所述根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器后,还包括:

步骤S50,通过消息队列发送关于所述数据修改的消息至相关系统;

步骤S60,从所述相关系统获取所述消息的文本,并检查所述消息的文本是否和预设消息文本相同。

为了更好的监控测试过程,通过消息队列发送所述修改消息至相关系统,所述相关系统在本实施例中为指定的邮箱地址。需要说明的是在有些实施例中为能自动处理所述消息的API接口。

具体地,在本实施例中,在所述ZooKeeper同步所有其他数据库进行添加一条数据之后,使用文本模板“增加一条记录,具体为:”,创建一条“增加一条记录,具体为:向第一数据控添加一条购买记录。”的信息,并使用JavaMail以邮件的形式向指定的邮箱发送出去,本实施例中是发送至测试专用的邮箱账户,接着使用根据所述文本模板创建的预设的文本的内容判断和所述发送模块发出的信息是否一样信息是否一样。需要说明的是,在有些实施例中,所述使用模板创建的消息时使用http请求的方式发送至指定的API接口。通过消息队列发送关于所述数据修改的消息至相关系统,使得测试人员可以不仅仅对于测试结果进行判断,还可以对测试过程中感兴趣的步骤使用消息队列的形式进行提取,并进一步地进行判断,增加了测试的可靠性。

进一步地,参照图3,基于本发明软件测试方法第一实施例,在本发明软件测试方法第三实施例中,在所述根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器后,还包括:

步骤S70,保存所述数据修改的信息至相应的缓存;

步骤S80,获取缓存,并检查所述缓存的内容是否和预设缓存的内容相同。

在所述步骤S10对所述一服务器进行数据修改时,对所述修改的数据进行缓存,在本实施例中缓存所述新增的记录,并对所述缓存进行提取,检查所述缓存是否含有所述新增的记录,如果所述缓存有所述新增的记录并且内容一致,则符合所述第三预设要求,测试通过。

进一步地,参照图4,基于本发明软件测试方法第一实施例,在本发明软件测试方法第四实施例中,所调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改包括:

步骤S11,根据第二属性名称在第二属性文件中选取数据库的数据库配置参数,所述第二属性名称分为两部分,第一部分为数据库配置参数名,第二部分为数据库代号;

测试中需要用到多数据库时,为使数据控配置简单,使用一个第二属性文件写入多个数据库的数据库配置参数,在本实施例中多个数据库的所述数据库配置参数使用名称作为区分标记

步骤S12,根据所述数据库配置参数,使用所述测试用例对所述数据库进行数据库操作。

具体地,在本实施例中,所述数据库配置参数的名称都分为两个部分使用特殊符号隔开,前一部分为数数据库配置参数名,后一部分为数据库代号,例如“url.mydb=jdbc:mysql://xxxxx:3306/default”,为代号为“mydb”的数据库的“url”参数为“jdbc:mysql://xxxxx:3306/default”。当所述一数据库的代号为“mydb”时,只加载名称后半部分为“mydb”的数据库配置参数。所述测试用例会使用名称后半部分为“mydb”的全部数据库配置参数对所述第一数据库进行访问。通过对多个所述数据库使用一个配置文件来配置,简化了测试人员的维护难度,提高了测试效率。

进一步地,参照图5,基于本发明软件测试方法第一实施例,在本发明软件测试方法第五实施例中,所述检查所有服务器上所述数据修改的结果是否符合第一预设要求包括:

步骤S41,获取所有数据库修改后的数据,并使所述数据库修改后的数据序列化;

步骤S42,对所述数据序列化后的数据进行检查,判断是否符合所述预设要求。

为了使所述从数据库的返回值使用方便,对所述返回值都进行了序列化操作。具体地,在本实施例中采用了JSON序列化操作,使得测试人员能操作JSON一样的操作从数据库取回的数据。在本实施例中是使用一个预设的JSON数据和所述修改后的数据进行比对,用以判断测试是否通过。通过对数据库服务器上的修改后的数据进行序列化,使得测试人员可以方便的对所述修改后的数据进行操作,提高了测试效率。

本发明提供一种软件测试系统,参照图6,在本发明软件测试系统第一实施例中,该软件测试系统包括:

调取模块10,用于调用测试用例对分布式应用程序协调服务ZooKeeper的节点上的一服务器进行数据修改;

所述对一服务器可以是数据库,所述数据修改为对所述数据库进行的增,删,改操作。需要说明的是在有些实施例中所述服务器是文件服务器,所述修改为对所述服务器新建,删除,修改文件。

配置模块20,用于根据第一属性名称在第一属性文件中选取ZooKeeper的配置参数,所述第一属性名称分为两部分,第一部分为连接参数名,第二部分为组别名;

所述第一属性文件为properties文件,内容为结构为“属性名=属性值”,所述属性名称是使用特殊符合分割的两部分,前部分为配置的连接参数名,后半部分为所述配置的组别名。例如同一个连接参数名“timeout”在配置文件中有多个,timeout涉及timeout的有:“timeout.default”,“timeout.other1”。

同步模块30,用于根据所述配置参数同步所述数据修改的结果至ZooKeeper的节点上的其他服务器;

第一检查模块40,用于检查所有服务器上的所述数据修改的结果是否符合第一预设要求。

通过调取模块10测试用例对所述服务器进行数据修改后,然后使用ZooKeeper选取配置文件对其他服务器进行同步,再通过对所有服务器进行检查判断所述修改是否成功来判断测试是否成功。

具体地,在本实施例中:调取模块10调用测试用例在第一数据库进行增加了一条记录。如果指定ZooKeeper加载的是默认参数,在所述第一属性文件中寻找配置参数名。则配置模块20根据默认行为在所述第一属性文件中寻找配置参数以“default”结尾的参数名称,例如在找“hosts”参数时,会在所述第一属性文件中寻找属性名为“hosts.default”的值,配置完成ZooKeeper后,同步模块30根据配置文件对配置参数中的其他数据库进行数据同步,同步完成后,第一检查模块40抓取所有数据库的数据与预设值进行判断,检查测试是否成功,如果抓取到的数据符合所述预设的要求,则测试通过。如果测试环境改变ZooKeeper需要更换成其他配置,例如更换成名为other1的配置,则只需要指定加载所述第一属性文件中以other1结尾的配置参数,例如加载“hosts”参数时在,则查找属性名为“hosts.other1”的参数。在同一个指定的第一属性文件中根据属性名称选取相应的连接配置,使得测试人员只需在一个第一属性文件中进行所以ZooKeeper的连接配置的修改和配置,降低了维护难度,提高了测试效率。

进一步地,参照图7,基于本发明软件测试系统第一实施例,在本发明软件测试系统第二实施例中,所述软件测试系统还包括:

发送模块50,用于通过消息队列发送关于所述数据修改的消息至相关系统;

第二检查模块60,用于从所述相关系统获取所述消息的文本,并检查所述消息的文本是否和预设消息文本相同。

为了更好的监控测试过程,通过消息队列发送所述修改消息至相关系统,所述相关系统在本实施例中为指定的邮箱地址。需要说明的是在有些实施例中为能自动处理所述消息的API接口。

具体地,在本实施例中,在所述ZooKeeper同步所有其他数据库进行添加一条数据之后,发送模块50使用文本模板“增加一条记录,具体为:”,创建一条“增加一条记录,具体为:向第一数据控添加一条购买记录。”的信息,并使用JavaMail以邮件的形式向指定的邮箱发送出去,本实施例中是发送至测试专用的邮箱账户,第二检查模块60检查根据所述文本模板创建的预设的文本的内容和所述发送模块50发出的信息是否一样。需要说明的是,在有些实施例中,所述使用模板创建的消息时使用http请求的方式发送至指定的API接口。通过消息队列发送关于所述数据修改的消息至相关系统,使得测试人员可以不仅仅对于测试结果进行判断,还可以对测试过程中感兴趣的步骤使用消息队列的形式进行提取,并进一步地进行判断,增加了测试的可靠性。

进一步地,参照图8,基于本发明软件测试系统第一实施例,在本发明软件测试系统第三实施例中,所述软件测试系统还包括:

保存模块70,用于保存所述数据修改的信息至相应的缓存;

第三检查模块80,用于获取缓存,并检查所述缓存的内容是否和预设缓存的内容相同。

在所述调取模块10对所述一服务器进行数据修改时,对所述修改的数据进行缓存,在本实施例中保存模块70缓存所述新增的记录,第三检查模块80对所述缓存进行提取,检查所述缓存是否含有所述新增的记录,如果所述缓存有所述新增的记录并且内容一致,则符合所述第三预设要求,测试通过。

进一步地,参照图9,基于本发明软件测试系统第一实施例,在本发明软件测试系统第四实施例中,所述调取模块10包括:

配置单元11,用于根据属性名称在第二属性文件中选取数据库的数据库配置参数,所述第二属性文件中的属性名称分两部分,第一部分为数据库配置参数名,第二部分为数据库代号;

测试中需要用到多数据库时,为使数据控配置简单,使用一个第二属性文件写入多个数据库的数据库配置参数,在本实施例中多个数据库的所述数据库配置参数使用名称作为区分标记

数据库单元12,根据所述数据库配置参数,使用所述测试用例对所述数据库进行数据库操作。

具体地,在本实施例中,所述数据库配置参数的名称都分为两个部分使用特殊符号隔开,前一部分为数数据库配置参数名,后一部分为数据库代号,例如“url.mydb=jdbc:mysql://xxxxx:3306/default”,为代号为“mydb”的数据库的“url”参数为“jdbc:mysql://xxxxx:3306/default”。当所述一数据库的代号为“mydb”时,配置单元11只加载名称后半部分为“mydb”的数据库配置参数。数据库单元12调用所述测试用例会使用名称后半部分为“mydb”的全部数据库配置参数对所述第一数据库进行访问。通过对多个所述数据库使用一个配置文件来配置,简化了测试人员的维护难度,提高了测试效率。

进一步地,参照图10,基于本发明软件测试系统第一实施例,在本发明软件测试系统第五实施例中,所述第一检查模块40包括:

获取单元41,用于获取所有数据库修改后的数据,并使所述数据库修改后的数据序列化;

判断单元42,用于对所述数据序列化后的数据进行检查,判断是否符合所述预设要求。

为了使所述从数据库的返回值使用方便,对所述返回值都进行了序列化操作。具体地,在本实施例中获取单元41采用了JSON序列化操作,使得测试人员能操作JSON一样的操作从数据库取回的数据。在本实施例中判断单元42是使用一个预设的JSON数据和所述修改后的数据进行比对,用以判断测试是否通过。通过对数据库服务器上的修改后的数据进行序列化,使得测试人员可以方便的对所述修改后的数据进行操作,提高了测试效率。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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